2001-12-18 H.J. Lu <hjl@gnu.org>
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index 2870723e77a0a719bcc8607f1e68c7a06d42f0cc..1762a089a13effa7d3c7dfe90573134a81eb938b 100644 (file)
+2001-12-18  H.J. Lu <hjl@gnu.org>
+
+       * elf-bfd.h (_bfd_elf_copy_private_bfd_data): New. Prototype.
+       (_bfd_mips_elf_copy_private_bfd_data): Removed.
+
+       * elf.c (_bfd_elf_copy_private_bfd_data): New. Copy e_flags in
+       the ELF header.
+
+       * elf32-i370.c (??_elf_copy_private_bfd_data): Removed.
+       (bfd_elf??_bfd_copy_private_bfd_data): Removed.
+       * elf32-m32r.c: Likewise.
+       * elf32-m68k.c: Likewise.
+       * elf32-mcore.c: Likewise.
+       * elf32-mips.c: Likewise.
+       * elf32-ppc.c: Likewise.
+       * elf32-v850.c: Likewise.
+       * elf64-ppc.c: Likewise.
+       * elf64-sparc.c: Likewise.
+       * elfxx-ia64.c: Likewise.
+
+       * elf64-mips.c (bfd_elf64_bfd_copy_private_bfd_data): Removed.
+
+       * elfxx-target.h (bfd_elfNN_bfd_copy_private_bfd_data): Defined
+       to _bfd_elf_copy_private_bfd_data.
+
+2001-12-18  Martin Schwidefsky  <schwidefsky@de.ibm.com>
+       * elf32-s390 (elf_s390_check_relocs): Pass addend to
+       gc_record_vtentry.
+       * elf64-s390 (elf_s390_check_relocs): Likewise.
+       Fix by Andreas Jaeger <aj@suse.de>.
+
+2001-12-18  Jason Thorpe  <thorpej@wasabisystems.com>
+
+       * configure.host: Correctly match all NetBSD/mips
+       hosts.
+
+2001-12-18  matthew green  <mrg@eterna.com.au>
+
+       * config.bfd (m68*-*-netbsdelf*): New target.
+       (m68*-*-netbsd): Also include bfd_elf32_m68k_vec.
+       (m68*-*-netbsdaout*): New alias for m68*-*-netbsd.
+
+2001-12-18  Jakub Jelinek  <jakub@redhat.com>
+
+       * elflink.h (size_dynamic_sections): Skip anonymous version tag.
+       (elf_link_assign_sym_version): Don't count anonymous version tag.
+
+2001-12-18  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf-eh-frame.c (struct cie): Add make_lsda_relative.
+       (struct eh_cie_fde): Add lsda_encoding, lsda_offset,
+       make_lsda_relative.
+       (read_value, write_value): New.
+       (_bfd_elf_discard_section_eh_frame): Inicialize
+       lsda_encoding, lsda_offset and make_lsda_relative.
+       (_bfd_elf_eh_frame_section_offset): If make_lsda_relative,
+       request no dynamic reloc for LSDA field of FDE.
+       (_bfd_elf_write_section_eh_frame): Handle make_lsda_relative.
+       If a non-DW_EH_PE_absptr value is 0, don't adjust it by base
+       or pcrel.  Fix address computation for DW_EH_PE_pcrel relocs.
+       Update LSDA field if LSDA encoding is DW_EH_PE_pcrel, because
+       . might have changed due to deleted FDE or CIEs.
+
+2001-12-18  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf-strtab.c (struct elf_strtab_hash_entry): Add u.next.
+       (last_eq): Remove.
+       (_bfd_elf_strtab_finalize): Don't use a hash table for last
+       character chains, instead use an array.
+
+2001-12-18  Jason Thorpe  <thorpej@wasabisystems.com>
+
+       * elf.c (elfcore_netbsd_get_lwpid): New function.
+       (elfcore_grok_netbsd_procinfo): New function.
+       (elfcore_grok_netbsd_note): New function.
+       (elfcore_read_notes): Call elfcore_grok_netbsd_note to process
+       NetBSD ELF core file notes.
+
+2001-12-18  Alan Modra  <amodra@bigpond.net.au>
+
+       * elfcode.h (struct bfd_preserve): New.
+       (elf_object_p): Replace preserved_* vars with instance of above.
+       Save and restore arch_info pointer rather than arch, mach so that
+       more cases can be restored.  Save and restore new section_tail,
+       section_htab structure, and init appropriately.  Move "rest of
+       section header" code so that i_shdrp needs no NULL initialisation.
+       Free old section_htab on success.
+       * elfcore.h (elf_core_file_p): Likewise.
+
+2001-12-17  Tom Rix  <trix@redhat.com>
+
+       * coffcode.h (sec_to_styp_flags): Add STYP_EXCEPT and STYP_TYPCHK for
+       xcoff.
+
+2001-12-17  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf-bfd.h (elf_discarded_section): Define.
+       * elflink.h (elf_link_input_bfd): Use it.
+       (elf_reloc_symbol_deleted_p): Likewise.
+
+       * elf64-alpha.c (elf64_alpha_relocate_section): Don't warn about
+       overflows for pc relative relocs against discarded sections.
+
+2001-12-17  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+       * elf32-mips.c (_bfd_mips_elf_relocate_section): Formatting.
+       * elf64-mips.c: Add most of the fixes and tweaks done in elf32-mips.c
+       over the last months. Add some code for mips16 handling.
+       (mips_elf64_check_mips16_stubs): New function.
+       (mips_elf64_stub_section_p): Likewise.
+       (mips_elf64_calculate_relocation): Change interface to support mips16.
+       (mips_elf64_perform_relocation): Likewise.
+
+2001-12-17  Alan Modra  <amodra@bigpond.net.au>
+
+       Support for more than 64k ELF sections.
+       * elf-bfd.h (elf_size_info <swap_symbol_out>): Add shndx param.
+       (bfd_elf32_swap_symbol_in): Likewise.
+       (bfd_elf32_swap_symbol_out): Likewise.
+       (bfd_elf64_swap_symbol_in): Likewise.
+       (bfd_elf64_swap_symbol_out): Likewise.
+       (elf_reloc_cookie): Add locsym_shndx field.  Make locsyms a PTR.
+       (elf_obj_tdata): Add num_elf_sections, symtab_shndx_hdr and
+       symtab_shndx_section.
+       (elf_numsections): Define.
+       (elf_symtab_shndx): Define.
+       * elf.c (setup_group): Use elf_numsections rather than header e_shnum.
+       (bfd_elf_find_section): Likewise.
+       (bfd_section_from_elf_index): Likewise.
+       (bfd_section_from_shdr): Likewise.  Handle SHT_SYMTAB_SHNDX.
+       (bfd_section_from_r_symndx): Read symbol shndx extension, and
+       translate st_shndx for > SHN_HIRESERVE.
+       (assign_section_numbers): Skip reserved sections.  Assign
+       symtab_shndx_section and elf_numsections.  Exclude reserved
+       sections from e_shnum.  Set up symtab_shndx_hdr.
+       (_bfd_elf_compute_section_file_positions): Handle symtab_shndx_hdr.
+       (map_sections_to_segments): Don't map eh_frame_hdr unless required.
+       (assign_file_positions_except_relocs): Use elf_numsections rather
+       than header e_shnum.  Skip reserved sections and symtab_shndx_section.
+       (prep_headers): Set name for symtab_shndx_hdr.
+       (_bfd_elf_assign_file_positions_for_relocs): Use elf_numsections.
+       (_bfd_elf_write_object_contents): Likewise.  Skip reserved sections.
+       (_bfd_elf_section_from_bfd_section): Check bfd_{abs,com,und}_section
+       first.  Use elf_section_data if available.  Use elf_numsections.
+       Start scan at index 1.
+       (copy_private_bfd_data ): Comment fixes.
+       (MAP_ONESYMTAB): Define above SHN_HIOS.
+       (MAP_DYNSYMTAB): Likewise.
+       (MAP_STRTAB): Likewise.
+       (MAP_SHSTRTAB): Likewise.
+       (MAP_SYM_SHNDX): New define.
+       (_bfd_elf_copy_private_symbol_data): Handle symtab_shndx_section.
+       (swap_out_syms): Swap out SHT_SYMTAB_SHNDX section too.
+       * elfcode.h (elf_swap_symbol_in): Add shndx param, and handle shndx
+       extension.
+       (elf_swap_symbol_out): Likewise.
+       (elf_object_p): Set elf_numsections, and use instead of e_shnum.
+       Initialialise reserved elf_elfsections to point at shdr[0].  Remove
+       redundant bfd_release calls.
+       (elf_slurp_symbol_table): Read symbol shndx extension, and use with
+       elf_swap_symbol_in.  Translate st_shndx for > SHN_HIRESERVE too.
+       * elflink.h (elf_link_is_defined_archive_symbol): Read symbol shndx
+       extension, and use with elf_swap_symbol_in.
+       (elf_link_record_local_dynamic_symbol): Likewise.
+       (elf_link_add_object_symbols): Likewise.  Also translate st_shndx
+       for elf sections > SHN_HIRESERVE.
+       (NAME(bfd_elf,size_dynamic_sections)): Adjust elf_swap_symbol_out
+       call.
+       (struct elf_final_link_info): Add locsym_shndx and symshndxbuf.
+       (elf_bfd_final_link): Allocate the above, and tidy code allocating
+       other buffers.  Use elf_numsections instead of e_shnum.  Adjust
+       elf_swap_symbol_out calls.
+       (elf_link_output_sym): Swap out symbol shndx extension too.
+       (elf_link_flush_output_syms): And flush them to disk.
+       (elf_link_output_extsym): Use SHN_BAD.  Adjust elf_swap_symbol_out
+       calls.
+       (elf_gc_mark): Read symbol shndx extension, and use with
+       elf_swap_symbol_in.
+       (elf_link_input_bfd): Likewise,  Translate st_shndx for elf sections
+       > SHN_HIRESERVE too.  Use SHN_BAD.
+       (elf_reloc_symbol_deleted_p): Use symbol shndx extensions with
+       elf_swap_symbol_in.  Translate st_shndx > SHN_HIRESERVE too.
+       (elf_bfd_discard_info): Read symbol shndx extension.  Don't attempt
+       to continue after a bfd error.
+       * elf-m10200.c (mn10200_elf_relax_section): Only read local syms.
+       Stash them immediately to symtab_hdr->contents rather than later
+       in multiple places.  Clean up afterwards.  Read symbol shndx
+       extension, and use with swap_symbol_in.  Translate SHN_UNDEF,
+       SHN_ABS, SHN_COMMON and elf sections > SHN_HIRESERVE to bfd
+       sections too.  Remove dead code.
+       (mn10200_elf_relax_delete_bytes): Use symbol shndx extension
+       when swapping in symbols.  Tidy code adjusting global syms.
+       Don't swap in global syms.
+       (mn10200_elf_symbol_address_p): Likewise.  Remove extsyms param.
+       (mn10200_elf_get_relocated_section_contents): Read symbol shndx
+       extension, and use with swap_symbol_in.  Rename "size" -> "amt"
+       to maximize code in common with other files.  Translate st_shndx
+       for > SHN_HIRESERVE too.  Remove dead code.
+       * elf-m10300.c (mn10300_elf_relax_section): Only read local syms.
+       Stash them immediately to symtab_hdr->contents rather than later
+       in multiple places.  Clean up afterwards.  Read symbol shndx
+       extension, and use with swap_symbol_in.  Remove dead code.
+       (mn10300_elf_relax_delete_bytes): As for elf-m10200.c.
+       (mn10300_elf_symbol_address_p): Likewise.
+       (mn10300_elf_get_relocated_section_contents): Likewise.
+       * elf32-h8300.c (elf32_h8_relax_section): As for elf-m10300.c.
+       (elf32_h8_relax_delete_bytes): Likewise.
+       (elf32_h8_symbol_address_p): Likewise.
+       (elf32_h8_get_relocated_section_contents): Likewise.
+       * elf32-hppa.c (elf32_hppa_size_stubs): Read symbol shndx
+       extension, and use with swap_symbol_in.
+       * elf64-hppa.c (elf64_hppa_check_relocs): Likewise.
+       * elf32-i370.c (i370_elf_finish_dynamic_sections): Adjust call to
+       bfd_elf32_swap_symbol_out.
+       * elf32-m32r.c (m32r_elf_get_relocated_section_contents): Translate
+       elf sections > SHN_HIRESERVE too.
+       * elf32-m68k.c (bfd_m68k_elf32_create_embedded_relocs): Only read
+       local syms.  Read symbol shndx extension, and use with swap_symbol_in.
+       * elf32-mips.c (_bfd_mips_elf_final_write_processing): Use
+       elf_numsections rather than header e_shnum.
+       * elf32-sh.c (sh_elf_relax_section): As for elf-m10300.c.
+       (sh_elf_relax_delete_bytes): Likewise.
+       (sh_elf_get_relocated_section_contents): Likewise.  Only read local
+       symbols.
+       * elf32-v850.c (v850_elf_symbol_processing): Use an unsigned int to
+       hold section index.  Use elf_numsections rather than e_shnum.
+       Rename "index" -> "indx" to avoid shadowing warning.
+       (v850_elf_add_symbol_hook): Likewise.
+       * elf64-alpha.c (elf64_alpha_relax_section): Only read local syms.
+       Read symbol shndx extension, and use with swap_symbol_in.
+       * elf32-xstormy16.c (xstormy16_elf_relax_section): Likewise.
+       Translate SHN_COMMON and elf sections > SHN_HIRESERVE too.
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Likewise.
+       (elfNN_ia64_aix_add_symbol_hook): Use elf_numsections.
+
+       * elf-m10300.c (mn10300_elf_gc_mark_hook): Remove unnecessary checks
+       before calling bfd_section_from_elf_index on local syms.
+       * elf32-arm.h (elf32_arm_gc_mark_hook): Likewise.
+       * elf32-avr.c (elf32_avr_gc_mark_hook): Likewise.
+       * elf32-cris.c (cris_elf_gc_mark_hook): Likewise.
+       * elf32-d10v.c (elf32_d10v_gc_mark_hook): Likewise.
+       * elf32-fr30.c (fr30_elf_gc_mark_hook): Likewise.
+       * elf32-hppa.c (elf32_hppa_gc_mark_hook): Likewise.
+       * elf32-i386.c (elf_i386_gc_mark_hook): Likewise.
+       * elf32-m32r.c (m32r_elf_gc_mark_hook): Likewise.
+       * elf32-m68k.c (elf_m68k_gc_mark_hook): Likewise.
+       * elf32-mcore.c (mcore_elf_gc_mark_hook): Likewise.
+       * elf32-mips.c (_bfd_mips_elf_gc_mark_hook): Likewise.
+       * elf32-openrisc.c (openrisc_elf_gc_mark_hook): Likewise.
+       * elf32-ppc.c (ppc_elf_gc_mark_hook): Likewise.
+       * elf32-s390.c (elf_s390_gc_mark_hook): Likewise.
+       * elf32-sh.c (sh_elf_gc_mark_hook): Likewise.
+       * elf32-sparc.c (elf32_sparc_gc_mark_hook): Likewise.
+       * elf32-v850.c (v850_elf_gc_mark_hook): Likewise.
+       * elf32-xstormy16.c (xstormy16_elf_gc_mark_hook): Likewise.
+       * elf64-mips.c (mips_elf64_gc_mark_hook): Likewise.
+       * elf64-mmix.c (mmix_elf_gc_mark_hook): Likewise.
+       * elf64-ppc.c (ppc64_elf_gc_mark_hook): Likewise.
+       * elf64-s390.c (elf_s390_gc_mark_hook): Likewise.
+       * elf64-x86-64.c (elf64_x86_64_gc_mark_hook): Likewise.
+
+2001-12-17  Alan Modra  <amodra@bigpond.net.au>
+
+       Hash bfd sections for fast lookup and create.
+       * bfd.c (struct _bfd): Add section_htab, section_tail.
+       * libbfd-in.h (_bfd_delete_bfd): Declare.
+       (bfd_section_hash_newfunc): Declare.
+       * opncls.c (_bfd_new_bfd): Free memory on failure.  Init
+       section_htab and section_tail.
+       (_bfd_delete_bfd): New function.
+       (bfd_openr): Use it.
+       (bfd_fdopenr): Likewise.
+       (bfd_openstreamr): Likewise.
+       (bfd_openw): Likewise.
+       (bfd_close): Likewise.
+       (bfd_close_all_done): Likewise.
+       (bfd_release): Comment.
+       * section.c (struct section_hash_entry): New.
+       (bfd_section_hash_newfunc): New function.
+       (section_hash_lookup): Define.
+       (bfd_section_init): New function, split out from
+       bfd_make_section_anyway.
+       (bfd_get_section_by_name): Lookup via hash table.
+       (bfd_get_unique_section_name): Likewise.
+       (bfd_make_section_old_way): Rewrite to use hash table.
+       (bfd_make_section_anyway): Likewise.
+       (bfd_make_section): Likewise.  Return NULL for attempts to make
+       BFD_{ABS,COM,UND,IND}_SECTION_NAME.
+       (_bfd_strip_section_from_output): Adjust section_tail if needed.
+       * configure.in: Bump bfd version.
+       * configure: Regenerate.
+       * libbfd.h: Regenerate.
+       * bfd-in2.h: Regenerate.
+
+2001-12-15  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+       * elf64-mips.c (mips_elf64_link_hash_entry): New link hash.
+       (mips_elf64_high): New Function.
+       (mips_elf64_higher): Likewise.
+       (mips_elf64_highest): Likewise.
+       (mips_elf64_info_to_howto_rel): Likewise.
+       (mips_elf64_info_to_howto_rela): Likewise.
+       (mips_elf64_write_rel): Likewise.
+       (mips_elf64_write_rela): Likewise.
+       (mips_elf64_link_hash_newfunc): Likewise.
+       (mips_elf64_hi16_reloc): Likewise.
+       (mips_elf64_higher_reloc): Likewise.
+       (mips_elf64_highest_reloc): Likewise.
+       (mips_elf64_gprel16_reloc): Likewise.
+       (mips_elf64_gprel16_reloca): Likewise.
+       (mips_elf64_literal_reloc): Likewise.
+       (mips_elf64_gprel32_reloc): Likewise.
+       (mips_elf64_shift6_reloc): Likewise.
+       (mips_elf64_got16_reloc): Likewise.
+       (mips_elf64_assign_gp): Likewise.
+       (mips_elf64_final_gp): Likewise.
+       (gprel16_with_gp): Likewise.
+       (mips_elf64_additional_program_headers): Likewise.
+       (mips_elf64_link_hash_table_create): Likewise.
+       (mips_elf64_got_offset_from_index): Likewise.
+       (_mips_elf64_got_info): Likewise.
+       (mips_elf64_sign_extend): Likewise.
+       (mips_elf64_overflow_p): Likewise.
+       (mips_elf64_global_got_index): Likewise.
+       (mips_elf64_sort_hash_table_f): Likewise.
+       (mips_elf64_sort_hash_table): Likewise.
+       (mips_elf64_swap_msym_out): Likewise.
+       (mips_elf64_create_local_got_entry): Likewise.
+       (mips_elf64_local_got_index): Likewise.
+       (mips_elf64_got_page): Likewise.
+       (mips_elf64_got16_entry): Likewise.
+       (mips_elf64_local_relocation_p): Likewise.
+       (mips_elf64_next_relocation): Likewise.
+       (mips_elf64_create_dynamic_relocation): Likewise.
+       (mips_elf64_calculate_relocation): Likewise.
+       (mips_elf64_obtain_contents): Likewise.
+       (mips_elf64_perform_relocation): Likewise.
+       (mips_elf64_relocate_section): Likewise.
+       (mips_elf64_create_dynamic_sections): Likewise.
+       (mips_elf64_adjust_dynamic_symbol): Likewise.
+       (mips_elf64_always_size_sections): Likewise.
+       (mips_elf64_size_dynamic_sections): Likewise.
+       (mips_elf64_finish_dynamic_symbol): Likewise.
+       (mips_elf64_finish_dynamic_sections): Likewise.
+       (mips_elf64_gc_mark_hook): Likewise.
+       (mips_elf64_gc_sweep_hook): Likewise.
+       (mips_elf64_create_got_section): Likewise.
+       (mips_elf64_record_global_got_symbol): Likewise.
+       (mips_elf64_create_msym_section): Likewise.
+       (mips_elf64_allocate_dynamic_relocations): Likewise.
+       (mips_elf64_check_relocs): Likewise.
+       (mips_elf64_output_extsym): Likewise.
+       (mips_elf64_swap_gptab_in): Likewise.
+       (mips_elf64_swap_gptab_out): Likewise.
+       (gptab_compare): Likewise.
+       (mips_elf64_final_link): Likewise.
+       (prev_reloc_addend): Remenber addend of previous parts of a combined
+       reloc.
+       (ELF_MIPS_GP_OFFSET): New define.
+       (STUB_LW,STUB_MOVE,STUB_JALR,STUB_LI16): Likewise.
+       (MIPS_FUNCTION_STUB_SIZE): Likewise.
+       (mips_elf64_howto_rel): Fix HOWTO defines.
+       (mips_elf64_howto_rela): Likewise.
+       (mips_elf64_swap_reloca_out): Fix signedness.
+       (mips_elf64_be_swap_reloc_in): Use ELF64* instead of ELF32*.
+       (mips_elf64_be_swap_reloca_in): Likewise.
+       (mips_elf64_be_swap_reloc_out): Likewise. Preserve extended type info.
+       (mips_elf64_be_swap_reloca_out): Likewise.
+
+2001-12-15  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf-bfd.h (_bfd_elf_maybe_strip_eh_frame_hdr): New prototype.
+       * elf-eh-frame.c (struct eh_frame_hdr_info): Add strip.
+       (_bfd_elf_discard_section_eh_frame): Don't create .eh_frame_hdr
+       sec_info here.  Free ehbuf.
+       (_bfd_elf_discard_section_eh_frame_hdr): Don't size the section
+       if hdr_info->strip.
+       (_bfd_elf_maybe_strip_eh_frame_hdr): New.
+       * elflink.h (size_dynamic_sections): Call it.
+
+2001-12-14  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.h (elf_bfd_discard_info): Fix segfault when dynobj NULL.
+
+2001-12-13  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf-bfd.h (enum elf_link_info_type): New.
+       (struct bfd_elf_section_data): Remove stab_info and merge_info
+       fields, add sec_info and sec_info_type.
+       (struct elf_obj_tdata): Add eh_frame_hdr field.
+       (_bfd_elf_discard_section_eh_frame): New prototype.
+       (_bfd_elf_discard_section_eh_frame_hdr): Likewise.
+       (_bfd_elf_eh_frame_section_offset): Likewise.
+       (_bfd_elf_write_section_eh_frame): Likewise.
+       (_bfd_elf_write_section_eh_frame_hdr): Likewise.
+       * Makefile.am (BFD32_BACKENDS): Add elf-eh-frame.lo.
+       (BFD32_BACKENDS_CFILES): Add elf-eh-frame.c.
+       (elf-eh-frame.lo): New.
+       * Makefile.in: Rebuilt.
+       * configure.in (elf): Add elf-eh-frame.lo.
+       * configure: Rebuilt.
+       * elf.c (_bfd_elf_print_private_bfd_data): Support PT_GNU_EH_FRAME.
+       (map_sections_to_segments): Create PT_GNU_EH_FRAME if requested.
+       (get_program_header_size): Take into account PT_GNU_EH_FRAME
+       segment.
+       (_bfd_elf_rela_local_sym): Use sec_info_type and sec_info.
+       (_bfd_elf_rel_local_sym): Likewise.
+       (_bfd_elf_section_offset): Likewise.  Call
+       _bfd_elf_eh_frame_section_offset too.
+       * elfxx-ia64.c (elfNN_ia64_relocate_section): Use sec_info_type and
+       sec_info.
+       * elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
+       * elf-eh-frame.c: New file.
+       * elflink.h (elf_link_add_object_symbols): Don't optimize SHF_MERGE
+       .stab sections.  Set sec_info_type, use sec_info instead
+       of merge_info and stab_info.
+       (elf_link_create_dynamic_sections): Create .eh_frame_hdr section
+       if --eh-frame-hdr.
+       (elf_bfd_final_link): Write .eh_frame_hdr section.
+       (elf_link_sec_merge_syms): Use sec_info_type and sec_info.
+       (elf_link_input_bfd): Likewise.
+       Call _bfd_elf_write_section_eh_frame to write .eh_frame sections.
+       (elf_bfd_discard_info): Add output_bfd argument.
+       Call _bfd_elf_discard_section_eh_frame and
+       _bfd_elf_discard_section_eh_frame_hdr.
+       (elf_section_ignore_discarded_relocs): Use sec_info_type, not section
+       names.
+       * bfd-in.h (bfd_elf32_discard_info, bfd_elf64_discard_info): Adjust
+       prototypes.
+       * bfd-in2.h (bfd_elf32_discard_info, bfd_elf64_discard_info): Likewise.
+
+2001-12-12  Richard Henderson  <rth@redhat.com>
+
+       * syms.c (_bfd_generic_read_minisymbols): Early return for
+       no symbols.  Patch from FreeBSD folk; exact origin unknown.
+
+2001-12-11  Alan Modra  <amodra@bigpond.net.au>
+
+       * elfcode.h (elf_swap_ehdr_out): Adjust value written for e_shnum
+       and e_shstrndx if out of range.
+       (elf_object_p): Read extended values for e_shnum and e_shstrndx
+       from the first section header.  Allocate space in elf_elfsections
+       for reserved sections and set to NULLs.
+       (elf_write_shdrs_and_ehdr): Set overflow fields in first section
+       header.  Skip reserved sections in elf_elfsections.  Remove
+       duplicate size calculation.
+
+2001-12-07  Geoffrey Keating  <geoffk@redhat.com>
+           Richard Henderson  <rth@redhat.com>
+           Corinna Vinschen  <vinschen@redhat.com>
+
+       * Makefile.am: Add support for xstormy16.
+       * archures.c: Add support for xstormy16.
+       * config.bfd: Add support for xstormy16.
+       * configure.in: Add support for xstormy16.
+       * reloc.c: Add support for xstormy16.
+       * targets.c: Add support for xstormy16.
+       * cpu-xstormy16.c: New file.
+       * elf32-xstormy16.c: New file.
+       * Makefile.in: Regenerated.
+       * bfd-in2.h: Regenerated.
+       * configure: Regenerated.
+       * libbfd.h: Regenerated.
+
+2001-12-07  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * elf.c (assign_file_positions_for_segments): Combine sentance
+       fragments into a single sentance in order to permit better
+       translation into foreign languages.
+
+2001-12-07  Jim Blandy  <jimb@redhat.com>
+
+       * elf32-s390.c (elf32_s390_grok_prstatus): New function.
+       (elf_backend_grok_prstatus): Define.    
+
+2001-12-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf32-sparc.c (elf32_sparc_relocate_section): Revert
+       2001-09-14 change.
+
+2001-12-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf.c (_bfd_elf_rela_local_sym): Only call
+       _bfd_merged_section_offset if merge_info is non-NULL.
+       (_bfd_elf_rel_local_sym, _bfd_elf_section_offset): New.
+       * elf-bfd.h (_bfd_elf_rel_local_sym, _bfd_elf_section_offset): New
+       prototypes.
+       * elf32-arm.h (elf32_arm_final_link_relocate): Use
+       _bfd_elf_section_offset.
+       (elf32_arm_relocate_section): Use _bfd_elf_rel_local_sym.
+       * elf32-i386.c (elf_i386_relocate_section): Use
+       _bfd_elf_section_offset and _bfd_elf_rel_local_sym.
+       * elf32-sh.c (sh_elf_relocate_section): Likewise.
+       * elf32-sparc.c (elf32_sparc_relocate_section): Use
+       _bfd_elf_section_offset.
+       * elf32-cris.c (cris_elf_relocate_section): Likewise.
+       * elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
+       * elf32-i370.c (i370_elf_relocate_section): Likewise.
+       * elf32-m68k.c (elf_m68k_relocate_section): Likewise.
+       * elf32-mips.c (mips_elf_create_dynamic_relocation): Likewise.
+       * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+       * elf32-s390.c (elf_s390_relocate_section): Likewise.
+       * elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
+       * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
+       * elf64-s390.c (elf_s390_relocate_section): Likewise.
+       * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+       * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
+       * elfxx-ia64.c (elfNN_ia64_install_dyn_reloc): Likewise.
+
+2001-12-07  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-hppa.c (clobber_millicode_symbols): Don't do anything if
+       already forced local.
+
+2001-12-05  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * elf32-arm.h (elf32_arm_merge_private_bfd_data): Combine
+       fragmented sentence parts into a whole sentence to permit
+       better translation into foreign languages.
+
+2001-12-06  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * configure: Regenerate.
+       * Makefile.in: Regenerate.
+
+2001-12-05  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+       * Makefile.am: split up BFD_LIBS like statements in BFD32_LIBS and
+       BFD64_LIBS, make the latter depending on the availability of BFD64.
+       Add archive64.c source file.
+       * archive64.c: New file implementing bfd_elf64_archive_slurp_armap
+       and bfd_elf64_archive_write_armap, code from elf64-mips.c
+       * archive.c (bfd_slurp_armap): Add ELF64 archive support.
+       * config.bfd (mips*-*-irix6*): Allow with BFD64 only.
+       (mips64*el-*-linux*): Likewise.
+       (mips*el-*-linux*): Likewise. Reorder entries.
+       * configure.in (bfd_libs): Define in dependency of BFD64 and
+       AC_SUBST it.
+       * elf64-mips.c (mips_elf64_slurp_armap): Remove, use
+       bfd_elf64_archive_slurp_armap instead.
+       (mips_elf64_write_armap): Remove, use bfd_elf64_archive_write_armap
+       instead.
+
+2001-12-04  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+       * config.bfd: Remove trailing blanks.
+       * elf32-mips.c (gprel16_with_gp): Remove superfluous casts.
+
+2001-12-04  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf32-d10v.c (elf_d10v_howto_table): Adjust bit-size of
+       R_D10V_10_PCREL_L, R_D10V_10_PCREL_R, R_D10V_18,
+       R_D10V_18_PCREL.  Check 10_PCREL relocations as signed.
+       Disable pointless overflow checking of NONE and 32.
+
+2001-12-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * reloc.c (bfd_install_relocation): Correct reloc address test.
+       (bfd_perform_relocation): Formatting fix.
+       * bfd-in2.h: Regenerate for 2001-12-02 reloc.c change.
+
+2001-12-03  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * configure.in (LINGUAS): Add tr.
+       * configure: Regenerate.
+       * po/tr.po: Import from translation project's web site.
+
+2001-12-03  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-hppa.c (hppa_get_stub_entry): Remove debug message that
+       happens to trigger on undefined symbols.
+       (final_link_relocate): Return bfd_reloc_undefined for undefined
+       stubs.
+       (elf32_hppa_relocate_section): Don't say we can't handle a reloc
+       if we have already warned about an undefined symbol.
+
+2001-12-02  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+       * elf32-mips.c (NEWABI_P): New define.
+       (USE_REL): Remove, replaced by
+       (elf_backend_may_use_rel_p): New define.
+       (elf_backend_may_use_rela_p): Likewise.
+       (elf_backend_default_use_rela_p): Likewise.
+       (elf_mips_howto_table): Rename to elf_mips_howto_table_rel.
+       Fix some relocation definitions.
+       (elf_mips_howto_table_rela): New RELA relocation definitions for
+       NewABI support.
+       (mips32_64bit_reloc): Use the renamed elf_mips_howto_table_rel.
+       (bfd_elf32_bfd_reloc_type_lookup): Likewise.
+       (mips_rtype_to_howto): Likewise.
+       (_bfd_mips_elf_relocate_section): Likewise.
+       (_bfd_mips_elf_object_p): Typo.
+       (elf_backend_sign_extend_vma): Reordered together with many other
+       defines nearby to resemble the order of declaration in the header
+       file.
+
+2001-12-02  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+       * coff-mips.c (mips_bfd_reloc_type_lookup): Replace
+       BFD_RELOC_MIPS_GPREL by BFD_RELOC_GPREL16.
+       * pe-mips.c (mips_bfd_reloc_type_lookup): Likewise.
+       * elf32-mips.c (mips_reloc_map): Likewise. Replace
+       BFD_RELOC_MIPS_GPREL32 by BFD_RELOC_GPREL32.
+       * elf64-mips.c (mips_reloc_map): Likewise.
+       * reloc.c (BFD_RELOC_MIPS_GPREL): Remove.
+       (BFD_RELOC_MIPS_GPREL32): Remove.
+
+2001-11-30  H.J. Lu <hjl@gnu.org>
+
+       * elflink.h (elf_add_default_symbol): New.
+       (elf_link_add_object_symbols): Call elf_add_default_symbol ()
+       to create an indirect symbol from the default for the symbol
+       with the default version if needed.
+
+2001-11-29  "Peter.Schauer" <Peter.Schauer@regent.e-technik.tu-muenchen.de>
+
+       * elf.c (elfcore_grok_prstatus): Do not overwite the core signal
+       if it has already been set by another thread.
+
+2001-11-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf64-alpha.c (ALPHA_ELF_GOT_ENTRY_RELOCS_XLATED): Defined.
+       (elf64_alpha_relocate_section): Translate local_got_entries
+       for STT_SECTION symbol to SHF_MERGE section the first time
+       we see it.
+       * elfxx-ia64.c (struct elfNN_ia64_local_hash_entry): Add
+       sec_merge_done.
+       (get_local_sym_hash): New, extracted from get_dyn_sym_info.
+       (get_dyn_sym_info): Use it.
+       (elfNN_ia64_relocate_section): Translate local dyn entries
+       for STT_SECTION symbol to SHF_MERGE section the first time
+       we see it.
+
+2001-11-27  H.J. Lu <hjl@gnu.org>
+
+       * elflink.h (elf_bfd_discard_info): Skip if the input bfd isn't
+       ELF.
+
+2001-11-26  Jeffrey A Law  (law@cygnus.com)
+
+       * stabs.c (_bfd_discard_section_stabs): Use PARAMS in function
+       prototypes.
+
+2001-11-24  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-hppa.c (elf32_hppa_size_stubs): Decrease default stub
+       group sizes to accommodate c++.
+
+2001-11-23  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf32-sparc.c (elf32_sparc_relocate_section): Don't clear
+       relocations in non-alloced sections against global symbols
+       defined in shared library being built.
+       * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+
+2001-11-23  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf.c (_bfd_elf_rela_local_sym): New.
+       * elflink.h (elf_link_input_bfd): Don't consider empty
+       merged sections as removed in relocation tests.
+       * elf-bfd.h (_bfd_elf_rela_local_sym): Add prototype.
+       * elf32-i386.c (elf_i386_relocate_section): Handle relocs
+       against STT_SECTION symbol of SHF_MERGE section.
+       * elf32-arm.h (elf32_arm_relocate_section): Likewise.
+       * elf32-avr.c (elf32_avr_relocate_section): Call
+       _bfd_elf_rela_local_sym.
+       * elf32-cris.c (cris_elf_relocate_section): Likewise.
+       * elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
+       * elf32-fr30.c (fr30_final_link_relocate): Likewise.
+       * elf32-h8300.c (elf32_h8_relocate_section): Likewise.
+       * elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
+       * elf32-i370.c (i370_elf_relocate_section): Likewise.
+       * elf32-i860.c (elf32_i860_relocate_section): Likewise.
+       * elf32-m32r.c (m32r_elf_relocate_section): Likewise.
+       * elf32-m68k.c (elf_m68k_relocate_section): Likewise.
+       * elf32-mcore.c (mcore_elf_relocate_section): Likewise.
+       * elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
+       * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+       * elf32-s390.c (elf_s390_relocate_section): Likewise.
+       * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
+       * elf32-v850.c (v850_elf_relocate_section): Likewise.
+       * elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
+       * elf64-mmix.c (mmix_elf_relocate_section): Likewise.
+       * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
+       * elf64-s390.c (elf_s390_relocate_section): Likewise.
+       * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+       * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
+       * elf-hppa.h (elf_hppa_relocate_section): Likewise.
+       * elf-m10200.c (mn10200_elf_relocate_section): Likewise.
+       * elf-m10300.c (mn10300_elf_relocate_section): Likewise.
+       * elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
+       * elf32-sh.c (sh_elf_relocate_section): Likewise for
+       !partial_inplace relocs. Handle relocs against STT_SECTION
+       symbol of SHF_MERGE for partial_inplace relocs.
+
+2001-11-21  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * po/Make-in (distclean): Move SRC-POTFILES.in and
+       BLD-POTFILES.in to maintainer-clean target.
+
+2001-11-21  Alan Modra  <amodra@bigpond.net.au>
+
+       * elfxx-ia64.c (elfNN_ia64_relocate_section): Test r_symndx rather
+       than sym_sec->output_section to detect relocs against discarded
+       sections.
+
+2001-11-19  H.J. Lu  <hjl@gnu.org>
+
+       * elflink.h (elf_link_input_bfd): Assert r_symndx != 0 when
+       discarding relocations.
+
+2001-11-19  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * section.c (bfd_is_const_section): New macro.  Return true if the
+       given seciton is one of the special, constant, sections.
+       * bfd-in2.h: Regenerate.        
+       * coffgen.c (coff_count_linenumbers): Use bfd_is_const_section.
+       (coff_write_native_symbol): Use bfd_is_const_section.
+
+2001-11-19  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-hppa.c (clobber_millicode_symbols): Dec dynstr refcount.
+
+       * elf32-hppa.c (elf32_hppa_size_stubs): Don't consider undefined
+       millicode syms as candidates for import stubs.
+
+       * elf32-hppa.c (PLABEL_PLT_ENTRY_SIZE): Delete.
+       (allocate_PIC_calls): Rename to allocate_plt_static.
+       (allocate_dynrelocs): Move most of code handling .plt entries to..
+       (allocate_plt_static): ..here.  Don't drop plabel entries.
+
+2001-11-19  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * mmo.c: Adjust documentation tags to use texinfo 4 features.
+
+2001-11-16  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * section.c (bfd_is_const_section): New macro.  Return true if the
+       section pointer refers to one of the special, constant sections.
+       * bfd-in2.h: Regenerate.
+
+       * coffgen.c (coff_count_linenumbers): Only update the line number
+       count in non-special sections.
+       (coff_write_native_symbol): Only update the line number file
+       position in non-special sections.
+
+2001-11-15  Daniel Jacobowitz  <drow@mvista.com>
+
+       * elflink.h (elf_reloc_symbol_deleted_p): Catch all relocs against
+       local syms from discarded sections.  Update comment.
+
+2001-11-15  Alan Modra  <amodra@bigpond.net.au>
+
+       * po/SRC-POTFILES.in: Regenerate.
+
+       * elflink.h (elf_link_input_bfd): Complain about all relocs
+       against local syms from discarded sections.  K&R fixes.
+       (elf_reloc_symbol_deleted_p): Don't try to swap in external syms.
+       K&R fixes.
+
+2001-11-15  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf64-sparc.c (sparc64_elf_relocate_section): Disregard
+       overflows in the .stab section.
+
+2001-11-14  Daniel Jacobowitz  <drow@mvista.com>
+
+       * bfd-in.h (bfd_elf32_discard_info): Add prototype.
+       (bfd_elf64_discard_info): Likewise.
+       * bfd-in2.h: Regenerate.
+       * elf-bfd.h (struct elf_reloc_cookie): New.
+       (struct elf_backend_data): Add elf_backend_discard_info,
+       elf_backend_ignore_discarded_relocs, and elf_backend_write_section.
+       (_bfd_elf32_reloc_symbol_deleted_p): Add prototype.
+       (_bfd_elf64_reloc_symbol_deleted_p): Likewise.
+       * elf32-mips.c (_bfd_elf32_mips_discard_info): New.
+       (_bfd_elf32_mips_ignore_discarded_relocs): New.
+       (_bfd_elf32_mips_write_section): New.
+       (elf_backend_discard_info): Define.
+       (elf_backend_ignore_discarded_relocs): Define.
+       (elf_backend_write_section): Define.
+       * elfcode.h (elf_bfd_discard_info): Define.
+       (elf_reloc_symbol_deleted_p): Define.
+       * elflink.h (elf_link_input_bfd): Check
+       elf_section_ignore_discarded_relocs.  Call
+       bed->elf_backend_write_section if available.
+       (elf_reloc_symbol_deleted_p): New.
+       (elf_bfd_discard_info): New.
+       (elf_section_ignore_discarded_relocs): New.
+       * elfxx-target.h (elf_backend_discard_info): Define.
+       (elf_backend_ignore_discarded_relocs): Define.
+       (elf_backend_write_section): Define.
+       (elfNN_bed): Add elf_backend_discard_info,
+       elf_backend_ignore_discarded_relocs, and
+       elf_backend_write_section.
+       * libbfd-in.h (_bfd_discard_section_stabs): Add prototype.
+       * libbfd.h: Regenerate.
+       * stabs.c (_bfd_discard_section_stabs): New.
+
+2001-11-14  Martin Schwidefsky  <schwidefsky@de.ibm.com>
+
+       * elf32-s390.c (elf_s390_relocate_section): Use the "unresolved_reloc"
+       scheme to get rid of an ugly complicated test.
+       * elf64-s390.c (elf_s390_relocate_section): Likewise.
+
+2001-11-14  Andreas Jaeger  <aj@suse.de>
+
+       * cpu-i386.c (bfd_x86_64_arch_intel_syntax,bfd_x86_64_arch): Use
+       x86-64 for display.
+
+2001-11-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * dwarf2.c (struct line_head) [total_length]: Change type to
+       bfd_vma.
+       (struct dwarf2_debug): Add dwarf_str_buffer and dwarf_str_size.
+       (struct comp_unit): Add stash and offset_size.
+       (read_8_bytes): Return bfd_vma.
+       (read_indirect_string): New.
+       (read_attribute): Handle DW_FORM_strp.
+       (decode_line_info): Support 64-bit DWARF format.
+       (_bfd_dwarf2_find_nearest_line): Likewise.
+       (parse_comp_unit): Set offset_size and stash.
+
+2001-11-13  Keith Walker <keith.walker@arm.com>
+
+       * dwarf2.c (read_attribute_value): New function to handle
+       DW_FORM_indirect.
+       (read_attribute): Use it.
+
+2001-11-13  Geoffrey Keating  <geoffk@redhat.com>
+
+       * dwarf2.c (decode_line_info): Properly deal with unknown standard
+       opcodes.
+
+2001-11-13  John Marshall  <jmarshall@acm.org>
+           Alan Modra  <amodra@bigpond.net.au>
+
+       * section.c (bfd_make_section_anyway): Don't increment section_id
+       and the BFD's section_count if adding the section failed.
+       * vms.c (vms_new_section_hook): Adjust for bfd_make_section_anyway
+       change.
+
+2001-11-12  Orjan Friberg  <orjanf@axis.com>
+
+       * elf32-cris.c (cris_elf_grok_prstatus): Adjust values to match new
+       core dump format.
+
+2001-11-11  H.J. Lu <hjl@gnu.org>
+
+       * elf32-mips.c (_bfd_mips_elf_finish_dynamic_sections): Call
+       _bfd_elf_strtab_size instead of _bfd_stringtab_size.
+
+       * elf64-sparc.c (sparc64_elf_size_dynamic_sections): Change
+       dynstr type to `struct elf_strtab_hash *'.
+
+2001-11-11  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * elf-strtab.c (_bfd_elf_strtab_finalize): Make first variable i
+       size_t.  Rename second i to j.
+
+2001-11-10  Jeffrey A Law  (law@cygnus.com)
+
+       * binary.c: Include safe-ctype.h after bfd.h and sysdep.h.
+
+2001-11-10  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-arm.h (elf32_arm_final_link_relocate): Don't copy STN_UNDEF
+       relocs into shared libs.
+       * elf32-cris.c (cris_elf_relocate_section): Likewise.
+       * elf32-i370.c (i370_elf_relocate_section): Likewise.
+       * elf32-m68k.c (elf_m68k_relocate_section): Likewise.
+       * elf32-mips.c (mips_elf_calculate_relocation): Likewise.
+       * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+       * elf32-sh.c (sh_elf_relocate_section): Likewise.
+       * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
+       * elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
+       * elf64-s390.c (elf_s390_relocate_section): Likewise.
+       * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+       * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
+       * elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
+
+       * elf.c (bfd_section_from_r_symndx): New function.
+       * elf-bfd.h (LOCAL_SYM_CACHE_SIZE): Define.
+       (struct sym_sec_cache): New.
+       (bfd_section_from_r_symndx): Declare.
+       (struct bfd_elf_section_data): Change local_dynrel type to PTR.
+       * elflink.h (elf_link_input_bfd): Don't test for removed linkonce
+       relocs when relocatable.  Don't zero entire reloc, just zero the
+       addend and sym.
+       * elf32-hppa.c (struct elf32_hppa_link_hash_table): Add sym_sec.
+       (elf32_hppa_link_hash_table_create): Init it.
+       (elf32_hppa_check_relocs): Track dynamic relocs needed for local
+       syms on a per-section basis as we do for globals.
+       (elf32_hppa_gc_sweep_hook): Update for local_dynrel change.
+       (allocate_dynrelocs): Warning fix.
+       (elf32_hppa_size_dynamic_sections): Don't allocate relocs when
+       section has been discarded.
+       (elf32_hppa_relocate_section): Don't copy STN_UNDEF relocs
+       into shared libs.
+       * elf32-i386.c (struct elf_i386_link_hash_table): Add sym_sec.
+       (elf_i386_link_hash_table_create): Init it.
+       (elf_i386_check_relocs): Track dynamic relocs needed for local
+       syms on a per-section basis as we do for globals.
+       (elf_i386_gc_sweep_hook): Update for local_dynrel change.
+       Remove dead code.
+       (allocate_dynrelocs): Warning fix.
+       (elf_i386_size_dynamic_sections): Don't allocate relocs when
+       section has been discarded.
+       (elf_i386_relocate_section): Don't copy STN_UNDEF relocs
+       into shared libs.
+       * elf32-s390.c (struct elf_s390_link_hash_table): Add sym_sec.
+       (elf_s390_link_hash_table_create): Init it.
+       (elf_s390_check_relocs): Track dynamic relocs needed for local
+       syms on a per-section basis as we do for globals.
+       (elf_s390_gc_sweep_hook): Update for local_dynrel change.
+       Remove dead code.
+       (allocate_dynrelocs): Warning fix.
+       (elf_s390_size_dynamic_sections): Don't allocate relocs when
+       section has been discarded.
+       (elf_s390_relocate_section): Don't copy STN_UNDEF relocs
+       into shared libs.
+       * elf64-ppc.c (struct ppc_link_hash_table): Add sym_sec.
+       (ppc64_link_hash_table_create): Init it.
+       (ppc64_elf_check_relocs): Track dynamic relocs needed for local
+       syms on a per-section basis as we do for globals.
+       (ppc64_elf_gc_sweep_hook): Update for local_dynrel change.
+       (allocate_dynrelocs): Call the correct record_dynamic_dymbol
+       function.  Warning fix.
+       (ppc64_elf_size_dynamic_sections): Don't allocate relocs when
+       section has been discarded.
+       (ppc64_elf_relocate_section): Don't copy STN_UNDEF relocs
+       into shared libs.
+       * elf64-s390.c (struct elf_s390_link_hash_table): Add sym_sec.
+       (elf_s390_link_hash_table_create): Init it.
+       (elf_s390_check_relocs): Track dynamic relocs needed for local
+       syms on a per-section basis as we do for globals.
+       (elf_s390_gc_sweep_hook): Update for local_dynrel change.
+       Remove dead code.
+       (allocate_dynrelocs): Warning fix.
+       (elf_s390_size_dynamic_sections): Don't allocate relocs when
+       section has been discarded.
+       (elf_s390_relocate_section): Don't copy STN_UNDEF relocs
+       into shared libs.
+
+2001-11-08  Martin Schwidefsky  <schwidefsky@de.ibm.com>
+
+       * elf32-s390: Major rework that introduces all recent changes to
+       the s390 backends.  Get a closer match to elf32-i386.
+       (elf_s390_relocate_section): Make use of dynamic section short-cuts.
+       Localise vars, and delay setting.  Better error reporting, replace
+       BFD_ASSERT with abort.  Check ELF_LINK_HASH_DEF_DYNAMIC to see if a
+       symbol is not defined in the regular object file and tread the weak
+       definition as the normal one.  Don't discard relocs for undefweak or
+       undefined symbols and check !DEF_REGULAR as well as DEF_DYNAMIC in
+       test for avoided copy relocs.  Reinstate fudge for unresolved relocs
+       in debugging sections.
+       (elf32_s390_adjust_dynamic_symbol): Handle nocopyreloc.  Don't do copy
+       reloc processing for weakdefs.  Remove redundant casts and aborts.
+       Delay setting of vars until needed.  Move creation of dynamic symbols
+       and allocation of .plt and .rela.plt to allocate_dynrelocs.  Replace
+       BFD_ASSERT with abort.  Discard .plt entries for everything with
+       plt.refcount <= 0.
+       (elf_s390_check_relocs):  Don't allocate space for dynamic relocs,
+       .got or .relgot here but do it in allocate_dynrelocs.  Reference count
+       possible .plt and .got entries.  Don't test input section SEC_READONLY
+       here to try to avoid copy relocs, and keep dyn_relocs regardless of
+       ELF_LINK_NON_GOT_REF.  Don't set DF_TEXTREL here.  Delay setting of
+       variables until needed.  Remove separate switch stmt for creating .got
+       section.  Initialise local_got_refcounts to 0.  Cache pointer to
+       "sreloc" section in elf_section_data. Tweak condition under which .got
+       created.  Report files with bad relocation section names.
+       (elf_s390_finish_dynamic_symbol): Don't copy relocs for symbols that
+       have been forced local.  Use same test to decide if we can use a
+       relative reloc for got as elf_s390_relocate_section.  Expand SHN_UNDEF
+       comment.  Move expressions out of function calls.  Replace BFD_ASSERT
+       with abort.
+       (elf_s390_finish_dynamic_sections): Migrate common code out of switch
+       statement.  Replace BFD_ASSERT with abort.
+       (elf_s390_size_dynamic_sections): Call readonly_dynrelocs. Rename "i"
+       to "ibfd".  Allocate space for local dyn relocs.  Use DF_TEXTREL flag
+       instead of looking up section names for DT_TEXTREL.  Replace
+       BFD_ASSERT with abort.  Zero out the dynamic allocated content space.
+       Add a comment to remind us that one day this ought to be fixed.
+       (struct elf_s390_link_hash_entry): Rename "root" to "elf".
+       (struct elf_s390_link_hash_table): Likewise.
+       (elf_s390_link_hash_newfunc): Rename to link_hash_newfunc and get
+       rid of unnecessary casts.
+       (struct elf_s390_dyn_relocs): Add "sec", and "pc_count" fields.
+       Remove "section" field.
+       (elf_s390_gc_sweep_hook): Sweep dyn_relocs and local_dynrel.
+       Reference count possible .plt entries.  Don't deallocate .got and
+       .relgot space here.
+       (struct elf_s390_pcrel_relocs_copied): Rename to elf_s390_dyn_relocs.
+       Update comment.
+       (struct elf_s390_link_hash_entry): Rename pcrel_relocs_copied to
+       dyn_relocs.
+       (elf_s390_discard_copies):  Delete.
+       (elf_s390_link_hash_traverse): Delete.
+       (bfd_elf32_bfd_final_link): Delete.  (ie. use regular final link
+       rather than gc variety).
+       (struct elf_s390_link_hash_table): Add sgot, sgotplt, srelgot, splt,
+       srelplt, sdynbss, srelbss fields.
+       (elf_s390_link_hash_table_create): Init them.
+       (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
+       (allocate_dynrelocs): New function.
+       (create_got_section): New function.
+       (elf_backend_can_refcount): Define.
+       (elf_backend_copy_indirect_symbol): Define.
+       (elf_s390_copy_indirect_symbol): New function.
+       (elf_s390_create_dynamic_sections): New function.
+       (readonly_dynrelocs): New function.
+       * elf64-s390.c: Likewise.
+
+2001-11-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * Makefile.am (BFD32_BACKENDS): Add elf-strtab.lo.
+       (BFD32_BACKENDS_CFILES): Add elf-strtab.c.
+       (elf-strtab.lo): Add rule.
+       * Makefile.in: Rebuilt.
+       * configure.in (elf): Add elf-strtab.lo.
+       * configure: Rebuilt.
+       * elf-bfd.h (elf_strtab_hash): Forward declare.
+       (struct elf_link_hash_table): Change dynstr type to
+       struct elf_strtab_hash *.
+       (struct elf_obj_tdata): Change strtab_ptr type to
+       struct elf_strtab_hash *.
+       (_bfd_elf_strtab_init, _bfd_elf_strtab_free, _bfd_elf_strtab_add,
+       _bfd_elf_strtab_addref, _bfd_elf_strtab_delref,
+       _bfd_elf_strtab_clear_all_refs, _bfd_elf_strtab_size,
+       _bfd_elf_strtab_offset, _bfd_elf_strtab_emit,
+       _bfd_elf_strtab_finalize): New prototypes.
+       * elf-strtab.c: New file.
+       * elflink.h (elf_link_add_object_symbols): Use _bfd_elf_strtab_add
+       and _bfd_elf_strtab_size instead of _bfd_stringtab calls.
+       Call _bfd_elf_strtab_delref if DT_NEEDED entry is not needed or
+       when forcing dynamic symbol to local.
+       (elf_link_create_dynamic_sections): Call
+       _bfd_elf_strtab_init instead of elf_stringtab_init.
+       (elf_link_record_local_dynamic_symbol): Likewise, change
+       dynstr type.  Use _bfd_elf_strtab functions instead of
+       _bfd_stringtab calls.
+       (size_dynamic_sections): Use _bfd_elf_strtab functions instead of
+       _bfd_stringtab calls.  For DT_RUNPATH and Verdaux vda_name fields,
+       call _bfd_elf_strtab_addref.  Call elf_finalize_dynstr.
+       (elf_adjust_dynstr_offsets, elf_finalize_dynstr): New functions.
+       (elf_fix_symbol_flags): Call _bfd_elf_strtab_delref when forcing
+       dynamic symbol to local.
+       (elf_link_assign_sym_version): Likewise.
+       (elf_bfd_final_link): Call _bfd_elf_strtab_emit instead of
+       _bfd_stringtab_emit.
+       * elflink.c (_bfd_elf_link_record_dynamic_symbol): Change dynstr
+       type.  Call _bfd_elf_strtab functions instead of
+       _bfd_stringtab functions.
+       * elf64-sparc.c (sparc64_elf_size_dynamic_sections): Likewise.
+       * elf.c (_bfd_elf_init_reloc_shdr): Likewise.
+       (elf_fake_sections): Likewise.
+       (assign_section_numbers): Call _bfd_elf_strtab_clear_all_refs
+       on shstrtab hash table, call _bfd_elf_strtab_addref on each section
+       name in the output.  Call _bfd_elf_strtab_finalize and
+       use _bfd_elf_strtab_offset to finalize sh_name section header fields.
+       (_bfd_elf_compute_section_file_positions): Use _bfd_elf_strtab_size
+       instead of _bfd_stringtab_size.
+       (prep_headers): Change shstrtab type.
+       Use _bfd_elf_strtab calls instead of _bfd_stringtab calls.
+
+2001-11-07  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.h (elf_link_input_bfd <removed linkonce relocs>): Fix
+       bad symtab segfault.  Formatting and warning fixes.  Improve
+       error message for internationalisation.
+
+2001-11-06  H.J. Lu  (hjl@gnu.org)
+
+       * elflink.h (elf_link_input_bfd): Complain about relocs against
+       discarded sections.
+
+2001-11-03  Alan Modra  <amodra@bigpond.net.au>
+
+       * elfxx-target.h (elfNN_bed): Correct want_got_sym, want_dynbss order.
+
 2001-11-02  H.J. Lu  <hjl@gnu.org>
 
        * elf32-mips.c (mips_elf_calculate_relocation): Don't create
        * config.bfd <powerpc-*-aix* entry>: Select 64 bit xcoff for
        aix4.3 and above.
 
-Wed Aug 29 02:27:36 2001  J"orn Rennecke <amylaar@redhat.com>
+2001-08-29  J"orn Rennecke <amylaar@redhat.com>
 
        * Makefile.am (elf32-h8300.lo): New target.
        * config.bfd (h8300*-*-elf): New case.
@@ -3100,7 +4181,7 @@ Wed Aug 29 02:27:36 2001  J"orn Rennecke <amylaar@redhat.com>
 
        * xcofflink.c : Many changes for xcoff64 support.  Move common
        structures to include/coff/xcoff.h.  Move specific structure to
-       backends coff-rs6000.c and coff64-rs6000.c.   Use new backend
+       backends coff-rs6000.c and coff64-rs6000.c.  Use new backend
        functions, defined in libxcoff.h, to isolate 32/64 dependencies.
 
        (bfd_xcoff_size_dynamic_sections) : special __rtinit symbol for
@@ -7398,10 +8479,10 @@ Wed Aug 29 02:27:36 2001  J"orn Rennecke <amylaar@redhat.com>
 
        * config.bfd: Add NetBSD/sparc64 support.
 
-Fri Apr 21 13:20:53 2000  Richard Henderson  <rth@cygnus.com>
-                         David Mosberger  <davidm@hpl.hp.com>
-                         Timothy Wall <twall@cygnus.com>
-                         Jim Wilson  <wilson@cygnus.com>
+2000-04-21  Richard Henderson  <rth@cygnus.com>
+           David Mosberger  <davidm@hpl.hp.com>
+           Timothy Wall <twall@cygnus.com>
+           Jim Wilson  <wilson@cygnus.com>
 
        * Makefile.am (ALL_MACHINES): Add cpu-ia64.lo.
        (ALL_MACHINES_CFILES): Add cpu-ia64.c.
@@ -7444,7 +8525,7 @@ Fri Apr 21 13:20:53 2000  Richard Henderson  <rth@cygnus.com>
        * dwarf2.c (concat_filename): Avoid string literal concatenation.
        * ieee.c (ieee_get_symtab): Don't initialise union in struct.
 
-Mon Apr 17 19:14:36 2000  David Mosberger  <davidm@hpl.hp.com>
+2000-04-11  David Mosberger  <davidm@hpl.hp.com>
 
        * Makefile.am (BFD64_BACKENDS): Mention coff-ia64.lo.
        (BFD64_BACKENDS_CFILES): Mention coff-ia64.c
@@ -7549,7 +8630,7 @@ Mon Apr 17 19:14:36 2000  David Mosberger  <davidm@hpl.hp.com>
        * coffcode.h (coff_set_arch_mach_hook): Eliminate warning on
        unitialized variable.
 
-Fri Apr  7 15:56:57 2000  Andrew Cagney  <cagney@b1.cygnus.com>
+2000-04-07  Andrew Cagney  <cagney@b1.cygnus.com>
 
        * configure.in (WARN_CFLAGS): Set to -W -Wall by default.  Add
        --enable-build-warnings option.
@@ -7584,7 +8665,7 @@ Fri Apr  7 15:56:57 2000  Andrew Cagney  <cagney@b1.cygnus.com>
        and restore it on failure.  Release newly allocated tdata on
        failure.
 
-Fri Apr  7 11:33:47 2000  Jim Wilson  <wilson@cygnus.com>
+2000-04-07  Jim Wilson  <wilson@cygnus.com>
 
        * dwarf2.c (struct dwarf2_debug): New field dwarf_line_size.
        (decode_line_info): Set it.  Report error if unit->line_offset is
@@ -7629,7 +8710,7 @@ Fri Apr  7 11:33:47 2000  Jim Wilson  <wilson@cygnus.com>
        (elf32_arm_print_private_bfd_data): Only decode EF_xxx flags
        if the EABI version number is unknown.
 
-Wed Apr  5 22:04:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+2000-04-05  J"orn Rennecke <amylaar@cygnus.co.uk>
 
        * reloc.c (_bfd_relocate_contents): Add BFD_RELOC_SH_LOOP_START and
        BFD_RELOC_SH_LOOP_END.
@@ -7674,7 +8755,7 @@ Wed Apr  5 22:04:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
        relative relocations for non-loaded sections in shared objects.
        (elf64_alpha_check_relocs): Similarly.
 
-Mon Apr  3 13:37:15 2000  Hans-Peter Nilsson  <hp@axis.com>
+2000-04-03  Hans-Peter Nilsson  <hp@axis.com>
 
        * aoutx.h (NAME(aout,reloc_type_lookup)): Add BFD_RELOC_8 and
        BFD_RELOC_16 to switch for extended relocs.
@@ -7697,7 +8778,7 @@ Mon Apr  3 13:37:15 2000  Hans-Peter Nilsson  <hp@axis.com>
        on some targets.
        * ihex.c : Ditto.
 
-Wed Mar 30 15:28:00 2000  Donald Lindsay  <dlindsay@cygnus.com>
+2000-03-30  Donald Lindsay  <dlindsay@cygnus.com>
 
        * elf32-m32r.c (m32r_elf_generic_reloc): new function.  All
        HOWTO references to bfd_elf_generic_reloc, that have
@@ -8009,7 +9090,7 @@ Wed Mar 30 15:28:00 2000  Donald Lindsay  <dlindsay@cygnus.com>
        name of the libtool directory.
        * Makefile.in: Rebuild.
 
-Fri Feb 25 18:39:26 2000  Rodney Brown (RodneyBrown@pmsc.com)
+2000-02-25  Rodney Brown (RodneyBrown@pmsc.com)
 
        * som.c (SOM_HOWTO): Define.
        (som_hppa_howto_table): Use it.
@@ -8177,7 +9258,7 @@ Fri Feb 25 18:39:26 2000  Rodney Brown (RodneyBrown@pmsc.com)
        Rs6kCorData): Use above defines to adapt code to use AIX 4.3's
        core_dumpx structure.
 
-Thu Feb 17 00:04:48 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
+2000-02-17  J"orn Rennecke <amylaar@cygnus.co.uk>
 
        * archures.c (bfd_mach_sh2, bfd_mach_sh_dsp): New macros.
        (bfd_mach_sh3_dsp): Likewise.
@@ -8248,7 +9329,7 @@ Thu Feb 17 00:04:48 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
        SECTION_RELATIVE_ABSOLUTE_SYMBOL_P if defined to determine whether
        symbol index should be set to -1.
 
-Thu Feb 10 20:07:50 GMT 2000  Toshiyasu Morita (toshi.morita@sega.com)
+2000-02-10  Toshiyasu Morita (toshi.morita@sega.com)
 
        * coff-sh.c (USES1_REG, USES2_REG, SETS1_REG, SETS2_REG,
        USESF1_REG, USESF2_REG, SETSF1_REG, SETSF2_REG): New macros.
This page took 0.041569 seconds and 4 git commands to generate.