aboutsummaryrefslogtreecommitdiff
path: root/bfd/aoutx.h
AgeCommit message (Collapse)AuthorFilesLines
1994-04-05 * aoutx.h (NAME(aout,canonicalize_reloc)): Don't error out ifIan Lance Taylor1-1/+0
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.
1994-04-04 * aoutx.h (NAME(aout,bfd_free_cached_info)): Don't free anythingIan Lance Taylor1-0/+3
if we don't have a bfd_object.
1994-04-04 Made sure that every call to bfd_read, bfd_write, and bfd_seekIan Lance Taylor1-10/+14
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.
1994-04-01 * aoutx.h (aout_link_write_symbols): If keep_memory is false, makeIan Lance Taylor1-1/+19
sure the symbol name is stored in permanent memory before adding it to the string table.
1994-04-01 Add bfd_free_cached_info support to a.out backends.Ian Lance Taylor1-141/+167
* 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.
1994-03-30Wed Mar 30 16:25:41 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)Ian Lance Taylor1-10/+12
Changes to let BFD return an error indication from get_symtab_upper_bound, bfd_canonicalize_symtab, bfd_get_reloc_upper_bound, and bfd_canonicalize_reloc. They now return long instead of unsigned int, and use -1 to indicate an error. Along the way, rename get_symtab_upper_bound to bfd_get_symtab_upper_bound. * bfd.c (bfd_get_reloc_upper_bound): Return long, and -1 on errors. (bfd_canonicalize_reloc): Likewise. * syms.c (bfd_get_symtab_upper_bound): Renamed from get_symtab_upper_bound. * targets.c (bfd_target): Renamed _get_symtab_upper_bound to _bfd_get_symtab_upper_bound, and changed it and _bfd_canonicalize_symtab and _get_reloc_upper_bound and _bfd_canonicalize_reloc to all return long. * aoutx.h (NAME(aout,get_symtab)): Return long, and -1 on errors. (NAME(aout,canonicalize_reloc)): Likewise. (NAME(aout,get_reloc_upper_bound)): Likewise. (NAME(aout,get_symtab_upper_bound)): Likewise. * bout.c (b_out_canonicalize_reloc): Likewise. (b_out_get_reloc_upper_bound): Likewise. * coffcode.h (coff_canonicalize_reloc): Likewise. * coffgen.c (coff_get_symtab_upper_bound): Likewise. (coff_get_symtab): Likewise. (coff_get_reloc_upper_bound): Likewise. * ecoff.c (ecoff_get_symtab_upper_bound): Likewise. (ecoff_get_symtab): Likewise. (ecoff_canonicalize_reloc): Likewise. * elfcode.h (elf_get_symtab_upper_bound): Likewise. (elf_get_reloc_upper_bound): Likewise. (elf_canonicalize_reloc): Likewise. (elf_get_symtab): Likewise. * hp300hpux.c (MY(get_symtab)): Likewise. (MY(get_symtab_upper_bound)): Likewise. (MY(canonicalize_reloc)): Likewise. * i386lynx.c (NAME(lynx,canonicalize_reloc)): Likewise. * ieee.c (ieee_slurp_external_symbols): Change return type to boolean. Check for errors from get_symbol. (ieee_slurp_symbol_table): Change return type to boolean. Check for errors from ieee_slurp_external_symbols. (ieee_get_symtab_upper_bound): Return long, and -1 on errors. (ieee_get_symtab): Likewise. (ieee_get_reloc_upper_bound): Likewise. (ieee_canonicalize_reloc): Likewise. * mipsbsd.c (MY(canonicalize_reloc)): Likewise. * nlmcode.h (nlm_get_symtab_upper_bound): Likewise. (nlm_get_symtab): Likewise. (nlm_get_reloc_upper_bound): Likewise. (nlm_canonicalize_reloc): Likewise. * oasys.c (oasys_get_symtab_upper_bound): Likewise. (oasys_get_symtab): Likewise. (oasys_get_reloc_upper_bound): Likewise. (oasys_canonicalize_reloc): Likewise. * som.c (som_get_symtab_upper_bound): Likewise. (som_get_symtab): Likewise. (som_get_reloc_upper_bound): Likewise. (som_canonicalize_reloc): Likewise. * srec.c (srec_get_symtab_upper_bound): Likewise. (srec_get_symtab): Likewise. (srec_get_reloc_upper_bound): Define as bfd_0l. (srec_canonicalize_reloc): Likewise. * tekhex.c (tekhex_get_symtab): Return long, and -1 on errors. (tekhex_get_symtab_upper_bound): Likewise. (tekhex_get_reloc_upper_bound): Define as bfd_0l. (tekhex_canonicalize_reloc): Likewise. * libaout.h (NAME(aout,get_symtab_upper_bound)): Change declaration to return long. (NAME(aout,get_symtab)): Likewise. (NAME(aout,canonicalize_reloc)): Likewise. (NAME(aout,get_reloc_upper_bound)): Likewise. * libcoff-in.h (coff_get_symtab_upper_bound): Likewise. (coff_get_symtab): Likewise. (coff_get_reloc_upper_bound): Likewise. * libecoff.h (ecoff_get_symtab_upper_bound): Likewise. (ecoff_get_symtab): Likewise. (ecoff_canonicalize_reloc): Likewise. * libelf.h (bfd_elf32_get_symtab_upper_bound): Likewise. (bfd_elf32_get_symtab): Likewise. (bfd_elf32_get_reloc_upper_bound): Likewise. (bfd_elf32_canonicalize_reloc): Likewise. (bfd_elf64_get_symtab_upper_bound): Likewise. (bfd_elf64_get_symtab): Likewise. (bfd_elf64_get_reloc_upper_bound): Likewise. (bfd_elf64_canonicalize_reloc): Likewise. * libnlm.h (nlmNAME(get_symtab_upper_bound)): Likewise. (nlmNAME(get_symtab)): Likewise. (nlmNAME(get_reloc_upper_bound)): Likewise. (nlmNAME(canonicalize_reloc)): Likewise. * archive.c (compute_and_write_armap): Use error_return and no_memory_return labels rather than freeing information in various places. Change storage, symcount and src_count to long. Check errors from bfd_get_symtab_upper_bound and bfd_canonicalize_symtab. * bout.c (b_out_relax_section): Change reloc_size to long. Check for errors from bfd_get_reloc_upper_bound and bfd_canonicalize_reloc. (b_out_get_relocated_section_contents): Likewise. * coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Likewise. * elf32-mips.c: Likewise. * elf32-hppa.c (hppa_elf_stub_finish): Likewise. (hppa_look_for_stubs_in_section): Check for errors from bfd_get_symtab_upper_bound, bfd_canonicalize_symtab, and bfd_canonicalize_reloc. * ecofflink.c (bfd_ecoff_debug_accumulate_other): Check for errors from bfd_get_symtab_upper_bound and bfd_canonicalize_symtab. * linker.c (generic_link_read_symbols): Likewise. (_bfd_generic_final_link): Check for errors from bfd_get_reloc_upper_bound and bfd_canonicalize_reloc. * reloc.c (bfd_generic_get_relocated_section_contents): Likewise. * reloc16.c (bfd_coff_reloc16_relax_section): Likewise. (bfd_coff_reloc16_get_relocated_section_contents): Likewise. * libbfd.c (bfd_0l): New function. * libbfd-in.h (bfd_0l): Declare. * aix386-core.c: Change get_symtab_upper_bound, get_symtab, get_reloc_upper_bound, and canonicalize_reloc to use bfd_0l rather than bfd_0u. * cisco-core.c, hppabsd-core.c, hpux-core.c: Likewise. * irix-core.c, osf-core.c, ptrace-core.c, trad-core.c: Likewise. * bfd-in2.h: Rebuilt. * libbfd.h: Rebuilt. * libcoff.h: Rebuilt. * nlm32-sparc.c (nlm_sparc_read_reloc): Remove unused variables temp and name.
1994-03-28 * aoutx.h (translate_from_native_sym_flags): Set SEC_RELOC flagIan Lance Taylor1-1/+1
for generated constructor section.
1994-03-25Fix typo in comment.Ian Lance Taylor1-1/+1
1994-03-25 * aoutx.h (NAME(aout,find_nearest_line)): The caller expectsIan Lance Taylor1-2/+265
functionname_ptr to be set to a symbol name, so prepend symbol_leading_char.
1994-03-17 * aoutx.h, elfcode.h, coff-alpha.c, bout.c, ecoff.c, ecofflink.c,Jim Kingdon1-123/+119
elf32-hppa.c, elf32-mips.c, linker.c, som.c, sunos.c: If malloc(0) returns NULL, it is not an error. It's possible that some of these checks are not necessary (because the size can never be zero), but putting in the checks is the conservative thing to do in light of the fact that some of these malloc calls replaced unchecked alloca calls, in which a zero argument would work fine.
1994-03-10 * libbfd-in.h: Remove alloca cruft. It was missing some necessaryJim Kingdon1-26/+61
cruft (like the #pragma alloca for AIX). In addition to that problem, the C alloca calls xmalloc, which means checking for being out of memory can't work right. The following changes remove all uses of alloca from BFD. * hosts/solaris2.h: Remove alloca cruft. * som.c: Replace alloca with a fixed size auto array. * aoutx.h, elfcode.h, nlmcode.h, bout.c, coff-alpha.c, ecoff.c, ecofflink.c, elf32-hppa.c, elf32-mips.c, linker.c, reloc.c, som.c: Replace alloca with malloc and appropriate error checking and freeing. * linker.c: Replace alloca with obstack_alloc. * libbfd.h: Rebuilt.
1994-02-26 * aoutx.h, archive.c: Add casts to avoid warnings from SVR4 cc.Ian Lance Taylor1-25/+25
* ecoff.c, ecofflink.c, ecoffswap.h, srec.c: Likewise. * elf32-i386.c: Likewise. * elfcode.h (bfd_section_from_shdr): Make i unsigned; remove old #if 0 code. (elf_write_phdrs): Make i unsigned. (map_program_segments): Make i and n_left unsigned. (assign_file_positions_except_relocs): Make i unsigned. (write_shdrs_and_ehdr): Make count unsigned. (assign_file_positions_for_relocs): Make i unsigned. (NAME(bfd,elf_write_object_contents)): Make count unsigned. (section_from_elf_index): Make index argument unsigned.
1994-02-12 Make all callers of malloc or realloc (including via obstacks)David MacKenzie1-15/+71
check the result for NULL. Most set bfd_error to no_memory and return in that case; a few are harder to fix, and are marked with "FIXME <return type>". * elf32-hppa.c (hppa_elf_build_arg_reloc_stub hppa_elf_build_long_branch_stub): Check bfd_make_empty_symbol return. * linker.c (_bfd_generic_link_output_symbols _bfd_generic_link_write_global_symbol): Ditto * section.c (bfd_make_section_anyway): Ditto. * tekhex.c (find_chunk tekhex_mkobject): Check bfd_alloc. (first_phase): Ditto. FIXME void (tekhex_make_empty_symbol): Check bfd_zalloc. * sunos.c (sunos_read_dynamic_info): Check bfd_zalloc. (MY(read_dynamic_symbols) MY(read_dynamic_relocs)): Check bfd_alloc. * stringhash.c (_bfd_stringtab_hash_newfunc): Check bfd_hash_allocate. * srec.c: Indent. (fillup_symbols): Check bfd_alloc. FIXME void (srec_mkobject srec_get_section_contents srec_set_section_contents): Check bfd_alloc. (srec_make_empty_symbol): Check bfd_zalloc. * som.c (hppa_som_gen_reloc_type): Check bfd_alloc_by_size_t. (make_unique_section): Check bfd_alloc. (som_new_section_hook): Check bfd_zalloc. (bfd_som_attach_aux_hdr): Ditto. FIXME void * rs6000-core.c (rs6000coff_core_p): Check bfd_zalloc. * osf-core.c (osf_core_make_empty_symbol): Check bfd_zalloc. (osf_core_core_file_p): Check bfd_alloc. * oasys.c (oasys_slurp_symbol_table oasys_archive_p oasys_mkobject oasys_object_p oasys_new_section_hook oasys_set_section_contents): Check bfd_alloc. (oasys_slurp_section_data): Check bfd_zalloc and bfd_alloc. (oasys_make_empty_symbol): Check bfd_zalloc. * nlmcode.h (nlm_make_empty_symbol): Check bfd_zalloc. (nlm_slurp_symbol_table): Check bfd_zalloc and bfd_alloc. * nlm32-sparc.c (nlm_sparc_read_import): Check bfd_alloc. * nlm32-i386.c (nlm_i386_read_import): Check bfd_alloc. * nlm32-alpha.c (nlm_alpha_read_import): Check bfd_alloc. * linker.c (_bfd_link_hash_newfunc (generic_link_hash_newfunc (archive_hash_newfunc (_bfd_generic_link_add_one_symbol): Check bfd_hash_allocate. (_bfd_generic_final_link (_bfd_generic_link_output_symbols (default_indirect_link_order): Check bfd_alloc. (bfd_new_link_order): Check bfd_alloc_by_size_t. * irix-core.c (irix_core_make_empty_symbol): Check bfd_zalloc. * ieee.c: Indent. (read_id get_symbol get_section_entry ieee_archive_p ieee_object_p ieee_slurp_section_data ieee_new_section_hook): Check bfd_alloc. (do_one): Check bfd_alloc. Return a boolean. (ieee_slurp_section_data): Check it. (init_for_output): Check bfd_alloc. Return a boolean. (ieee_set_section_contents): Check it. (do_with_relocs): Check bfd_alloc. Return a boolean. (ieee_bfd_debug_info_accumulate): Ditto. FIXME void. (ieee_mkobject): Check bfd_zalloc. (ieee_make_empty_symbol): Check bfd_zmalloc. * hpux-core.c (hpux_core_make_empty_symbol): Check bfd_zalloc. * hppabsd-core.c (hppabsd_core_make_empty_symbol): Check bfd_zalloc. (hppabsd_core_core_file_p): Check bfd_zalloc. * hp300hpux.c (MY(slurp_symbol_table)): Check bfd_alloc. * elfcode.h (elf_new_section_hook): Check bfd_alloc. (bfd_section_from_phdr): Ditto. (write_relocs): Ditto. FIXME void (elf_map_symbols assign_section_numbers map_program_segments): Ditto. Return a boolean. (swap_out_syms): Ditto. Check elf_map_symbols. (elf_slurp_symbol_table): Check bfd_zalloc. (elf_slurp_reloca_table): Check bfd_alloc. (elf_slurp_reloc_table): Ditto. (elf_compute_section_file_positions): Check assign_section_numbers. (assign_file_positions_except_relocs): Return a boolean. Check map_program_segments. (elf_compute_section_file_positions): Check it. * elf32-mips.c (mips_elf_final_link): Check bfd_alloc. * elf32-hppa.c (hppa_elf_stub_branch_reloc): Check bfd_zmalloc and realloc. (hppa_elf_stub_reloc): Ditto. (hppa_elf_build_arg_reloc_stub): Check bfd_zalloc. (hppa_elf_build_long_branch_stub): Ditto. (elf32_hppa_backend_symbol_table_processing): Ditto. * ecoff.c (ecoff_set_symbol_info): Check bfd_alloc. Return a boolean. (ecoff_slurp_symbol_table): Check it. (ecoff_slurp_armap): Check bfd_alloc. (ecoff_write_armap): Check bfd_zalloc. (ecoff_link_hash_newfunc): Check bfd_hash_allocate and _bfd_link_hash_newfunc. (ecoff_link_add_externals): Check bfd_alloc. * ctor.c (bfd_constructor_entry): Check bfd_alloc. * coffgen.c (coff_real_object_p): Check bfd_alloc. (coff_renumber_symbols): Check bfd_alloc_by_size_t. Return a boolean. (coff_write_symbol): Check bfd_alloc. FIXME int (coff_write_linenumbers): Check bfd_alloc. Return a boolean. (coff_section_symbol): Check bfd_alloc_by_size_t. (coff_get_normalized_symtab): Check bfd_alloc. (coff_bfd_make_debug_symbol): Check bfd_zalloc. * libcoff-in.h: Change decls of coff_renumber_symbols, coff_write_linenumbers. * libcoff.h: Rebuilt. * coffcode.h (coff_write_object_contents): Check coff_renumber_symbols, coff_write_linenumbers. * coffcode.h: Indent. (coff_add_missing_symbols): Check bfd_alloc_by_size_t. Return a boolean. (coff_write_object_contents): Check it. * coff-alpha.c (alpha_relocate_section): Check bfd_alloc. * coff-mips.c (mips_relocate_section): Ditto. * archive.c (bfd_slurp_bsd_armap_f2): Check bfd_alloc value. (do_slurp_bsd_armap): Ditto. (compute_and_write_armap): Check bfd_realloc value. * aoutx.h (translate_from_native_sym_flags): Check bfd_alloc return value. Return boolean value. (NAME(aout,make_empty_symbol)): Check bfd_zalloc return value. (NAME(aout,slurp_symbol_table)): Check bf_alloc and bfd_zalloc return value. (add_to_stringtab): Ditto. FIXME void (aout_link_hash_newfunc): Check bfd_hash_allocate return value. (aout_link_add_symbols): Check bfd_alloc value. (translate_symbol_table): Check translate_from_native_sym_flags. * hp300hpux.c (MY(slurp_symbol_table)): Ditto. * aoutx.h (aout_link_hash_newfunc): Check _bfd_link_hash_newfunc. * opncls.c (bfd_zalloc bfd_realloc): Check result of bfd_alloc. * opncls.c (obstack_chunk_alloc): Define as malloc, not bfd_xmalloc_by_size_t. (_bfd_new_bfd): Check obstack_begin for 0 return. * ieee.c (obstack_chunk_alloc): Define as malloc, not bfd_xmalloc_by_size_t. (ieee_archive_p): Check obstack_begin for 0 return and obstack_finish for NULL return. * hash.c (obstack_chunk_alloc): Define as malloc, not bfd_xmalloc_by_size_t. (bfd_hash_table_init_n): Check obstack_begin for 0 return and obstack_finish for NULL return. (bfd_hash_lookup): Check obstack_alloc for NULL return. * ecofflink.c (obstack_chunk_alloc): Define as malloc, not bfd_xmalloc_by_size_t. bfd_ecoff_debug_accumulate bfd_ecoff_debug_accumulate_other): Check obstack_alloc. (add_file_shuffle add_memory_shuffle): Check obstack_alloc for NULL return. Return boolean, not void. (bfd_ecoff_debug_init): Check obstack_begin for 0 return. (bfd_ecoff_debug_accumulate): Check add_file_shuffle and add_memory_shuffle return. (string_hash_newfunc): Check bfd_hash_allocate and bfd_hash_newfunc. (bfd_ecoff_debug_accumulate): Check bfd_alloc. (ecoff_add_string): Check add_memory_shuffle return. * libbfd-in.h (xmalloc, bfd_xmalloc, bfd_xmalloc_by_size_t): Remove decls. * libbfd.h: Rebuilt.
1994-02-05 * aoutx.h (aout_link_check_ar_symbols): Correct test for whetherIan Lance Taylor1-4/+17
object file defines symbol. Also, if skipping a symbol, skip the second symbol of a N_WARNING or N_INDR symbol as well.
1994-02-03 * aoutx.h (aout_reloc_index_to_section): Handle N_UNDF.Ian Lance Taylor1-0/+1
1994-01-30 * aoutx.h (aout_link_write_symbols): Write out correct value forIan Lance Taylor1-1/+3
object file symbol.
1994-01-24 * bfd/aoutx.h (aout_link_input_section_std,Ian Lance Taylor1-6/+36
aout_link_input_section_ext): Pass additional arguments to reloc_overflow callback. * coff-alpha.c (alpha_ecoff_get_relocated_section_contents, alpha_relocat_section): Likewise. * coff-h8300.c (h8300_reloc16_extra_cases): Likewise. * coff-h8500.c (extra_case): Likewise. * coff-mips.c (mips_relocate_section): Likewise. * coff-z8k.c (extra_case): Likewise. * elf32-hppa.c (hppa_elf_stub_finish): Likewise. * reloc.c (bfd_generic_get_relocated_section_contents): Likewise.
1994-01-24 * aoutx.h (translate_symbol_table): The string index 0 has aIan Lance Taylor1-1/+9
special meaning for normal symbols, but not for dynamic symbols.
1994-01-21 * aoutx.h (translate_to_native_sym_flags), bfd-in.h (bfd_ec),David MacKenzie1-2/+2
oasys.c (oasys_write_sections): Rename bfd_error_nonrepresentable_section to nonrepresentable_section. None of the other bfd error names start with "bfd_error". Remove errors symbol_not_found and no_relocation_info, which seem to be unused. * bfd-in2.h: Regenerated.
1994-01-21 * syms.c (BSF_DYNAMIC): New symbol flag.Ian Lance Taylor1-82/+207
(bfd_print_symbol_vandf): Print it. * bfd-in2.h: Rebuilt. * libaout.h (struct aout_backend_data): New read_dynamic_symbols and read_dynamic_relocs fields. (struct aoutdata): New dynamic_info field. (obj_aout_dynamic_info): New accessor macro. * sunos.c (struct sunos_dynamic_info): New structure. (sunos_read_dynamic_info, MY(read_dynamic_symbols), MY(read_dynamic_relocs)): New functions to read dynamic symbols and relocs. * aoutx.h (NAME(aout,some_aout_object_p)): If the object is dynamically linked, set SEC_RELOC for both the .text and .data sections. (translate_from_native_sym_flags): Don't set BSF_LOCAL for an undefined symbol. (translate_symbol_table): New function, split out of slurp_symbol_table; set the BSF_DYNAMIC flag appropriately. (NAME(aout,slurp_symbol_table)): Read dynamic symbols, if any. (NAME(aout,slurp_reloc_table)): Read dynamic relocs, if any. (NAME(aout,get_reloc_upper_bound)): Include dynamic reloc count in return value. * aoutf1.h (NAME(aout,sunos4_write_object_contents)): Don't write out dynamic symbols or relocs against reloc symbols, since they are already in the .text section and we wouldn't know where to write them anyhow. (sunos4_aout_backend): Initialize read_dynamic_symbols and read_dynamic_relocs fields. * aout-target.h (MY(backend_data)): Initialize read_dynamic_symbols and read_dynamic_relocs fields.
1994-01-19 * aoutx.h (translate_to_native_sym_flags): Set the type of aIan Lance Taylor1-0/+1
BSF_WARNING symbol to N_WARNING.
1994-01-19Resolve warning symbols like indirect symbols.Ian Lance Taylor1-4/+6
1994-01-18 * aoutx.h (aout_link_add_symbols): Increment sym_hash as well as pIan Lance Taylor1-10/+61
for an indirect or warning symbol. (aout_link_write_symbols): Update sym_hash with the target of an indirect symbol. If an indirect symbol is defined, output the calculated value and don't output the target symbol.
1994-01-18 * aoutx.h (translate_from_native_sym_flags): Give warning symbolsDavid MacKenzie1-0/+5
an (unused) nonzero section value, needed for check below.
1994-01-17 * aoutx.h (translate_from_native_sym_flags,David MacKenzie1-12/+14
aout_link_add_symbols): Treat N_SET[ABDT] | N_EXT like N_SET[ABDT].
1994-01-07 * aoutx.h (adjust_z_magic): Don't merge the start of bss with theDavid MacKenzie1-5/+14
end of data if they are not contiguous.
1994-01-06 * aoutx.h (translate_to_native_sym_flags): Catch the case whereDavid MacKenzie1-9/+13
there is no output section.
1994-01-06 * aoutx.h (NAME(aout,final_link)): Don't abort when trying to linkIan Lance Taylor1-41/+80
a non a.out file, just pass it to _bfd_default_link_order. (aout_link_input_section_std): When doing a final PC relative link against a section symbol, subtract the VMA of the input section. (aout_link_input_section_ext): Likewise.
1993-12-31 Minor cleanups suggested by CodeCenter.Ian Lance Taylor1-9/+17
* aoutx.h, coffgen.c, ecoff.c, ecofflink.c, elf.c, libbfd.c, linker.c, reloc.c, section.c, srec.c: Added /*ARGSUSED*/ as appropriate. * aoutx.h (struct external_exec): Removed unnecessary declaration. (NAME(aout,some_aout_object_p)): Set some tdata pointers to NULL. (adjust_z_magic): Removed useless variable data_vma. (stringtab_init): Initialize hash_zero. (add_to_stringtab): Removed unused fourth argument. (NAME(aout,swap_std_reloc_out)): Removed useless variable r_addend. (aout_link_input_section): Added some casts. * archive.c (get_extended_arelt_filename, do_slurp_coff_armap, bfd_ar_hdr_from_filesystem, bsd_write_armap, coff_write_armap): Minor code rewriting to make it more C like. (do_slurp_bsd_armap): Added some casts. * ecoff.c (ecoff_write_object_contents): Removed useless variable scn_base. (ecoff_write_armap): Added some casts. Use "" rather than "\0". * ecofflink.c (bfd_ecoff_write_debug): Added a cast. * libaout.h (struct internal_exec): Removed unnecessary declaration. * linker.c (_bfd_generic_indirect_link_order): Added a cast. * opncls.c (new_bfd): Removed a cast. * reloc.c (bfd_generic_get_relocated_section_contents): Added some casts. * srec.c (internal_srec_write_object_contents): Removed useless variable bytes_written.
1993-12-30 Extensive changes to move the bulk of the linker into BFD so thatIan Lance Taylor1-192/+1926
more efficient backend code can be written for specific object files. Only existing efficient backend is a.out. * seclet.c, seclet.h: Removed. * hash.c, linker.c, genlink.h: New files. * bfd-in.h: Removed bfd_error_vector. Declared hash table structures and functions. (JUMP_TABLE): Removed bfd_seclet_link, added bfd_link_hash_table_create, bfd_link_add_symbols and bfd_final_link. * All backends: Changed accordingly. * bfd-in2.h: Rebuilt. * bfd.c (struct _bfd): Added link_next and archive_pass fields. Removed ld_symbols field. (bfd_nonrepresentable_section, bfd_undefined_symbol, bfd_reloc_value_truncated, bfd_reloc_is_dangerous, bfd_error_vector): Removed. (bfd_default_error_trap, bfd_error_trap, bfd_error_nonrepresentabltrap): Removed. (bfd_get_relocated_section_contents): Pass link_info. Pass link_order instead of seclet. Pass symbols. (bfd_relax_section): Pass link_info. (bfd_seclet_link): Removed. (bfd_link_hash_table_create, bfd_link_add_symbols, bfd_final_link): New macros. * libbfd-in.h: If __GNUC__ is defined and alloca is not, define alloca as __builtin_alloca. Declare internal linking functions. * libbfd.h: Rebuilt. * libbfd.c (bfd_seek): Comment out fseek assertion. It's worked for months. * reloc.c (reloc_howto_type): Added error_message argument to special_function field. Changed all callers and all definitions. (bfd_get_reloc_size): Make argument a const pointer. (bfd_perform_relocation): Add error_message argument to hold string set if return value if bfd_reloc_dangerous. Changed all callers. (_bfd_final_link_relocate, _bfd_relocate_contents): New functions. * section.c (asection): Renamed seclets_head and seclets_tail to link_order_head and link_order_tail. * targets.c (bfd_target): Replaced seclet argument with link_info and link_order and symbols arguments in bfd_get_relocated_section_contents. Added symbols argument to bfd_relax_section. Removed bfd_seclet_link. Added bfd_link_hash_table_create, bfd_link_add_symbols and bfd_final_link. * libaout.h (struct aoutdata): Added external_syms, external_sym_count, external_strings, sym_hashes fields. (obj_aout_external_syms, obj_aout_external_sym_count, obj_aout_external_strings, obj_aout_sym_hashes): New accessor macros. (WRITE_HEADERS): Only output symbols if outsymbols is not NULL. * aoutx.h: Wrote new back end linker routines. (translate_to_native_sym_flags): Return boolean value. Don't use bfd_error_vector. (NAME(aout,write_syms)): Return boolean value. Check return value of translate_to_native_sym_flags and bfd_write. * aout-target.h (final_link_callback): New function. (MY_bfd_final_link): New function. * aout-adobe.c (aout_adobe_write_object_contents): Check return value of aout_32_write_syms. * hp300hpux.c (MY(write_object_contents)): Likewise. * i386lynx.c (WRITE_HEADERS): Likewise. * libaout.h (WRITE_HEADERS): Likewise. * bout.c: Changed functions to use link_info->callbacks rather than bfd_error_vector, and link_orders rather than seclets. * coff-alpha.c: Likewise. * coff-h8300.c: Likewise. * coff-h8500.c: Likewise. * coff-sh.c: Likewise. * coff-z8k.c: Likewise. * elf32-hppa.c: Likewise. * reloc16.c: Likewise. * coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Look up _gp in the hash table rather than in outsymbols. * coff-a29k.c (a29k_reloc): Pass errors back in new error_message argument rather than printing them. * coffcode.h (bfd_coff_reloc16_extra_cases): Take link_info and link_order arguments rather than seclet. Changed all uses and definitions. (bfd_coff_reloc16_estimate): Pass link_info arguments. Changed all uses and definitions. * libcoff.h: Rebuilt. * ecoff.c (ecoff_get_extr): If symbol is defined by linker, but not by ECOFF, make it scAbs. (ecoff_bfd_final_link): Renamed from ecoff_bfd_seclet_link and rewritten. * elf32-mips.c (mips_elf_final_link): Renamed from mips_elf_seclet_link and rewritten. * elf32-hppa.c (elf32_hppa_stub_description): Added link_info field. (new_stub, add_stub_by_name, hppa_elf_build_arg_reloc_stub, hppa_elf_build_long_branch_stub, hppa_look_for_stubs_in_section): Added link_info arguments. Changed all callers. * elfcode.h (elf_slurp_symbol_table): Don't quit if outsymbols is not NULL. * oasys.c (oasys_write_sections): Return boolean value rather than using bfd_error_vector. (oasys_write_object_contents): Check return value of oasys_write_sections. * hosts/std-host.h: Don't declare qsort or strtol. * Makefile.in: Rebuild dependencies. (BFD_LIBS): Removed seclet.o. Added hash.o and linker.o. (CFILES): Removed seclet.c. Added hash.c and linker.c. (HFILES): Removed seclet.h. Added genlink.h.
1993-11-05doc cleanupDavid MacKenzie1-176/+183
1993-08-17 * archures.c (bfd_default_set_arch_mach): Set bfd_error onIan Lance Taylor1-52/+48
failure. * aoutx.h (NAME(aout,set_arch_mach)): Check return value of bfd_default_set_arch_mach.
1993-07-20 * configure.in (*-*-netware, i[34]86-*-netware): New configs.Fred Fish1-6/+0
* Makefile.in (BFD32_BACKENDS): Add nlm.o, nlm32.o, nlm32-gen.o. * Makefile.in (BFD64_BACKENDS): Add nlm64.o, nlm64-gen.o. * Makefile.in (CFILES): Add nlm{32,64}.c, nlm{32,64}-gen.c. * Makefile.in (nlm.o, nlm{32,64}.o, nlm{32,64}-gen.o: New targets. * bfd-in2.h (INLINE): Defines moved here. * {aoutx.h, elf.c, elfcode.h}: Move INLINE defines to bfd-in2.h. * libelf.h (CAT4): Move define to bfd-in2.h. * bfd-in2.h (CAT4): Merge CAT4 macro with other CAT macros. * bfd-in2.h (union tdata): Add nlm_obj_data. * bfd-in2.h (enum target_flavour): Add bfd_target_nlm_flavour. * targets.c (bfd_nlm{32,64}_{big,little}_vec): Add prototypes. * targets.c (target_vector): Add bfd_nlm{32,64}_{big,little}_vec. * (libnlm.h, nlm.c, nlmcode.h, nlm{32,64}-gen.c, nlm{32,64}-target.h, nlm{32,64}.c, config/i386-nlm.mt): New files for NLM support.
1993-07-07 * aoutx.h (translate_from_native_sym_flags): Removed statepIan Lance Taylor1-204/+187
argument. Just let an indirect symbol point to the next symbol without forcing the next symbol to be undefined. Changed all callers. * hp300hpux.c (slurp_symbol_table): Changed call to translate_from_native_sym_flags. * targets.c: Added hp300hpux_vec. * Makefile.in (hp300hpux.o): Added dependencies.
1993-06-26 * aoutx.h (hash, compare, struct stringtab_entry, add_to_stringtab):David MacKenzie1-56/+63
Use unsigned hash values for better hashing. (hash): Hash in the string length for long strings. * aoutx.h (compare): Replace 3 if's with a subtraction. (translate_to_native_sym_flags, add_to_stringtab): Reorder tests in decreasing order of success, as an optimization. (hash): Take a length arg; ignore chars after #25, for speed. (add_to_stringtab): Pass length to hash.
1993-06-22Before casting a pointer into an integer field, verify that the field isKen Raeburn1-0/+14
wide enough to hold it.
1993-06-18Eliminate "int8_type", "int16_type", "int32_type", and theirJohn Gilmore1-33/+50
variants from the BFD universe. Leave the 64-bit types for now, since they are in flux. * aoutx.h, hp300hpux.c: Eliminate needless (int32_type) casts. * libaout.h (GET_SWORD): Convert (int32_type) to (int). * ieee.c: Convert uint8e_type => unsigned char. * oasys.c: Extensive changes to eliminate obsolete types. These depend on changes in ../include/oasys.h as well.
1993-04-20a.out string table reduction code, take two.Ken Raeburn1-104/+490
Also fixed a bug in reading symbol tables on some systems...
1993-04-15* aoutx.h (aout_*_adjust_sizes_and_vmas): Avoid `sanity'John Gilmore1-199/+217
check for the case where the user sets the address of the BSS section (and the file header can't specify this). Let the user set it wherever they want, regardless of what goes in the header. Fixes #ld/1826 (the fix was never checked in by Steve or Ken).
1993-02-01from ralphc: mips-aout supportKen Raeburn1-1/+13
1993-01-26Tue Jan 26 11:43:14 1993 Ian Lance Taylor (ian@cygnus.com)Ian Lance Taylor1-15/+15
* section.c (SEC_IS_COMMON): New section flag, needed for MIPS ECOFF which has two common sections. (bfd_com_section): Set SEC_IS_COMMON flag. * bfd-in.h (bfd_is_com_section): New macro to test SEC_IS_COMMON. * aoutx.h, archive.c, bout.c, coff-a29k.c, coff-m88k.c, coff-mips.c, coffgen.c, ieee.c, oasys.c, reloc.c, syms.: Use bfd_is_com_section macro rather than checking for equality to bfd_com_section.
1993-01-19Tue Jan 19 09:06:14 1993 Ian Lance Taylor (ian@cygnus.com)Ian Lance Taylor1-23/+23
* aoutx.h (swap_ext_reloc_in, swap_std_reloc_in), bout.c (b_out_slurp_reloc_table), coff-mips.c (ecoff_swap_reloc_in), coff-msym.c (ecoff_swap_sym_in, ecoff_swap_rndx_in, ecoff_swap_opt_in): Added casts to int to avoid muttering by MIPS compiler.
1992-11-29 * aoutx.h (some_aout_object_p): Protect arg prototype inFred Fish1-1/+1
callback_to_real_object_p with PARAMS macro for non-ANSI compilers.
1992-11-28* aout-target.h, aoutf1.h, trad-core.c, coffcode.h, libaout.h:John Gilmore1-3/+5
Eliminate all PROTO calls, replace with PARAMS for readability. * aoutx.h: Add type to callback parameter. * coff-mips.c: Don't call trad-core.h, not needed. * trad-core.c: Incorporate trad-core.h declarations. Fix comments. * trad-core.h: Eliminate, unused.
1992-10-15* aout-adobe.c, aoutf1.h, aoutx.h, bout.c coff-m68k.c, coff-z8k.c,John Gilmore1-1/+0
coffcode.h, elf.c, libaout.h, libbfd.h, srec.c: Lint.
1992-10-09Linker now works for go32; other changes keep it from breaking the otherMark Eichin1-1/+1
platforms (new backend_data "exec_header_not_counted") (from p3.)
1992-10-09* aout-target.h (callback): Don't define this function if it won't be used.Ken Raeburn1-29/+76
* aoutx.h (some_aout_object_p): Restore old aout_data value if this type doesn't match. Don't lose if file sections have already been created. (set_arch_mach): Set reloc_entry_size. (slurp_symbol_table): Use bfd_h_get_{16,8} for reaeding symbol data. * hosts/i386bsd.h: New file. * configure.in: Recognize i[34]86-*-bsd host. * aout-target.h (callback, write_object_contents): Delete unused variables. * aoutx.h (reloc_type_lookup): New function. * aout-target.h (MY_reloc_howto_type_lookup): Use it as default. * aoutf1.h (sunos4_reloc_type_lookup): Deleted. (MY_reloc_howto_type_lookup): Don't define it. * aoutx.h (adjust_sizes_and_vmas): Don't bother with padding for OMAGIC files. (slurp_symbol_table): Use header byte order, not target byte order, for reading symbol data.
1992-10-09 * configure.in: Undo some brain damage in the host section.John Gilmore1-4/+5
* Makefile.in (make): Remove obsolete `make make'. * aoutx.h (some_aout_object_p): Make defines line up.
1992-08-31 * aoutx.h (aout<n>swap_ext_reloc_out), bout.cSteve Chamberlain1-33/+61
(b_out_squirt_out_relocs): fix bug 1506 where abs symbols attached to the built-in abs_section were not written out correctly.
1992-06-16[time to file a PR on cvs...]Ken Raeburn1-72/+289
Various changes to get linker working again for a.out: * don't set/adjust section file positions or vmas more than once * use correct page size and segment size when calculating them * deal with some variations in a.out implementations Tested on sun4 and sun4->sun3 so far, will be testing further but needed to get wider exposure&testing. See ChangeLog for details. Also: * coffcode.h (coff_write_relocs): Write out swapped reloc, not pre-swapped version. * hosts/sparc.h (abort, exit): Hide these names if compiling with gcc version 2, to avoid warnings.