Fred Fish [Sun, 8 Aug 1993 17:14:06 +0000 (17:14 +0000)]
* dwarfread.c (record_minimal_symbol): Remove prototype and
function.
* dwarfread.c (add_partial_symbol): Remove code to add minimal
symbols and remove comment about limitations. Experiments show
that now that gdb handles the ELF symtab better for creating
minimal symbols, that no additional information is added by
examining the DWARF information, and in fact, given the
limitations, the DWARF code was actually making things worse.
Fred Fish [Sun, 8 Aug 1993 00:30:07 +0000 (00:30 +0000)]
* elfread.c (elf_symtab_read): Properly sort out the bss symbols
from the data symbols and give them the correct minimal_symbol_type.
Add file static symbols to the minimal symbol table, not just
global symbols. Add absolute symbols as well (like _edata, _end).
Redo stabs-in-elf special symbol handling now that file static
symbols are entered into the into the minimal symbol table.
Fred Fish [Sat, 7 Aug 1993 20:27:19 +0000 (20:27 +0000)]
* elfread.c (elf_symtab_read): Properly sort out the bss symbols
from the data symbols and give them the correct minimal_symbol_type.
Add file static symbols to the minimal symbol table, not just
global symbols. Ignore symbols that are section names and file names.
* dwarfread.c (add_partial_symbol): Add comment about limitations
of DWARF symbols for distinquishing data from bss when adding
minimal symbols. Add file local symbols to minimal symbols.
Fred Fish [Sat, 7 Aug 1993 14:47:55 +0000 (14:47 +0000)]
* gdb.t10/nodebug.exp: Expect to find local/global minimal symbols
in text, data, and bss.
* gdb.t10/nodebug.c: Add local and global test variables for
initialized and uninitialized data.
Fred Fish [Sat, 7 Aug 1993 14:46:21 +0000 (14:46 +0000)]
* elfcode.h (elf_object_p): Add comment about what this function
does and to watch out for side effects. Add FIXME for memory leaks.
Fix comment about checking for matching byte order. Preserve
pointer to old tdata (if any), and restore it if we don't match
file with target vector. If we are going to use goto's, use them
consistently and maintainably.
* nlmcode.h (nlm_object_p): Expand comments about leaked memory
to note that the problem is even more serious than just leaked
memory. Replace goto with more traditional return.
Ken Raeburn [Thu, 5 Aug 1993 21:21:30 +0000 (21:21 +0000)]
(write_object_file): Test DEBUG_SYMS instead of DEBUG for verifying sym chain.
(merge_data_into_text, relax_and_size_all_segments): New fns, split out from
write_object_file.
Ken Raeburn [Thu, 5 Aug 1993 18:32:50 +0000 (18:32 +0000)]
Wed Jun 23 06:05:58 1993 Michael Meissner (meissner@osf.org)
* 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.
Tue Jun 15 14:38:32 1993 Michael Meissner (meissner@osf.org)
* elfcode.h (elf_hash): Delete macro mapping elf_hash to
bfd_elf32_hash, since the hash table is independent of the 32/64
bit system.
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.