* som.c (som_object_setup): Set DYNAMIC flag for SHL_MAGIC and
DL_MAGIC objects.
(som_prep_headers): Preserve the system_id for DYNAMIC objects.
Use SHL_MAGIC as the magic number of the DYNAMIC flag is set.
Write exec headers for DYNAMIC objects.
(som_begin_writing): DYNAMIC objects have the same alignment
restrictions as D_PAGED objects.
(bfd_section_from_som_symbol): Treat DYNAMIC objects like EXEC_P
objects.
(object_flags): Add DYNAMIC.
section->relocation is NULL; malloc might have returned NULL when
given a zero size if there were no relocations.
* bout.c (b_out_canonicalize_reloc): Likewise.
* coffcode.h (coff_canonicalize_reloc): Likewise.
* ecoff.c (ecoff_canonicalize_reloc): Likewise.
* elfcode.h (elf_canonicalize_reloc): Likewise.
* mipsbsd.c (MY(canonicalize_reloc)): Likewise.
* i386lynx.c (NAME(lynx,canonicalize_reloc)): Likewise.
* nlmcode.h (nlm_canonicalize_reloc): Likewise.
* som.c (som_canonicalize_reloc): Likewise.
* hp300hpux.c (MY(slurp_reloc_table)): Likewise. Also, if malloc
returns NULL, don't report an error if we asked for zero bytes.
* i386lynx.c (NAME(lynx,slurp_reloc_table)): If malloc returns
NULL, don't report an error if we asked for zero bytes.
* nlmcode.h (nlm_slurp_reloc_fixups): Likewise.
checks the return value and handled bfd_error correctly. These
changes are not itemised. Also:
* srec.c (srec_write_record): Change return type to boolean.
(srec_write_header): Likewise. Also, check srec_write_record
return value.
(srec_write_section, srec_write_terminator): Likewise.
(srec_write_symbols): Change return type to boolean.
(internal_srec_write_object_contents): Check return value of
srec_write_symbols, srec_write_header, srec_write_section, and
srec_write_terminator.
checks the return value and handled bfd_error correctly. These
changes are not itemised. Also:
* i386os9k.c (os9k_swap_exec_header_in): Change return type to
boolean.
(os9k_object_p): Check os9k_swap_exec_header_in return value.
checks the return value and handled bfd_error correctly. These
changes are not itemised. Also:
* coffcode.h (coff_write_relocs): Change return type to boolean,
and return errors.
(coff_write_object_contents): Check coff_write_relocs return
value.
checks the return value and handled bfd_error correctly. These
changes are not itemised. Also:
* aoutx.h (emit_strtab): Change return type to boolean, and return
errors.
(NAME(aout,write_syms)): Check emit_strtab return value.
(NAME(aout,final_link)): Likewise.
asection to asymbol.
* ptrace-core.c (ptrace_unix_bfd_is_local_label): Correct cast from
bfd to asymbol.
* trad-core.c (trad_unix_bfd_is_local_label): Correct cast from
asection to asymbol.
for the cached copy of the native string table.
(som_slurp_symbol_table): Likewise for the native symbol table.
(som_slurp_reloc_table): Likewise for the native and generic
relocation tables.
(som_bfd_free_cached_info): Free the cached native strings,
symbols, and relocations. Also free the canonical cached relocations.
object, don't bother to look for more when deciding whether to
build a map.
(compute_and_write_armap): After adding the symbols for a BFD,
call bfd_free_cached_info on it.
* aoutx.h (aout_get_external_symbols): Renamed from
aout_link_get_symbols. Read strings even if symbols have been
read. Store string size in obj_aout_string_size.
(NAME(aout,slurp_symbol_table)): Call aout_get_external_symbols to
read the symbols. Allocate the cached symbols with malloc, not
bfd_alloc.
(NAME(aout,slurp_reloc_table)): Allocate the cached relocs with
malloc, not bfd_alloc.
(NAME(aout,bfd_free_cached_info)): New function; free cached
symbols and relocs.
* libaout.h (struct aoutdata): Add external_string_size field.
(obj_aout_external_string_size): New accessor macro.
(NAME(aout,close_and_cleanup)): Don't declare.
(NAME(aout,bfd_free_cached_info)): Declare.
(aout_32_close_and_cleanup): Don't define.
(aout_64_close_and_cleanup): Don't define.
* aout-target.h (MY_bfd_free_cached_info): If not already defined,
define as NAME(aout,free_cached_info).
(MY_close_and_cleanup): If not already defined, define as
MY_bfd_free_cached_info.
* aout-adobe.c (aout_32_close_and_cleanup): Define.
(aout_32_bfd_free_cached_info): Don't define.
* bout.c (aout_32_close_and_cleanup): Define.
(aout_32_bfd_free_cached_info): Don't define.
* hp300hpux.c (MY_bfd_free_cached_info): Define as bfd_true.
(MY_close_and_cleanup): Don't define.
* i386lynx.c (NAME(lynx,slurp_reloc_table)): Allocate the cached
relocs with malloc, not bfd_alloc.
* i386os9k.c (aout_32_close_and_cleanup): Define.
(aout_32_bfd_free_cached_info): Don't define.
* ecoff.c (ecoff_new_section_hook): Set SEC_SHARED_LIBRARY for a
.lib section.
(ecoff_sec_to_styp_flags): Set SEC_SHARED_LIBRARY if
STYP_ECOFF_LIB bit is set.
(ecoff_compute_section_file_positions): Round the contents of a
.lib section up to the next page boundary.
(ecoff_set_section_contents): If we see a .lib section, increment
the vma by one to count the number of shared libraries we have.
(ecoff_write_object_contents): Don't crash if we see a
STYP_ECOFF_LIB section, and don't adjust text_start or data_start
or bss_size either.
boolean, and changed written to unsigned int *. Check error
returns from called functions.
(coff_write_alien_symbol): Likewise.
(coff_write_native_symbol): Likewise.
(coff_write_symbols): Likewise. Reworked checks on whether to
write symbol name to string table for clarity and to avoid core
dumping when given a non COFF symbol.
* libcoff-in.h (coff_write_symbols): Declare as returning boolean.
* libcoff.h: Rebuilt.
* coffcode.h (coff_write_object_contents): Check return value of
coff_write_symbols.
in executables left by the HP linker. Does not rely on subspace
alignments as subspaces are *NOT* guaranteed to be properly
aligned in an executable (can you believe that!).
variant of a.out.
* configure.in, config.bfd: Use them for Dynix.
* Makefile.in: Add dependencies for i386dynix.o.
* targets.c: Add definition for i386dynix_vec.
read. (bfd_error_system_call or bfd_error_file_truncated).
* som.c: Do not blindly set bfd_error_system_call after a
failing bfd_read, bfd_write, or bfd_seek. In a few places
(like som_object_p) override the error status set by bfd_read.
* aix386-core.c, aout-encap,c archive.c, bout.c: Likewise.
* coff-rs6000.c, coffgen.c ecoff.c, elf.c: Likewise.
* elf32-hppa.c, elfcode.h, hp300hpux.c, i386lynx.c: Likewise.
* nlm32-alpha.c, nlm32-i386.c, nlm32-sparc.c: Likewise.
* som.c: Check return values from several bfd_{seek,read,write}
calls that we just assumed were not failing.
use a five instruction sequence for funtion calls which are out of
range of the bal instruction.
* libecoff.h (struct ecoff_section_tdata): Define.
(ecoff_section_data): Define.
(ecoff_bfd_relax_section): Don't define.
* ecoff.c (ecoff_final_link_debug_accumulate): Don't read or free
the debugging information if it has already been read.
(ecoff_indirect_link_order): Handle _cooked_size being different
from _raw_size. Don't reread the contents or the relocs if they
have already been read in.
* coff-mips.c (mips_howto_table): Change bitsize of PCREL16 from
18 to 16.
(PCREL16_EXPANSION_ADJUSTMENT): Define.
(mips_relocate_refhi): Take adjust argument.
(mips_relocate_section): Handle reloc offsets stored in section
used_by_bfd field. Call mips_relax_pcrel16 to handle details of
expanding an out of range PCREL16. Keep trace of adjustments
required by expansions. Set s and unset h when converting a reloc
from undefined to section. Change handling of PC relative relocs:
if against a section, they are correct in the object file, if
against an external symbol they are pcrel_offset.
(mips_relax_section): New function.
(mips_relax_pcrel16): New function.
(ecoff_bfd_relax_section): Define.
* coff-alpha.c (ecoff_bfd_relax_section): Define.
* ecofflink.c (bfd_ecoff_debug_accumulate): Handle adjustments
built by mips_relax_section when writing out addresses.
* elf32-mips.c (mips_elf_read_ecoff_info): Clear adjust field.