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.
for 32 bits nor for 64.
Tue Jun 15 14:38:32 1993 Michael Meissner (meissner@osf.org)
* libelf.h (elf_hash): Change declaration to bfd_elf_hash, since
that is what is in elf.c.
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.
(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.
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.
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.
* 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.
* nlm{32,64}-gen.c (JUMP_TABLE_INIT): New macro that works with
older cpp's, that don't do additional replacement on the JUMP_TABLE
macro's argument.
* nlm-target.h (JUMP_TABLE_INIT): Use new macro in place of
JUMP_TABLE macro.
* nlm-target.h: New file, merged from nlm{32,64}-target.h
* libnlm.h (NLM_ARCH_SIZE): Define to ARCH_SIZE.
* nlm.c (ARCH_SIZE): Remove define to zero.
* nlm32-gen.c (ARCH_SIZE): Define to 32.
* nlm32-gen.c (JUMP_TABLE_PREFIX): Define to nlm32.
* nlm{32,64}-gen.c (nlm-target.h): Include.
* targets.c, libnlm.h, nlm.c, nlm{32,64}-gen.c, nlm{32,64}.c,
nlmcode.h: Convert prefixes from bfd_nlm<size> to just
nlm<size>, and use macros select size.
* bfd.c (struct _bfd): Renamed hppa_core_data field to
hpux_core_data.
* bfd-in2.h: Updated.
* hppa.c (make_bfd_asection, hppa_core_file_p,
hppa_core_file_failing_command, hppa_core_file_failing_signal,
hppa_core_file_matches_executable_p): Moved into hpux-core.c.
Removed from target vector.
* libhppa.h (struct hppa_core_struct and accessor macros): Moved
into hpux-core.c.
* targets.c: If HPUX_CORE is defined, add hpux_core_vec to
target list.
* config/hp300.mh (HDEFINES): Set to -DHPUX_CORE.
(HDEPFILES): Set to hpux-core.o.
* config/hppabsd.mh, config/hppahpux.mh: Likewise.
* hosts/hp300.h (HOST_HP300HPUX): Define.
* Makefile.in (OPTIONAL_BACKENDS): Added sco-core.o,
aix386-core.o, hpux-core.o.
(sco-core.o, aix386-core.o, hpux-core.o): New dependencies.
various flavours of overflow checking.
(srtuct reloc_howto_struct): Changed complain_on_overflow field
from boolean to emum complain_overflow. Removed obsolete absolute
field.
(HOWTO): Removed absolute argument.
(bfd_perform_relocation): Do overflow checking on all types of
fields.
* bfd-in2.h: Updated accordingly.
* all targets: Updated initialization of reloc howto tables.