* syms.c (_bfd_generic_read_minisymbols): Early return for
[binutils-gdb.git] / bfd / ChangeLog
index b5009f9c304be95cb3103b325b7e4c71626b537f..46dd9b76cbb436582e285dabca5ddfebc9f0a434 100644 (file)
@@ -1,3 +1,637 @@
+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
        * 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.
@@ -3115,7 +3749,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
@@ -7413,10 +8047,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.
@@ -7459,7 +8093,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
@@ -7564,7 +8198,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.
@@ -7599,7 +8233,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
@@ -7644,7 +8278,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.
@@ -7689,7 +8323,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.
@@ -7712,7 +8346,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
@@ -8024,7 +8658,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.
@@ -8192,7 +8826,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.
@@ -8263,7 +8897,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.