* elfcode.h (elf_write_object_contents): Don't drop core if
elf_symbol_from returns a NULL pointer when processing a non-elf
symbol, use a 0 size instead.
Ken Raeburn [Thu, 5 Aug 1993 18:20:20 +0000 (18:20 +0000)]
(BFD_LIBS): Always include elf.o.
(BFD32_BACKENDS): Don't include elf.o here.
(ofiles): Delete references to ofiles2 and ofiles3.
(do_clean): Delete ofiles.
(BFDIN_H): Changed references to $(srcdir)/bfd-in2.h.
(stmp-bfd.h): Use bfd.h-new as temporary name, not bfd.h2.
(headers): Use bfd-in2.h-new as temporary name, not bfd.h-new.
Fred Fish [Thu, 5 Aug 1993 17:22:58 +0000 (17:22 +0000)]
* nlmcode.h (nlm_get_reloc_upper_bound): Test return value
of nlm_slurp_symbol_table as boolean, not pointer.
* nlmcode.h (nlm_canonicalize_reloc): Test return value
of nlm_slurp_reloc_fixups as boolean, not pointer.
Fred Fish [Thu, 5 Aug 1993 01:36:43 +0000 (01:36 +0000)]
* gdb.t10/Makefile.in (nodebug.o): Don't use "-c -o", many
compilers don't grok it.
* gdb.t16/gdbme.c (ctable1): Initialize unsigned char array
with small octal ints rather than character constants, which
are signed and might not fit if first promoted to int.
Ken Raeburn [Wed, 4 Aug 1993 23:10:43 +0000 (23:10 +0000)]
* obj-elf.c (obj_elf_stab_generic, in disabled code): If
debug section is new, allocate an extra 12 bytes at its start. If
".stabs" type is N_SO, fill in filename symbol field of that first
entry. Return early if "goof", to simplify later code slightly.
(adjust_stab_sections): New function.
(elf_frob_file): Apply adjust_stab_sections to each section.
* obj-elf.c (obj_elf_section, obj_elf_previous): No longer static.
* obj-elf.h (obj_elf_section, obj_elf_previous): Declare.
* tc-sparc.c (md_pseudo_table): Call them for "pushsection"
and "popsection", and call cons for "uaword" and "uahalf".
* obj-elf.c (obj_elf_version): Use English in error messages.
* tc-sparc.c (md_apply_fix, case BFD_RELOC_64): New case,
parallel to BFD_RELOC_32.
(tc_gen_reloc): Accept BFD_RELOC_64.
* libnlm.h (nlm_backend_data): Added nlm_mangle_relocs.
(nlm_mangle_relocs_func): New macro.
* nlm32-i386.c (nlm_i386_write_reloc): Rewrote correctly.
(nlm_i386_mangle_relocs): New function.
* nlmcode.h (nlm_compute_section_file_positions): Move all common
symbols into the .bss section.
(nlm_set_section_contents): Call the mangle_relocs function.
(nlm_write_object_contents): Treat a reloc against any defined
symbol as an internal reloc. Fix bug in external reloc counting.
Get the offset and debugging type right for .bss symbols. Only
output debugging symbols for defined symbols.
* coff-h8500.c (rtype2howto): Do an fprintf to stderr rather than
using printf.
* coff-z8k.c (rtype2howto): Likewise.
* coffcode.h (dummy_reloc16_extra_cases): Likewise.
* elf32-i386.c (TRACE): Likewise.
* hp300hpux.c (convert_sym_type, swap_std_reloc_in): Likewise.
* rs6000-core.c (rs6000coff_get_section_contents): Likewise.
* coffgen.c (coff_print_symbol): Do an fprintf to the file
argument rather than using printf.
With these changes, the binutils mostly work on the Alpha, except for
objdump -r.
* coffswap.h: Added macros used when accessing several fields;
default is the same as before.
(coff_swap_aouthdr_{in,out}): Handle the Alpha ECOFF fields.
* coff-alpha.c: Defined macros to use the right sizes in
coffswap.h.
* libecoff.h: Backend information is now in target vector, not
BFD. Start of backend information is COFF backend information.
* coff-alpha.c, coff-mips.c: Changed accordingly.
* ecoff.c (ecoff_mkobject): New function.
(ARMAP_START): Changed into backend information, since Alpha uses
a different name.
(ecoff_slurp_armap): Don't overlay archive header.
* bfd.c: Include libcoff.h.
* mipsread.c: Updated for BFD ECOFF changes. Now gets the
swapping routines and external structure sizes via the
ecoff_backend information. No longer includes coff/mips.h.
* config/obj-ecoff.c: Updated for BFD ECOFF changes. Now gets the
swapping routines and external structure sizes via the
ecoff_backend information. No longer includes coff/mips.h.
* ecoff.h: New file.
* alpha.h, mips.h: Moved common information into ecoff.h. Moved
external structure definitions in from ecoff-ext.h.
* ecoff-ext.h: Removed; information now in alpha.h and mips.h.
* ecoff.c: New file for generic ECOFF functions.
* ecoffswap.h: New file for ECOFF swapping functions which differ
only slightly for different targets.
* libecoff.h: Added prototypes for ecoff.c functions.
(ecoff_backend_data): New structure.
(ecoff_tdata): Added backend_data field. Changed external data
pointers to be PTR rather than to a particular struct.
(ecoff_symbol_struct): Moved in from coff-mips.c.
* coff-alpha.c, coff-mips.c: Moved common functions into ecoff.c.
Added ECOFF backend structures. Include ecoffswap.h.
* coff-msym.c: Removed; superseded by ecoffswap.h.
* bfd.c: Include coff/internal.h.
* Makefile.in (BFD_LIBS): Removed coff-mips.o and coff-msym.o.
Added ecoff.o.
(BFD64_BACKENDS): Added coff-alpha.o.
(CFILES): Removed coff-msym.c. Added ecoff.c.
(bfd.o): Added dependency on $(INCDIR)/coff/sym.h.
(coff-mips.o): Added dependency on ecoffswap.h and coff/ecoff.h.
(ecoff.o, coff-alpha.o): New targets.
(coff-msym.o): Removed target.
Fred Fish [Mon, 2 Aug 1993 23:29:32 +0000 (23:29 +0000)]
Remove '.Sanitize' from explicit list of Things-to-lose. It is now implicitly
added to the list by Sanitize, unless Sanitize knows it needs to keep it.
Jim Kingdon [Mon, 2 Aug 1993 22:41:50 +0000 (22:41 +0000)]
* valops.c (typecmp): If we are passing a non-reference to a function
which takes a reference, pass the address.
(value_arg_coerce): Don't use COERCE_ENUM; we don't want to dereference
references here.
Fred Fish [Mon, 2 Aug 1993 19:03:15 +0000 (19:03 +0000)]
(I could have sworn I checked this change in a couple days ago, but it
showed up in a cvs diff, so here it is again...)
* README: Elaborate on gdb C++ support and cfront support.
Jim Kingdon [Mon, 2 Aug 1993 17:38:08 +0000 (17:38 +0000)]
* gdb.t06/signals.exp: Change xfail from "*-*-*" to be only for
NO_SINGLE_STEP machines. Fix comment about its cause. Uncomment
the `continue' test right after it (also xfailed if NO_SINGLE_STEP).
Stu Grossman [Mon, 2 Aug 1993 15:48:42 +0000 (15:48 +0000)]
Mon Aug 2 08:42:50 1993 Stu Grossman (grossman at cygnus.com)
* gdbserver/remote-inflow.c (create_inferior): Fix comments, and
error msg. Setup seperate process group for child.
* (write_inferior_memory): Sleep for 1 second and retry on ptrace
failure.
Stu Grossman [Mon, 2 Aug 1993 06:25:36 +0000 (06:25 +0000)]
Sun Aug 1 22:58:18 1993 Stu Grossman (grossman at cygnus.com)
* Makefile.in (CLIBS): Reorder to make Lynx ld happy.
* (HFILES): New file thread.h.
* (OBS): New file thread.c.
* configure.in: Host config for Lynx/386.
* fork-child.c (fork_inferior): Call init_thread_list().
* infrun.c (resume): Add pid to invocation of target_resume().
* (wait_for_inferior): Pay attention to pid from target_wait().
Multi-threading code now uses this to determine what to do.
* inftarg.c (child_wait): Conditionalize based on CHILD_WAIT macro.
Use target_pid_to_str() macro throughout when printing pid.
* inferior.h (child_resume): Add pid to prototype.
* hppab-nat.c hppah-nat.c infptrace.c (child_resume): Pass in pid as
argument, instead of using inferior_pid.
* procfs.c (procfs_resume): Pass in pid as argument. Ignored for
now. Use target_pid_to_str() macro throughout for printing process id.
* remote-adapt.c (adapt_resume): Pass in pid as argument.
* remote-eb.c (eb_resume): Pass in pid as argument.
* remote-es.c (es1800_resume): Pass in pid as argument.
* remote-hms.c (hms_resume): Pass in pid as argument.
* remote-mips.c (mips_resume): Pass in pid as argument.
* remote-mm.c (mm_resume): Pass in pid as argument.
* remote-monitor.c (monitor_resume): Pass in pid as argument.
* remote-nindy.c (nindy_resume): Pass in pid as argument.
* remote-sa.sparc.c (remote_resume): Pass in pid as argument.
* remote-sim.c (rem_resume): Pass in pid as argument.
* remote-sp64sim.c (simif_resume): Pass in pid as argument.
* remote-st.c (st2000_resume): Pass in pid as argument.
* remote-udi.c (udi_resume): Pass in pid as argument.
* remote-vx.c (vx_resume): Pass in pid as argument.
* remote-z8k.c (rem_resume): Pass in pid as argument.
* remote.c (remote_resume): Pass in pid as argument.
* solib.c (solid_create_inferior_hook): Pass inferior_pid to
target_resume().
* target.c (normal_pid_to_str): New routine to print out process
ID normally.
* target.h (struct target_ops): Add pid to prototype at
to_resume(). (target_resume): Add pid argument.
* (target_pid_to_str): Default definition for normal type pids.
* thread.c, thread.c: New modules for multi thread/process control.
Fred Fish [Sun, 1 Aug 1993 18:39:32 +0000 (18:39 +0000)]
* Makefile.in (COMPRESS): Remove def.
* Makefile.in (gdb.tar.gz, make-gdb.tar.gz): Renamed from
gdb.tar.Z and make-gdb.tar.Z respectively.
* Makefile.in (make-gdb.tar.gz): Now only build gzip'd archive.
* Makefile.in (make-gdb.tar.gz): Minor changes to move closer
to convergence with 'taz' target in Makefile.in.
John Gilmore [Sat, 31 Jul 1993 01:40:26 +0000 (01:40 +0000)]
* dis-asm.h: Add new fields insn_info_valid, branch_delay_insns,
data_size, insn_type, target, target2. These are used to return
information from the instruction decoders back to the calling
program. Add comments, make more readable.
Ian Lance Taylor [Fri, 30 Jul 1993 22:32:09 +0000 (22:32 +0000)]
* nlm32-i386.c: New file. First cut at i386 NLM code.
* libnlm.h: Added some more prototypes.
(struct nlm_relent): New structure.
(nlmNAME(symbol_type)): Added rcnt and relocs fields.
(struct nlm_obj_tdata): Added new fields: nlm_symbols,
nlm_text_low, nlm_data_low, nlm_reloc_fixups,
nlm_reloc_fixup_secs.
(struct nlm_backend_data): New structure, with accessor macros.
* nlmcode.h: Use NLM_HIBIT rather than MSB.
(nlm_object_p): Set SEC_RELOC for .text and .data. Don't set
SEC_DATA for .bss. Set HAS_RELOC and HAS_SYMS for abfd. Set the
architecture.
(nlm_swap_fixed_header_out, nlm_swap_variable_header_out,
find_nonzero, nlm_swap_auxiliary_headers_out): New outbound
swapping functions.
(nlm_get_symtab_upper_bound, nlm_slurp_symbol_table): Include
external references in symbol table as undefined symbols.
(nlm_get_symtab, nlm_slurp_symbol_table): Fill in alocation
argument in get_symtab rather than in slurp_symbol_table.
(nlm_slurp_symbol_table): Save symbol information in tdata.
(nlm_print_symbol): New function.
(nlm_slurp_reloc_fixups, nlm_get_reloc_upper_bound,
nlm_canonicalize_reloc): New functions to read relocs.
(nlm_compute_section_file_positions, nlm_set_section_contents,
nlm_external_reloc_compare, nlm_write_object_contents): New
functions to create NLM files.
* nlm-target.h: Define all the nlm functions here either as
default values or in terms of nlmNAME. Use JUMP_TABLE(nlm). Set
the backend_data field to TARGET_BACKEND_DATA.
* nlm32-gen.c, nlm64-gen.c: Don't define function macros here;
they are now in nlm-target.h.
(TARGET_BACKEND_DATA): Define as NULL.
* nlm.c (nlm_mkobject): Do allocate the tdata field.
(nlm_set_arch_mach): New function.
* targets.c: Added nlm32_i386_vec.
* Makefile.in (BFD32_BACKENDS): Added nlm32-i386.o.
(CFILES): Added nlm32-i386.c.
(nlm32-gen.o, nlm64-gen.o): Depend on nlm-target.h.
(nlm32-i386.o): New target.
Jim Kingdon [Fri, 30 Jul 1993 20:49:52 +0000 (20:49 +0000)]
From Jeffrey Law:
* tm-hppa.h (TARGET_WRITE_PC): Define.
* hppa-tdep.c (hppa_fix_call_dummy): If in a syscall,
then return the address of the dummy itself rather than
the address of $$dyncall.
(target_write_pc): New function to store a new PC.
Peter Schauer [Fri, 30 Jul 1993 20:04:34 +0000 (20:04 +0000)]
* gdb.t02/whatis.exp, gdb.t03/ptype.exp, gdb.t08/opaque.exp,
gdb.t09/corefile.exp: Cleanup xfails for fixed mips bugs.
* gdb.t13/bitfields.exp, gdbme.c: Examine a variable in the inferior
to determine signed-ness of bitfields and use the result to setup
the xfail.
* gdb.t13/gdbme.c: Add comment to the two indirect call0a lines.
* gdb.t13/funcargs.exp: Use it to step until the second indirect call
line is reached if necessary.