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.
removed, so don't initialize it. Set the PPC_OPERAND_SIGNED flag
instead. Add new operand SISIGNOPT.
(powerpc_opcodes): For lis, liu, addis, and cau use SISIGNOPT.
Based on patch from David Edelsohn (edelsohn@npac.syr.edu).
* ppc-dis.c (print_insn_powerpc): Check PPC_OPERAND_SIGNED rather
than signedp field.
flag rather than signedp field. Only permit extended range if
PPC_OPERAND_SIGNOPT flag is set and assembling in 32 bit mode.
Based on patch from David Edelsohn (edelsohn@npac.syr.edu).
(ppc_arch): Check for PPC_OPCODE_PPC before PPC_OPCODE_POWER.
(md_begin): If an instruction has a size specific flag set, only
add it if we are assembling that size.
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.
library functions before the executable is run.
* elfread.c (elf_symtab_read): Handle symbols for shared library
functions.
* sparc-tdep.c (in_solib_trampoline): Renamed to in_plt_section
and moved to objfiles.c.
* objfiles.c (in_plt_section): Moved to here from sparc-tdep.
* config/tm-sysv4.h (IN_SOLIB_TRAMPOLINE): Use new in_plt_section.
* config/sparc/tm-sun4sol2.h (IN_SOLIB_TRAMPOLINE): Removed,
the new generic definition from tm-sysv4.h works for Solaris.
* 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!).