* elf64-alpha.c (alpha_elf_dynamic_symbol_p): Return false for an
[binutils-gdb.git] / bfd / ChangeLog
index d4b1167370b869eff8da33b48f618782d6b39cd4..1deded90651ac9eb768356d270e414fd9e4f0f2a 100644 (file)
+2003-04-21  Richard Henderson  <rth@redhat.com>
+
+       * elf64-alpha.c (alpha_elf_dynamic_symbol_p): Return false for an
+       executable when a symbol is defined both regular and dynamic.
+
+2003-04-21  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * Makefile.am (BFD32_BACKENDS): Add elf32-m68hc1x.lo.
+       (elf32-m68hc1x.lo): Update dependencies
+       * configure.in: Add elf32-m68hc1x.lo.
+       * configure: Rebuild.
+       * Makefile.in: Rebuild.
+
+2003-04-21  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * elf32-m68hc1x.c: New file (from elf32-m68hc11.c and elf32-m68hc12.c)
+       (m68hc11_elf_hash_table_create): New function.
+       (elf32_m68hc11_link_hash_table_free): New function.
+       (stub_hash_newfunc): New function.
+       (m68hc11_add_stub): New function.
+       (elf32_m68hc11_add_symbol_hook): New function.
+       (elf32_m68hc11_setup_section_lists): New function.
+       (elf32_m68hc11_next_input_section): New function.
+       (elf32_m68hc11_size_stubs): New function.
+       (elf32_m68hc11_build_stubs): New function.
+       (m68hc11_get_relocation_value): New function.
+       (elf32_m68hc11_relocate_section): Call the above to redirect
+       some relocations to the trampoline code.
+       (m68hc11_elf_export_one_stub): New function.
+       (m68hc11_elf_set_symbol): New function.
+       (elf32_m68hc11_build_stubs): Call it via bfd_hash_traverse.
+       (m68hc11_elf_get_bank_parameters): Get parameters only when the info
+       is not yet initialized.
+
+       * elf32-m68hc1x.h: New file (from elf32-m68hc11.c and elf32-m68hc12.c)
+       (elf32_m68hc11_stub_hash_entry): New struct.
+       (m68hc11_page_info): Add trampoline handler address.
+       (m68hc11_elf_link_hash_table): Add stubs generation members.
+       (elf32_m68hc11_add_symbol_hook): Declare.
+       (elf32_m68hc11_setup_section_lists): Declare.
+       (elf32_m68hc11_size_stubs): Declare.
+       (elf32_m68hc11_build_stubs): Declare.
+       
+       * elf32-m68hc11.c (m68hc11_elf_ignore_reloc): Move to elf32-m68hc1x.c.
+       (elf32_m68hc11_gc_mark_hook, elf32_m68hc11_gc_sweep_hook): Likewise.
+       (elf32_m68hc11_check_relocs, elf32_m68hc11_relocate_section): Ditto.
+       (_bfd_m68hc11_elf_set_private_flags): Ditto.
+       (_bfd_m68hc11_elf_merge_private_bfd_data): Ditto.
+       (_bfd_m68hc11_elf_print_private_bfd_data): Ditto.
+       (bfd_elf32_bfd_link_hash_table_create): Define.
+       (elf_backend_add_symbol_hook): Define.
+       (m68hc11_elf_bfd_link_hash_table_create): New function.
+       (m68hc11_elf_build_one_stub): New function.
+       (m68hc11_elf_size_one_stub): New function.
+       (m68hc11_elf_bfd_link_hash_table_create): Install the above.
+       (bfd_elf32_bfd_link_hash_table_create): Define.
+
+       * elf32-m68hc12.c (m68hc11_elf_ignore_reloc): Remove.
+       (m68hc12_addr_is_banked): Remove, use m68hc11_addr_is_banked.
+       (m68hc12_phys_addr): Ditto.
+       (m68hc12_phys_page): Ditto.
+       (m68hc12_elf_special_reloc): Move to elf32-m68hc1x.c.
+       (elf32_m68hc11_gc_mark_hook): Likewise.
+       (elf32_m68hc11_gc_sweep_hook): Likewise.
+       (elf32_m68hc11_check_relocs): Likewise.
+       (elf32_m68hc11_relocate_section): Likewise.
+       (_bfd_m68hc12_elf_set_private_flags): Likewise.
+       (_bfd_m68hc12_elf_merge_private_bfd_data): Likewise.
+       (_bfd_m68hc12_elf_print_private_bfd_data): Likewise.
+       (m68hc12_elf_build_one_stub): New function.
+       (m68hc12_elf_size_one_stub): New function.
+       (m68hc12_elf_bfd_link_hash_table_create): New function, use the above.
+       (elf_backend_add_symbol_hook): Define.
+       (elf_m68hc11_howto_table): Use TRUE for pcrel relocs; fix masks.
+
+2003-04-18  Nick Clifton  <nickc@redhat.com>
+
+       * format.c (bfd_check_format_matches): Only check associated
+       vector if the matching_vector has been created.
+
+2003-04-15  Alexandre Oliva  <aoliva@redhat.com>
+
+       * dwarf2.c (_bfd_dwarf2_find_nearest_line): Fix typo in
+       2003-04-09's change.
+
+2003-04-15  Brian Ford  <ford@vss.fsi.com>
+
+       * peicode.h (coff_swap_scnhdr_in): If a section holds
+       uninitialized data and is from an object file or from an
+       executable image that has not initialized the s_size field, or if
+       the physical size is padded, use the virtual size (stored in
+       s_paddr) instead.
+
+2003-04-15  H.J. Lu <hjl@gnu.org>
+
+       * elflink.h (elf_link_add_object_symbols): Properly report
+       filename for alignment reduction.
+
+2003-04-15  Rohit Kumar Srivastava <rohits@kpitcummins.com>
+
+       * archures.c: Replace occurrances of 'Hitachi' with 'Renesas'.
+       * reloc.c: Likewise.
+       * coff-h8300.c: Likewise.
+       * coff-h8500.c: Likewise.
+       * coff-sh.c: Likewise.
+       * cpu-h8300.c: Likewise.
+       * cpu-sh.c: Likewise.
+       * elf32-h8300.c: Likewise.
+       * elf32-sh.c: Likewise.
+       * elf32-sh64-com.c: Likewise.
+       * elf32-sh64.c: Likewise.
+       * elf64-sh64.c: Likewise.
+       * bfd-in2.h: Regenerate.
+
+2003-04-14  H.J. Lu <hjl@gnu.org>
+
+       * elflink.h (elf_link_add_object_symbols): Maintain maximum
+       alignment for common symbols. Warn reducing alignment for
+       common symbols. Report old filename when symbol size changes.
+
+2003-04-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elfxx-mips.c (mips_elf_calculate_relocation): Adjust two other
+       occurrences of the same test changed in the previous patch.
+       Optimize.
+
+2003-04-11  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elfxx-mips.c (mips_elf_get_global_gotsym_index): New.
+       (mips_elf_calculate_relocation): Decay GOT_PAGE/GOT_OFST to
+       GOT_DISP/addend only if the symbol got a global GOT entry.
+
+2003-04-10  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elfxx-mips.c (mips_elf_calculate_relocation): Decay
+       GOT_PAGE/GOT_OFST referencing overridable symbol to
+       GOT_DISP/addend.
+       (_bfd_mips_elf_check_relocs): Handle GOT_PAGE referencing
+       global symbol as GOT_DISP.
+
+2003-04-10  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (elf_xtensa_relocate_section): Don't continue to the
+       next relocation on an undefined symbol.
+
+2003-04-09  Richard Henderson  <rth@redhat.com>
+
+       * elf64-alpha.c (elf64_alpha_relocate_section) <R_ALPHA_GPREL32>:
+       Ignore relocations against r_symndx == 0.
+
+2003-04-09  H.J. Lu <hjl@gnu.org>
+
+       * elf64-alpha.c (elf64_alpha_relocate_section): Don't return
+       FALSE for undefined symbols.
+       * elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
+
+2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
+
+       * dwarf2.c (_bfd_dwarf2_find_nearest_line): Try DWARF3-standard
+       and IRIX-specific shift-to-64-bit 4-byte lengths before following
+       addr_size.
+
+2003-04-08  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf32-mips.c (bfd_elf32_bfd_reloc_type_lookup): Detect (ctor)
+       pointer size from ABI, not arch_bits_per_address.
+
+2003-04-07  Kevin Buettner  <kevinb@redhat.com>
+
+       * elfn32-mips.c (elf32_mips_grok_prstatus): Adjust core file related
+       constants for n32 ABI.
+
+2003-04-06  Andrew Cagney  <cagney@redhat.com>
+
+       * simple.c (bfd_simple_get_relocated_section_contents): Disable
+       free that leads to GDB vs BFD memory corruption.
+
+2003-04-04  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * elf32-m68hc11.c (m68hc11_elf_relax_delete_bytes): Also adjust
+       symbols that mark the end of the section.
+       (m68hc11_elf_relax_section): Use R_M68HC11_PCREL_8 relocs when
+       converting to a relative branch so that the offset is computed after
+       the relaxation; also relocate a jsr into a bsr if possible but don't
+       relax them if they are to a far symbol as we need to call the
+       trampoline code.
+       (elf_m68hc11_howto_table): Set pcrel_offset to true.
+
+2003-04-04  Svein E. Seldal  <Svein.Seldal@solidas.com>
+
+       * archures.c: Namespace cleanup. Rename bfd_mach_c3x to
+       bfd_mach_tic3x and bfd_mach_c4x to bfd_mach_tic4x
+       * bfd-in2.h: Regenerate
+       * coff-tic4x.c: Namespace cleanup. Replace s/c4x/tic4x/
+       * cpu-tic4x.c: Ditto
+
+2003-04-03  Nick Clifton  <nickc@redhat.com>
+
+       * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Compute ps and ss
+       differently for object files and executables.
+       * peicode.h (coff_swap_scnhdr_in): Only set the s_size field
+       for object files or for executables who have not already
+       initialised the field.
+       * libpei.h (bfd_pe_executable_p): New macro.  Return true if
+       the PE format bfd is an executable.
+
+2003-04-03  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (ppc_elf_check_relocs): Don't use SYMBOL_REFERENCES_LOCAL
+       here as it's too early to reliably determine locality.
+       (ppc_elf_gc_sweep_hook): Likewise.
+       (SYMBOL_REFERENCES_LOCAL): Expand comment.
+
+2003-04-02  Bob Wilson  <bob.wilson@acm.org>
+
+       * xtensa-modules.c: Remove comment indicating that this is a
+       generated file.
+
+2003-04-02  Alan Modra  <amodra@bigpond.net.au>
+
+       * elfxx-mips.c (_bfd_mips_elf_hide_symbol): Test for NULL dynobj.
+
+2003-04-01  Bob Wilson  <bob.wilson@acm.org>
+
+        * Makefile.am (ALL_MACHINES): Add cpu-xtensa.lo.
+        (ALL_MACHINES_CFILES): Add cpu-xtensa.c.
+        (BFD32_BACKENDS): Add elf32-xtensa.lo, xtensa-isa.lo, and
+        xtensa-modules.lo.
+        (BFD32_BACKENDS_CFILES): Add elf32-xtensa.c, xtensa-isa.c, and
+        xtensa-modules.c.
+        (cpu-xtensa.lo): New target.
+        (elf32-xtensa.lo): Likewise.
+        (xtensa-isa.lo): Likewise.
+        (xtensa-modules.lo): Likewise.
+        * Makefile.in: Regenerate.
+        * archures.c (bfd_architecture): Add bfd_{arch,mach}_xtensa.
+        (bfd_archures_list): Add bfd_xtensa_arch.
+        * config.bfd: Handle xtensa-*-*.
+        * configure.in: Handle bfd_elf32_xtensa_{le,be}_vec.
+        * configure: Regenerate.
+        * reloc.c: Add BFD_RELOC_XTENSA_{RTLD,GLOB_DAT,JMP_SLOT,RELATIVE,
+        PLT,OP0,OP1,OP2,ASM_EXPAND,ASM_SIMPLIFY}.
+        * targets.c (bfd_elf32_xtensa_be_vec): Declare.
+        (bfd_elf32_xtensa_le_vec): Likewise.
+        (bfd_target_vector): Add bfd_elf32_xtensa_{be,le}_vec.
+        * cpu-xtensa.c: New file.
+        * elf32-xtensa.c: Likewise.
+        * xtensa-isa.c: Likewise.
+        * xtensa-modules.c: Likewise.
+        * libbfd.h: Regenerate.
+        * bfd-in2.h: Likewise.
+
+2003-04-01  Nick Clifton  <nickc@redhat.com>
+
+       * archures.c (bfd_mach_arm_unknown): Define.
+       * bfd-in.h (bfd_arm_merge_machines, bfd_arm+update_notes,
+       bfd_arm_get_mach_from_notes): Prototype.
+       * bfd-in2.h: Regenerate.
+       * coff-arm.c (coff_arm_merge_private_bfd_data): Call
+       bfd_arm_merge_machines.
+       (coff_arm_final_link_postscript): Call bfd_arm_update_notes.
+       * coffcode.h (coff_set_arch_mach_hook): Call
+       bfd_arm_get_mach_from_notes.
+       * coffgen.c (coff_real_object_p): Revert previous delta.
+       * cpu_arm.c (arm_check_note): New function.  Examine a note in a
+       .note section.
+       (bfd_arm_merge_machines): New function: Handle the merging of ARM
+       binaries compiled for different architectures..
+       (bfd_arm_update_notes): New function: Update an ARM note section.
+       (bfd_arm_get_mach_from_notes): New function: Extract a bfd machine
+       number from an ARM note section.
+       * elf32-arm.h (elf32_arm_object_p): Use
+       bfd_arm_get_mach_from_notes.
+       (elf32_arm_merge_private_bfd_data): Use bfd_arm_merge_machines.
+       (elf32_arm_final_write_processing): Use bfd_arm_update_notes.
+       
+2003-04-01  Ben Elliston  <bje@wasabisystems.com>
+
+       * dwarf2.c (read_attribute_value): Correct typo in comment.
+
+2003-04-01  Nick Clifton  <nickc@redhat.com>
+
+       * dwarf2.c (concat_filename): Use bfd_malloc() and strdup()
+       instead of concat().
+       (decode_line_info): Only free filename if it is not NULL.
+       (add_line_info): Make a copy of the filename when storing it into
+       the info structure.
+
+2003-03-31  Andreas Schwab  <schwab@suse.de>
+           Daniel Jacobowitz  <drow@mvista.com>
+
+       * simple.c (bfd_simple_get_relocated_section_contents): Add
+       parameter symbol_table.  Optionally use it instead of the symbol
+       table from the bfd.  Save and restore output offsets and output
+       sections  around bfd_get_relocated_section_contents.  Fix a memory
+       leak.
+       (simple_save_output_info, simple_restore_output_info): New
+       functions.
+       * bfd-in2.h: Regenerate.
+       * dwarf2.c (read_abbrevs): Use
+       bfd_simple_get_relocated_section_contents instead of
+       bfd_get_section_contents.
+       (decode_line_info): Likewise.
+       (_bfd_dwarf2_find_nearest_line): Likewise.  Don't call
+       find_rela_addend.
+       (find_rela_addend): Remove.
+       * elfxx-ia64.c (elfNN_ia64_reloc): Weaken sanity check for
+       debugging sections.
+       (elfNN_ia64_hash_table_create): Create the hash table with malloc,
+       not bfd_zalloc.
+
+2003-03-31  David Heine  <dlheine@suif.stanford.edu>
+
+       * aoutx.h (aout_link_hash_table_create): Use bfd_malloc instead of
+       bfd_alloc.
+       * dwarf2.c (concat_filename): Always allocate space for the
+       returned filename.
+       (decode_line_info): Free the allocated filename returned by
+       concat_filename.
+       * elf-eh-frame.c (bfd_elf_write_section_eh_frame): Fix memory leaks.
+       * elf.c (copy_private_bfd_data): Likewise.
+       (_bfd_elf_slurp_version_tables): Fix bug freeing contents pointer.
+       * elflink.h (elf_link_sort_relocs): Fix memory leak.
+       * format.c (bfd_check_format_matches): Likewise.
+       * linker.c (bfd_generic_final_link): Likewise.
+       * opncls.c (find_separate_debug_info): Likewise.
+       * simple.c (bfd_simple_get_relocated_section_contents): Likewise.
+       
+2003-03-28  H.J. Lu <hjl@gnu.org>
+
+       * elflink.h (elf_link_add_object_symbols): Correctly combine
+       visibilities.
+
+2003-03-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Reset self_dtpmod_offset
+       to -1 before recomputing got offsets.
+
+2003-03-26  Andreas Schwab  <schwab@suse.de>
+
+       * elf32-m68k.c (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
+       (elf_m68k_relocate_section): Use it to correctly handle symbols
+       forced to be local.
+       (elf_m68k_finish_dynamic_symbol): Emit RELATIVE reloc for got
+       entries for symbols that are forced to be local.
+
+2003-03-25  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elfxx-mips.c (_bfd_mips_relax_section): New function.
+       * elfxx-mips.h (_bfd_mips_relax_section): Declare.
+       * elfn32-mips.c, elf64-mips.c: Use it.
+
+2003-03-25  Stan Cox   <scox@redhat.com>
+           Nick Clifton  <nickc@redhat.com>
+           
+       Contribute support for Intel's iWMMXt chip - an ARM variant:
+
+       * archures.c: Add bfd_mach_arm_iWMMXt.
+       * reloc.c: Add BFD_RELOC_ARM_CP_OFF_IMM_S2.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+       * coff-arm.c (coff_arm_merge_private_bfd_data): Allow iWMMXt
+       object files to be linked with XScale ones.
+       (coff_arm_final_link_postscript): Update note section.
+       * coffcode.h (coff_set_arch_mach_hook): Handle note section.
+       * coffgen.c (coff_real_object_p): Call bfd_coff_set_arch_mach_hook
+       after identifying a coff binary.
+       * cpu-arm.c (processors): Add iWMMXt.
+       (arch_inf): Likewise.
+       * elf32-arm.h (arm_object_p): Handle note section.
+       (elf32_arm_merge_private_bfd_data):  Allow iWMMXt object files to
+       be linked with XScale ones.
+       (elf32_arm_section_flags): New function: Set flags on note section.
+       (elf32_arm_final_write_processing): Handle note section.
+
+2003-03-21  DJ Delorie  <dj@redhat.com>
+
+       * elf32-xstormy16.c (elf32_xstormy16_relocate_section): Call
+       _bfd_elf_rela_local_sym.
+
+2003-03-20  H.J. Lu <hjl@gnu.org>
+
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Don't try relax for
+       non-ELF outputs.
+
+2003-03-20  Nick Clifton  <nickc@redhat.com>
+
+       * peXXigen.c (_bfd_XXi_swap_aouthdr_out): Initialise $idata2 and
+       $idata5 in case bfd_coff_final_link is not called.
+
+2003-03-19  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf64-sparc.c (struct sparc64_elf_section_data): Add reloc_count
+       field.
+       (canon_reloc_count): Define.
+       (sparc64_elf_slurp_one_reloc_table, sparc64_elf_slurp_reloc_table,
+       sparc64_elf_canonicalize_dynamic_reloc): Use it instead of
+       reloc_count.
+       (sparc64_elf_canonicalize_reloc): New routine.
+       (bfd_elf64_canonicalize_reloc): Define.
+
+2003-03-18  Jakub Jelinek  <jakub@redhat.com>
+
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Handle relaxation
+       againt mergeable sections.  Take r_addend into account when caching
+       trampolines.
+
+2003-03-18  Richard Henderson  <rth@redhat.com>
+
+        * elfxx-ia64.c (get_dyn_sym_info): Return NULL gracefully for
+        local symbols that have no dyninfo.
+
+2003-03-14  Gene Smith  <gene.smith@siemens.com>
+
+       * ieee.c (ieee_write_expression): Handle the case where symbol is
+       NULL.
+       General formatting improvements.
+
+2003-03-13  Nick Clifton  <nickc@redhat.com>
+
+       * configure.in (LINGUAS): Add zh_CN.
+       * configure: Regenerate.
+       * po/zh_CN.po: New file.
+
+2003-03-13  Elias Athanasopoulos  <elathan@phys.uoa.gr>
+
+       * aout-cris.c (BYTES_IN_WORD): Don't define.
+       aout-encap.c: Likewise.
+       aout-ns32k.c: Likewise.
+       aout-tic30.c: Likewise.
+       hp300bsd.c: Likewise.
+       i386aout.c: Likewise.
+       i386dynix.c: Likewise.
+       i386linux.c: Likewise.
+       i386lynx.c: Likewise.
+       i386mach3.c: Likewise.
+       m68k4knetbsd.c: Likewise.
+       m68klinux.c: Likewise.
+       m68klynx.c: Likewise.
+       m68knetbsd.c: Likewise.
+       m88kmach3.c: Likewise.
+       mipsbsd.c: Likewise.
+       newsos3.c: Likewise.
+       sparclinux.c: Likewise.
+       sparclynx.c: Likewise.
+       sparcnetbsd.c: Likewise.
+       vaxbsd.c: Likewise. Fix comment formatting.
+
+2003-03-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       * Reverted 2003-03-02's patch.
+
+       * elfxx-target.h (bfd_elfNN_canonicalize_reloc): Make it
+       overridable.
+       * elf64-mips.c (mips_elf64_canonicalize_reloc,
+       mips_elf64_get_dynamic_reloc_upper_bound,
+       mips_elf64_canonicalize_dynamic_reloc): New, adapted from elf.c.
+       (bfd_elf64_get_canonicalize_reloc,
+       bfd_elf64_get_dynamic_reloc_upper_bound,
+       bfd_elf64_canonicalize_dynamic_reloc): Define.
+       (mips_elf64_slurp_reloc_table): Support dynamic.
+       (mips_elf64_slurp_one_reloc_table): Adjust.
+
+2003-03-12  Nick Clifton  <nickc@redhat.com>
+
+       * xsym.c (bfd_sym_fetch_type_information_table_entry): Change
+       'index' to 'offset' in test for zero value.
+
+2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elfxx-mips.c (mips_elf_create_dynamic_relocation): Do not create
+       dynamic relocations pointing to local or section symbols, use the
+       NULL symbol instead.  Document the choice to not emit an
+       additional R_MIPS_64 relocation.
+
+2003-03-11  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (ppc_elf_relocate_section): Subtract tls seg vma from
+       zero index dynamic tls relocs generated for the GOT.  Tidy code.
+       Set "relocation" to 1 on DTPMOD32 relocs.  Optimize HA adjustment.
+       * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
+
+2003-03-07  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (ppc_elf_relocate_section): Don't look for a nop after
+       a tls_get_addr call.
+
+       * elf32-ppc.c (ELIMINATE_COPY_RELOCS): Define as one.
+       (ppc_elf_adjust_dynamic_symbol): For weak symbols, copy
+       ELF_LINK_NON_GOT_REF from weakdef.
+       * elf64-ppc.c (ELIMINATE_COPY_RELOCS): Define as one.
+       (ppc64_elf_adjust_dynamic_symbol): For weak symbols, copy
+       ELF_LINK_NON_GOT_REF from weakdef.
+       * elf32-i386.c (ELIMINATE_COPY_RELOCS): Define as one.  Use throughout.
+       (elf_i386_adjust_dynamic_symbol): For weak symbols, copy
+       ELF_LINK_NON_GOT_REF from weakdef.
+
+2003-03-06  Jakub Jelinek <jakub@redhat.com>
+       Andrew Haley  <aph@redhat.com>
+
+       * elflink.h (elf_bfd_discard_info): Don't process eh frames if
+       output is relocateable.
+
+2003-03-06  Steven Konopa <skonopa@kgo.csc.com>
+
+       * som.c (som_fixup_formats): Correct formats for R_AUX_UNWIND and
+       R_COMMENT.
+
+2003-03-06  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (ppc_elf_create_linker_section): Don't capitalize
+       error messages.
+       (ELIMINATE_COPY_RELOCS): Define to zero.
+       (ppc_elf_relocate_section): Don't deref htab->tls_sec when calculating
+       TLSLD relocs.  Report reloc types on a number of errors.  Optimize
+       LOCAL24PC check for non-local syms.  Don't capitalize error messages.
+       * elf64-ppc.c (ELIMINATE_COPY_RELOCS): Define to zero.
+       (ppc64_elf_relocate_section): Don't deref htab->tls_sec when
+       calculating TLSLD relocs.  Report reloc types on a number of errors.
+       Don't capitalize error messages.
+
+2003-03-03  H.J. Lu <hjl@gnu.org>
+
+       * elfxx-ia64.c (USE_BRL): Removed.
+       (oor_ip): Removed.
+
+2003-03-03  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * elf32-sh.c (sh_elf_howto_tab): Make R_SH_IND12W into an ordinary
+       relocation (no special function), and make it non-partial_inplace.
+       (sh_elf_relax_section): When creating a bsr, use a consistent value
+       no matter if the symbol is extern or not;  set addend to -4.
+       Don't swap load / non-load instructions for SH4.
+       (sh_elf_relax_delete_bytes): In R_SH_IND12W case, check the offset
+       rather than if the symbol is external to determine if adjusting the
+       offset makes sense.  Adjust the addend too if appropriate.
+       (sh_elf_relocate_section): In R_SH_IND12W, don't fiddle with the
+       relocation.
+
+2003-03-03  Nick Clifton  <nickc@redhat.com>
+
+       * po/da.po: Installed latest translation.
+
+2003-03-02  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+       * elf32-mips.c (elf_mips_howto_table_rel): Change definition of
+       R_MIPS_PC16 to rightshift 2.
+       (elf_reloc_map mips_reloc_map): Map to rightshifted BFD reloc.
+       (bfd_elf32_bfd_reloc_type_lookup): Support
+       BFD_RELOC_MIPSEMB_16_PCREL_S2.
+       * elf64-mips.c (mips_elf64_howto_table_rel): Change definition of
+       R_MIPS_PC16 to rightshift 2.
+       (mips_elf64_howto_table_rela): Likewise.
+       (mips_reloc_map): Map to rightshifted BFD reloc.
+       * elfn32-mips.c: The same as in elf64-mips.c.
+       * elfxx-mips.c (mips_elf_got_for_ibfd): Typo in comment.
+       (mips_elf_calculate_relocation): Handle rightshifted addends for
+       R_MIPS_PC16.
+       * reloc.c (BFD_RELOC_MIPSEMB_16_PCREL_S2): New BFD relocation for
+       MIPS Embedded PIC. Remove superfluous empty COMMENT.
+       * libbfd.h: Regenerate.
+       * bfd-in2.h: Regenerate.
+
+2003-02-28  Richard Henderson  <rth@redhat.com>
+
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Correct bounds
+       for ltoff22x relaxation.
+
+2003-03-01  Alan Modra  <amodra@bigpond.net.au>
+
+       * bfd-in.h (_bfd): Don't define.
+       * bfd.c: Rename occurrences of "struct _bfd" to "struct bfd".
+       * syms.c: Likewise.
+       * bfd-in2.h: Regenerate.
+
+2003-02-27  Richard Henderson  <rth@redhat.com>
+
+       * elfxx-ia64.c (struct elfNN_ia64_dyn_sym_info): Add want_gotx;
+       (elfNN_ia64_check_relocs): Set it.
+       (allocate_global_data_got): Check it.
+       (allocate_local_got): Likewise.
+       (allocate_dynrel_entries): Likewise.
+       (elfNN_ia64_relax_ldxmov): New.
+       (elfNN_ia64_relax_section): Handle LTOFF22X, LDXMOV.
+       (elfNN_ia64_choose_gp): Split out from ...
+       (elfNN_ia64_final_link): ... here.
+       
+2003-02-27  Andrew Cagney  <cagney@redhat.com>
+
+       * bfd.c (struct bfd): Rename "struct _bfd".
+       * bfd-in.h: Update copyright.
+       (struct bfd): Rename "struct _bfd".
+       (_bfd): Define for backward compatibility.
+       * bfd-in2.h: Regenerate.
+
+2003-02-25  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.h (elf_bfd_final_link): Apportion reloc counts to rel_hdr
+       and rel_hdr2 when initially counting input relocs rather than after
+       creating output reloc sections.
+       (elf_link_read_relocs_from_section): Don't abort with wrong reloc
+       sizes.
+
+       * Makefile.am: Run "make dep-am".
+       * Makefile.in: Regenerate.
+
+2003-02-24  Kris Warkentin  <kewarken@qnx.com>
+
+       * elf.c (elfcore_read_notes): Add check for QNX style core file.
+       (elfcore_grog_nto_note): New function.
+       (elfcore_grog_nto_gregs): New function.
+       (elfcore_grog_nto_status): New function.
+
+2003-02-24  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.c (_bfd_elf_create_got_section): Check existing .got
+       section flags before concluding that we've already been called.
+       Don't use register keyword.
+       (_bfd_elf_create_dynamic_sections): Don't use register keyword.
+       (_bfd_elf_create_linker_section): Formatting.
+
+2003-02-20  jmc  <jmc@prioris.mini.pw.edu.pl>
+
+       * coff-h8300.c: Fix typo: intial -> initial.
+       * coff-ppc.c: Likewise.
+
+2003-02-20  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c: Formatting.
+       (allocate_dynrelocs): LD and GD relocs against the same sym need
+       separate GOT entries.
+       (ppc_elf_relocate_section): Correct GOT handling for multiple GOT
+       entries per symbol.
+
+2003-02-19  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-hppa.c (elf32_hppa_gc_sweep_hook): Simplify dynamic reloc
+       removal.  Localize vars.  Remove unnecessary dynobj test.
+       * elf32-i386 (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Pass SHARED instead
+       of INFO.
+       (allocate_dynrelocs): Adjust WILL_CALL_FINISH_DYNAMIC_SYMBOL uses,
+       and optimize.
+       (elf_i386_relocate_section): Likewise.
+       (elf_i386_gc_sweep_hook): Simplify dyn reloc removal.  Localize vars.
+       * elf32-s390.c (elf_s390_gc_sweep_hook): Likewise.
+       * elf32-sh.c (sh_elf_gc_sweep_hook): Likewise.
+       * elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
+       * elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise.
+       * elf32-sparc.c (elf32_sparc_gc_sweep_hook): Likewise.  Remove
+       local_dynrel for section too.  Don't touch HIPLT22, LOPLT10, PCPLT32
+       or PCPLT10 relocs.  Don't subtract twice on PLT32 relocs.
+       Formatting.
+
+       * elf64-ppc.c (ELIMINATE_COPY_RELOCS): Define.
+       (ppc64_elf_check_relocs): Use it.  Correct comment.  Move SEC_ALLOC
+       test.
+       (ppc64_elf_adjust_dynamic_symbol): Use ELIMINATE_COPY_RELOCS.
+       (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Pass SHARED instead of INFO.
+       (allocate_dynrelocs): Adjust WILL_CALL_FINISH_DYNAMIC_SYMBOL uses,
+       and optimize.  Use ELIMINATE_COPY_RELOCS.
+       (ppc64_elf_relocate_section): Likewise.
+
+       * elf32-ppc.c (struct ppc_elf_dyn_relocs): Add pc_count field.
+       (ppc_elf_copy_indirect_symbol): Copy pc_count field.
+       (ELIMINATE_COPY_RELOCS): Define.
+       (ppc_elf_adjust_dynamic_symbol): Convert copy relocs to dynamic.
+       (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Pass SHARED instead of INFO.
+       (MUST_BE_DYN_RELOC): Define.
+       (allocate_dynrelocs): Adjust WILL_CALL_FINISH_DYNAMIC_SYMBOL uses,
+       and optimize.  Trim dyn_relocs.
+       (ppc_elf_check_relocs): Don't generate dyn_relocs when we know they'll
+       not be used.  Do generate dyn_relocs for copy reloc avoidance.  Keep
+       track of pc_rel dyn relocs.
+       (ppc_elf_relocate_section): Remove "will_become_local".  Adjust
+       WILL_CALL_FINISH_DYNAMIC_SYMBOL use.  Trim dyn relocs as per
+       allocate_dynrelocs.  Don't recalculate "sec".
+
+2003-02-18  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (ppc_elf_relocate_section): Remove unnecessary test.
+       * elf64-ppc.c (ppc64_elf_tls_optimize): Decrement tlsld_got.refcount
+       on invalid LD relocs.
+       (allocate_dynrelocs): Invalid LD relocs don't use tlsld_got entry.
+       (ppc64_elf_relocate_section): Unify new handling of LD relocs and
+       tlsld_got entry.  Use IS_PPC64_TLS_RELOC.
+
+       * elf32-ppc.h: New file.
+       * elf32-ppc.c: Include elf32-ppc.h.
+       (NOP, CROR_151515, CROR_313131, TP_OFFSET, DTP_OFFSET): Define.
+       (struct ppc_elf_link_hash_entry): Rename "root" to "elf".  Adjust uses.
+       Add "tls_mask" field.
+       (TLS_GD, TLS_LD, TLS_TPREL, TLS_DTPREL, TLS_TLS, TLS_TPRELGD): Define.
+       (struct ppc_elf_link_hash_table): Rename "root" to "elf".  Adjust uses.
+       Add got, relgot, plt, relplt, dynbss, relbss, dynsbss, relsbss,
+       sdata, sdata2, tls_sec, tls_get_addr, tlsld_got fields.
+       Make use of htab shortcuts throughout file.
+       (ppc_elf_link_hash_newfunc): Init tls_mask field.
+       (ppc_elf_link_hash_table_create): Init new fields.
+       (ppc_elf_copy_indirect_symbol): Copy tls_mask.
+       (ppc_elf_howto_raw): Add tls relocs.
+       (ppc_elf_reloc_type_lookup): Handle them.
+       (ppc_elf_unhandled_reloc): New function.
+       (ppc_elf_create_got): Stash got section pointer in hash table,
+       return status.  Make .rela.got too.
+       (ppc_elf_create_dynamic_sections): Stash section pointers in htab.
+       (ppc_elf_adjust_dynamic_symbol): Only set up copy relocs when
+       NON_GOT_REF set.  Don't allocate space in .plt here..
+       (allocate_dynrelocs): ..do so here instead, properly ref-counting and
+       not allocating plt entries unnecessarily.  Allocate got entries here.
+       (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
+       (ppc_elf_size_dynamic_sections): Allocate local got entries.  Pass
+       "info" during allocate_dynrelocs hash traversal.  Use htab section
+       shortcuts rather than searching for named sections.  Get rid of
+       "plt" and "strip" booleans.
+       (update_local_sym_info, bad_shared_reloc): New functions.
+       (ppc_elf_check_relocs): Handle TLS relocs.  Move .rela.got creation to
+       ppc_elf_create_got.  Don't mark got or plt reloc syms dynamic, do so
+       in allocate_dynreloc.  Use update_local_sym_info and bad_shared_reloc.
+       Disallow R_PPC_EMB_RELSDA, R_PPC_EMB_NADDR32, R_PPC_EMB_NADDR16,
+       R_PPC_EMB_NADDR16_LO, R_PPC_EMB_NADDR16_HI and R_PPC_EMB_NADDR16_HA
+       in shared libs.  R_PPC_PLTREL32 is a plt reloc too.  Refcount all
+       relocs that might use a plt entry.  Set NON_GOT_REF too.
+       Enumerate all do-nothing relocs.
+       (ppc_elf_gc_sweep_hook): Simplify removal of dynrelocs.  Handle
+       tls relocs and all plt relocs.
+       (ppc_elf_tls_setup, ppc_elf_tls_optimize): New functions.
+       (ppc_elf_finish_dynamic_symbol): Don't build got entries here.
+       (ppc_elf_finish_dynamic_sections): Rewrite tag code using htab
+       shortcuts.
+       (ppc_elf_relocate_section): Tidy.  Handle TLS relocs.  Use
+       bfd_elf_local_sym_name.  Simplify unresolved reloc code.  Build got
+       entries and got relocs here.  Warn on non-zero got reloc addend.
+       Split out branch taken/not taken reloc code into a separate switch
+       and correct offset calculation. Allow BRTAKEN/BRNTAKEN dynamic relocs.
+       Split out HA reloc adjustments to separate switch statement.  Don't
+       warn on reloc overflow if we've already warned about undefined.
+       Don't rebuild sym name when reporting errors.  Report all possible
+       errors from _bfd_final_link_relocate.
+       (bfd_elf32_bfd_final_link): Don't define.
+
+2003-02-18  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (ppc64_elf_relocate_section): Don't init "r".  Don't
+       rebuild sym name when reporting errors.
+
+2003-02-17  Nick Clifton  <nickc@redhat.com>
+
+       * elflink.h (elf_link_output_extsym): Only check
+       allow_shlib_undefined for shared libraries.
+       * elf32-i386.c (elf_i386_relocate_section): Remove bogus check
+       of allow_shlib_undefined.
+       * elf32-cris.c (cris_elf_relocate_section): Likewise.
+       * elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
+       * elf32-m68k.c (elf_m68k_relocate_section): Likewise.
+       * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+       * elf32-s390.c (elf_s390_relocate_section): Likewise.
+       * elf32-sh.c (sh_elf_relocate_section): Likewise.
+       * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
+       * elf32-vax.c (elf_vax_relocate_section): Likewise.
+       * elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
+       * elf64-hppa.c (elf64_hppa_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_relocate_section): Likewise.
+       * elfxx-mips.c (_bfd_mips_elf_relocate_section): Likewise.
+
+2003-02-17  Nick Clifton  <nickc@redhat.com>
+
+       * elf.c (SEGMENT_AFTER_SEGMENT): Add third parameter - the
+       address field to use in the comparison.
+       (SEGMENT_OVERLAPS): Check that LMAs overlap as well.
+
+2003-02-14  Bob Wilson  <bob.wilson@acm.org>
+
+       * elfcore.h (elf_core_file_p): Compare alternate machine codes for ELF
+       backends when checking if the generic ELF target should be used.
+
+       * syms.c (_bfd_stab_section_find_nearest_line): For line number stabs
+       outside of functions, treat values as absolute addresses.
+
+       * bfd.c: Change embedded documentation to use consistent indentation
+       and to split up long lines.  Change informal style of description
+       for functions lacking real documentation.
+       * coffcode.h: Break up long lines in embedded documentation.
+       * format.c: Likewise.
+       * targets.c: Likewise.
+       * libcoff.h: Regenerate.
+       * bfd-in2.h: Regenerate.
+
+2003-02-14  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (ppc64_elf_link_hash_table_create): Init tls_get_addr.
+       (ppc64_elf_copy_indirect_symbol): Merge tls_mask too.
+       (ppc64_elf_gc_sweep_hook): Simplify removal of dyn_relocs.
+       (allocate_dynrelocs): Don't treat undefined and undefweak specially.
+       (ppc_size_one_stub): Fix warning, and tighten plt entry check.
+       (group_sections): Don't share a stub section if stubs are for a large
+       section.  Adjust comment.
+       (ppc64_elf_size_stubs): Roughly double the size left for stubs if
+       !stubs_always_before_branch.
+       (ppc64_elf_relocate_section): Initialize tlsld GOT entry once.  Don't
+       treat undefined and undefweak specially when processing dyn relocs.
+
+2003-02-13  Jakub Jelinek  <jakub@redhat.com>
+
+       * elflink.h (elf_link_add_object_symbols): Handle .symver x, x@FOO.
+
+2003-02-13  Nick Clifton  <nickc@redhat.com>
+
+       * elf32-arm.h (elf32_thumb_to_arm_stub): Include section VMAs
+       in computation of offset to insert into BL instruction.
+
+2003-02-11  Uwe Stieber  <uwe@wwws.de>
+
+       * config.bfd: Add support for kaOS as cross build target system.
+
+2003-02-11  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (ppc64_elf_check_relocs): Match versioned
+       .__tls_get_addr too.
+       (ppc64_elf_tls_setup): Ensure cached tls_get_addr is not indirect.
+
+2003-02-10  Kaz kojima  <kkojima@rr.iij4u.or.jp>
+
+       * elf32-sh.c (elf_sh_dyn_relocs): Add tls_tpoff32 field.
+       (elf_sh_link_hash_entry): Remove tls_tpoff32 field.
+       (sh_elf_link_hash_newfunc): Remove the initialization of
+       tls_tpoff32 field.
+       (allocate_dynrelocs): Keep dyn_relocs if it includes the entry
+       for which tls_tpoff32 flag is set.
+       (sh_elf_relocate_section): Covert to LE only if the dyn_relocs
+       of the symbol includes the entry matched with the input_section
+       and having tls_tpoff32 flag on.  When linking statically, set
+       symbol index of R_SH_TLS_TPOFF32 relocation to zero if the symbol
+       is defined in this executable.
+       (sh_elf_check_relocs): Set tls_tpoff32 flag appropriately.
+
+2003-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf32-s390.c (elf_s390_size_dynamic_sections): Set relocs to TRUE
+       even if there is just non-empty .rela.plt.
+
+2003-02-10  Nick Clifton  <nickc@redhat.com>
+
+       * archures.c (bfd_mach_arm_ep9312): Define.
+       * bfd-in2.h: Regenerate.
+       * cpu-arm.c (processors[]): Add ep9312.
+       (bfd_arm_arch): Add ep9312.
+       * elf32-arm.h (elf32_arm_merge_private_data): Update error
+       messages and add test for Maverick floating point support.
+       (elf32_arm_print_private_bfd_data): Handle
+       EF_ARM_MAVERICK_FLOAT flag.
+       (elf32_arm_object_p): New function.
+       (elf_backend_object_p): Define.
+
+2003-02-10  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c: Rename assorted occurrences of tls_type and similar
+       variables, structure fields or function params to tls_mask or
+       similar to better reflect usage.
+       (struct got_entry): Comment.
+       (struct ppc_link_hash_entry):  Expand comment, and renumber TLS_*.
+       (get_tls_mask): Rename from get_tls_type.
+
+2003-02-09  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (TLS_GD_LD): Don't define..
+       (TLS_GD): ..define this instead and update all uses.
+       (TLS_TPRELGD): Define.
+       (ppc64_elf_link_hash_table_create): Tweak initialization of
+       init_refcount and init_offset.
+       (ppc64_elf_check_relocs): Add one extra element to t_symndx array.
+       Mark second slot of GD or LD toc entries.
+       (get_tls_type): Return an int.  Distinguish toc GD and LD entries
+       from other tls types.
+       (ppc64_elf_tls_setup): New function, split out from..
+       (ppc64_elf_tls_optimize): ..here.  Don't optimize when symbols are
+       defined in a dynamic object.  Fix LD optimization.  Don't set TLS_TPREL
+       on GD->IE optimization, use TLS_TPRELGD instead.  Use get_tls_type
+       return value to properly decide whether toc GD and LD entries can
+       optimize away __tls_get_addr call.  Check next reloc after DTPMOD64
+       to determine GD or LD rather than looking at TLS_LD flag.  Don't
+       attempt to adjust got entry tls_type here..
+       (allocate_dynrelocs): ..instead, adjust got entry tls_type here, and
+       look for possible merges.
+       (ppc64_elf_size_dynamic_sections): Adjust local got entries for
+       optimization.
+       (ppc64_elf_size_stubs): Tweak __tls_get_addr fudge.
+       (ppc64_elf_relocate_section): Rename some vars to better reflect usage.
+       Make use of return value from get_tls_type to properly detect GD and
+       LD optimizations.  Split tlsld/gd hi/ha from lo/ds case.  Don't
+       handle tls_get_addr removal when looking at REL24 relocs, do it when
+       looking at the previous reloc.  Check reloc after DTPMOD64 to determine
+       GD or LD.
+       * elf64-ppc.h (ppc64_elf_tls_setup): Declare.
+
+2003-02-08  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-hppa.c (group_sections): Don't share a stub section if
+       stubs are for a large section.
+
+       * elf32-hppa.c (elf32_hppa_size_stubs): Double the size left for
+       stubs if !stubs_always_before_branch.
+
+2003-02-07  Nick Clifton  <nickc@redhat.com>
+
+       * elf.c (swap_out_syms): Generate an error message if an
+       equivalent output section cannot be found for a symbol.
+
+2003-02-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf64-alpha.c (elf64_alpha_relax_section): Don't crash if
+       local_got_entries is NULL.
+
+2003-02-06  Andreas Schwab  <schwab@suse.de>
+
+       * elf-eh-frame.c (get_DW_EH_PE_signed): Define.
+       (read_value): Add parameter is_signed, use signed extraction if
+       the value is signed.
+       (_bfd_elf_write_section_eh_frame): Pass signed flag of the
+       encoding to read_value.
+
+2003-02-06  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy got and
+       plt info when called to transfer weak sym info.
+
+2003-02-05  Alan Modra  <amodra@bigpond.net.au>
+
+       * reloc.c: Add PPC and PPC64 TLS relocs.
+       * libbfd.h: Regenerate.
+       * bfd-in2.h: Regenerate.
+       * elf64-ppc.c (TP_OFFSET, DTP_OFFSET): Declare.
+       (ppc64_elf_howto_raw): Add TLS howto's.  Adjust R_PPC64_NONE to be
+       against a 32 bit field.
+       (ppc64_elf_reloc_type_lookup): Handle TLS relocs.
+       (_ppc64_elf_section_data): Add t_symndx and comments.
+       (ppc64_elf_section_data): Use elf_section_data macro.
+       (ppc64_elf_new_section_hook): American spelling.
+       (struct got_entry, struct plt_entry): New.
+       (MUST_BE_DYN_RELOC): Rename from IS_ABSOLUTE_RELOC.
+       (struct ppc_stub_hash_entry): Add "addend" field.
+       (struct ppc_link_hash_entry): Add "tls_type".
+       (TLS_TLS, TLS_GD_LD, TLS_LD, TLS_TPREL, TLS_DTPREL,
+       TLS_EXPLICIT): Define.
+       (struct ppc_link_hash_table): Add tls_sec, tls_get_addr, tlsld_got.
+       (link_hash_newfunc): Init new fields.
+       (ppc64_elf_link_hash_table_create): Likewise.  Set init_refcount and
+       init_offset to NULL.
+       (ppc64_elf_copy_indirect_symbol): Copy got and plt info.  Don't call
+       _bfd_elf_link_hash_copy_indirect, rather insert relevant code from
+       there.
+       (update_local_sym_info, update_plt_info): New functions.
+       (ppc64_elf_check_relocs): Use them.  Handle TLS relocs.  Adjust GOT
+       handling to use got.glist rather than got.refcount.  Likewise for PLT.
+       (ppc64_elf_gc_sweep_hook): Handle TLS relocs, new GOT and PLT lists.
+       (func_desc_adjust): Adjust for new PLT list.
+       (ppc64_elf_adjust_dynamic_symbol): Likewise.
+       (get_sym_h, get_tls_type): New functions.
+       (ppc64_elf_edit_opd): Remove unused variable.  Use get_sym_h.
+       (ppc64_elf_tls_optimize): New function.
+       (allocate_dynrelocs): Adjust for new PLT and GOT lists.  Allocate
+       TLS relocs.
+       (ppc64_elf_size_dynamic_sections): Likewise.
+       (ppc_type_of_stub): Adjust for new PLT list.
+       (ppc_build_one_stub): Likewise.
+       (ppc64_elf_size_stubs): Likewise.  Use get_sym_h.  Treat __tls_get_addr
+       calls specially.
+       (ppc64_elf_relocate_section): Adjust for new GOT and PLT lists.  Handle
+       TLS relocs.  Report local syms using bfd_elf_local_sym_name.  Don't
+       init GOT entries that have a reloc.  Generate GOT relocs here..
+       (ppc64_elf_finish_dynamic_symbol): ..not here.  Adjust for PLT list.
+       * elf64-ppc.h (ppc64_elf_tls_optimize): Declare.
+
+2003-02-04  Andreas Schwab  <schwab@suse.de>
+
+       * elf32-m68k.c (elf_m68k_hash_entry): Define.
+       (elf_m68k_link_hash_traverse): Remove.
+       (elf_m68k_link_hash_newfunc): Use struct bfd_hash_entry and
+       elf_m68k_hash_entry instead of struct elf_m68k_link_hash_entry to
+       reduce casting.
+       (elf_m68k_check_relocs): Use elf_m68k_hash_entry instead of
+       casting.
+       (elf_m68k_size_dynamic_sections): Use elf_link_hash_traverse
+       instead of elf_m68k_link_hash_traverse.
+       (elf_m68k_discard_copies): Change first parameter to pointer to
+       struct elf_link_hash_entry and use elf_m68k_hash_entry when struct
+       elf_m68k_link_hash_entry is needed.
+
+2003-02-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-bfd.h (struct got_entry, struct plt_entry): Forward declare.
+       (struct elf_link_hash_entry): Add "glist" and "plist" fields to
+       "got" union, and declare as gotplt_union.  Use gotplt_uinion for
+       "plt" field.
+       (struct elf_link_hash_table): Make "init_refcount" a gotplt_union.
+       Add "init_offset" field.
+       (struct elf_obj_tdata <local_got>): Add "struct got_entry **" to union.
+       (elf_local_got_ents): Declare.
+       * elf.c (_bfd_elf_link_hash_newfunc): Adjust initialization of "got"
+       and "plt".
+       (_bfd_elf_link_hash_hide_symbol): Use "init_offset".
+       (_bfd_elf_link_hash_table_init): Set "init_offset".
+       * elflink.h (NAME(bfd_elf,size_dynamic_sections)): Set init_refcount
+       from init_offset.
+       (elf_adjust_dynamic_symbol): Set plt and got offsets using init_offset.
+
+       * elf.c (bfd_elf_local_sym_name): Split out from..
+       (group_signature): ..here.
+       * elf-bfd.h (bfd_elf_local_sym_name): Declare.
+
+2003-02-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-bfd.h (enum elf_link_info_type): Remove.
+       (struct bfd_elf_section_data): Move sec_info_type, use_rela_p fields
+       to struct sec.  Remove linkonce_p field.
+       (elf_linkonce_p): Delete.
+       (elf_discarded_section): Update for sec_info_type change.
+       * section.c (struct sec): Add sec_info_type, use_rela_p, has_tls_reloc,
+       flag11, flag12, flag13, flag14, flag15, flag16, flag20, flag24.
+       (ELF_INFO_TYPE_NONE): Define.
+       (ELF_INFO_TYPE_STABS): Define.
+       (ELF_INFO_TYPE_MERGE): Define.
+       (ELF_INFO_TYPE_EH_FRAME): Define.
+       (ELF_INFO_TYPE_JUST_SYMS): Define.
+       (STD_SECTION): Update struct sec initializer.
+       * ecoff.c (bfd_debug_section): Likewise.
+       * elf.c: Likewise.  Update occurrences of sec_info_type and use_rela_p.
+       * elflink.h: Likewise.
+       * elf-eh-frame.c: Likewise.
+       * elf64-alpha.c: Likewise.
+       * elfxx-ia64.c: Likewise.
+       * elfxx-mips.c: Likewise.
+       * bfd-in2.h: Regenerate.
+
+       * elf32-sparc.c (sec_do_relax): Use elf_section_data macro rather than
+       referring to used_by_bfd.
+       * elf64-sparc.c (sec_do_relax): Likewise.
+       * elf64-mmix.c (mmix_elf_section_data): Likewise.
+       * elfxx-mips.c (mips_elf_section_data): Likewise.
+       * ieee.c (ieee_slurp_section_data): Use ieee_per_section macro.
+       (ieee_get_section_contents): Likewise.
+       (ieee_new_section_hook): Formatting.
+       (ieee_canonicalize_reloc): Remove commented out code.
+       * mmo.c (mmo_section_data): Define.  Use throughout file.
+       * oasys.c (oasys_get_section_contents): Use oasys_per_section macro.
+
+2003-01-31  Graydon Hoare <graydon@redhat.com>
+
+       * Makefile.am (opncls.lo): Add dependency upon libiberty.h.
+       * Makefile.in: Regenerate.
+       * opncls.c (calc_crc32, get_debug_link_info,
+       seperate_debug_file_exists, find_seperate_debug_file): New
+       internal functions.
+       (bfd_follow_gnu_debuglink): New function.  Follow the pointer
+       contained inside a .gnu_debuglink section.
+       * bfd-in2.h: Regenerate.
+
+2003-01-29  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elfxx-mips.c (mips_elf_got_entry_hash): Don't dereference
+       entry->abfd when it's NULL.
+
+2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elfxx-mips.c (mips_elf_create_dynamic_relocation): Handle
+       _bfd_elf_section_offset returning -2 the same way as -1.
+
+       * elfxx-mips.c (mips_elf_multi_got): New function.
+       (struct mips_got_entry): Make symndx and gotidx signed.  Moved
+       addend into union along with address and link hash entry.
+       (struct mips_got_info): Added bfd2got and next.
+       (struct mips_elf_hash_sort_data): Added max_unref_got_dynindx.
+       (mips_elf_got_section, mips_elf_create_got_section): Use
+       SEC_EXCLUDE bit to tell whether we really need the got
+       section.  Take boolean arguments to disregard an excluded
+       section, or to create it as excluded.  Adjust all callers.
+       Use mips_elf_got_section all over.
+       (mips_elf_local_got_index, mips_elf_got_page,
+       mips_elf_got16_entry): Take input bfd as argument, and pass it
+       on to mips_elf_create_local_got_entry.
+       (mips_elf_global_got_index, mips_elf_create_local_got_entry):
+       Take input bfd as argument, and manage entries in the
+       appropriate GOT.
+       (mips_elf_got_offset_from_index): Take input bfd as argument,
+       and use it to adjust the GP offset of the bfd.
+       (mips_elf_sort_hash_table, mips_elf_sort_hash_table_f): Move
+       unreferenced GOT entries of global symbols to the end.
+       (mips_elf_record_global_got_symbol): Take input bfd as
+       argument.  Add entries to the master GOT hash table.
+       (struct mips_elf_bfd2got_hash): New.
+       (struct mips_elf_got_per_bfd_arg): New.
+       (struct mips_elf_set_global_got_offset_arg): New.
+       (mips_elf_hash_bfd_vma, mips_elf_multi_got_entry_hash,
+       mips_elf_multi_got_entry_eq, mips_elf_bfd2got_entry_hash,
+       mips_elf_bfd2got_entry_eq, mips_elf_make_got_per_bfd,
+       mips_elf_merge_gots, mips_elf_set_global_got_offset,
+       mips_elf_resolve_final_got_entry,
+       mips_elf_resolve_final_got_entries, mips_elf_adjust_gp,
+       mips_elf_got_for_ibfd): New functions.
+       (ELF_MIPS_GP_OFFSET): Don't depend on SGI_COMPAT.
+       (MIPS_ELF_GOT_MAX_SIZE): New macro.
+       (STUB_LW): Generate 64-bit stub regardless of SGI_COMPAT.
+       (mips_elf_got_entry_hash): Take new fields into account.  Use
+       mips_elf_hash_bfd_vma.
+       (mips_elf_got_entry_eq): Take new fields into account.
+       (mips_elf_create_got_section): Initialize new fields.
+       (mips_elf_calculate_relocation): Pass input_bfd to functions
+       that now take it.  Adjust gp for the input_bfd.
+       (mips_elf_allocate_dynamic_relocation,
+       mips_elf_create_dynamic_relocation,
+       _bfd_mips_elf_create_dynamic_sections): Use...
+       (mips_elf_rel_dyn_section): New function.  Borrow code from...
+       (_bfd_mips_elf_check_relocs): Pass input_bfd to functions that
+       now take it.  Create the got section if needed, even if
+       excluded, before recording a global got symbol.  Move some
+       code to...
+       (mips_elf_record_local_got_symbol): New fn.
+       (_bfd_mips_elf_size_dynamic_sections): Disable combreloc.
+       Compute multi-got global entries offsets.  Move GOT code to...
+       (_bfd_mips_elf_always_size_sections): Call mips_elf_multi_got
+       if the GOT is too big.
+       (_bfd_mips_elf_finish_dynamic_symbol): Set got entry of
+       undefweak symbol to zero.  Generate dynamic relocations for
+       non-primary GOT entries for global symbols.
+       (_bfd_mips_elf_finish_dynamic_sections): Handle multi-got
+       case.  Generate dynamic relocations for local got entries.
+       Sort dynamic relocations on N64 too, using...
+       (sort_dynamic_relocs_64): New fns.
+       (_bfd_mips_elf_hide_symbol): Adjust multi-got counters.
+       (_bfd_mips_elf_merge_private_bfd_data): Ignore EF_MIPS_XGOT.
+
+2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
+
+       * bfd.c (struct _bfd): Added id field.
+       * opncls.c (_bfd_id_counter): New static variable.
+       (_bfd_new_bfd): Use it.
+       * bfd-in2.h: Rebuilt.
+
+2003-01-25  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-sparc.c (bfd_elf32_new_section_hook): Define.
+
+2003-01-25  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf32-sparc.c (_bfd_sparc_elf_howto_table): Add TLS relocs.
+       (elf32_sparc_rev32_howto): New variable.
+       (sparc_reloc_map): Add TLS relocs.
+       (elf32_sparc_reloc_type_lookup, elf32_sparc_info_to_howto):
+       Handle REV32.
+       (sparc_elf_hix22_reloc, sparc_elf_lox10_reloc, elf32_sparc_mkobject):
+       New functions.
+       (struct elf32_sparc_dyn_relocs, struct elf32_sparc_link_hash_entry,
+       struct elf32_sparc_link_hash_table):
+       New structures.
+       (elf32_sparc_tdata, elf32_sparc_local_got_tls_type,
+       elf32_sparc_hash_table): Define.
+       (link_hash_newfunc, elf32_sparc_link_hash_table_create,
+       create_got_section, elf32_sparc_create_dynamic_sections,
+       elf32_sparc_copy_indirect_symbol, elf32_sparc_tls_transition): New
+       functions.
+       (elf32_sparc_check_relocs): Handle TLS relocs.  Add dynamic reloc
+       reference counting.
+       (elf32_sparc_gc_sweep_hook): Likewise.
+       (elf32_sparc_adjust_dynamic_symbol): Likewise.
+       (elf32_sparc_size_dynamic_sections): Likewise.
+       (elf32_sparc_relocate_section): Likewise.
+       (allocate_dynrelocs, readonly_dynrelocs, dtpoff_base, tpoff):
+       New functions.
+       (elf32_sparc_object_p): Allocate backend private object data.
+       (bfd_elf32_bfd_link_hash_table_create,
+       elf_backend_copy_indirect_symbol, bfd_elf32_mkobject,
+       elf_backend_can_refcount): Define.
+       (elf_backend_create_dynamic_sections): Define to
+       elf32_sparc_create_dynamic_sections.
+       * reloc.c: Add SPARC TLS relocs.
+       * bfd-in2.h, libbfd.h: Rebuilt.
+       * elf64-sparc.c (sparc64_elf_howto_table): Add TLS relocs.
+       (sparc_reloc_map): Likewise.
+
+2003-01-24  Martin Schwidefsky  <schwidefsky@de.ibm.com>
+
+       * bfd-in2.h: Regenerate.
+       * elf32-s390.c (elf_s390_mkobject, elf_s390_tls_transition,
+       s390_tls_reloc, dtpoff_base, tpoff, invalid_tls_insn): New functions.
+       (elf_howto_table): Add TLS relocs.
+       (elf_s390_reloc_type_lookup): Likewise.
+       (elf_s390_link_hash_entry): Add tls_type.
+       (elf_s390_hash_entry, elf_s390_obj_tdata, elf_s390_local_got_tls_type):
+       New macros.
+       (elf_s390_link_hash_table): Add tls_ldm_got.
+       (link_hash_newfunc): Initialize tls_type.
+       (elf_s390_link_hash_table_create): Initialize refcount of tls_ldm_got.
+       (elf_s390_copy_indirect_symbol): Copy tls_type information.
+       (elf_s390_check_relocs): Support TLS relocs.
+       (elf_s390_gc_sweep_hook): Likewise.
+       (allocate_dynrelocs): Likewise.
+       (elf_s390_size_dynamic_sections): Likewise.
+       (elf_s390_relocate_section): Likewise.
+       (elf_s390_finish_dynamic_symbol): Likewise.
+       (bfd_elf32_mkobject): Define for TLS.
+       * elf64-s390.c: Same changes as for elf32-s390.c.
+       * libbfd.h: Regenerate.
+       * reloc.c: Add s390 TLS relocations.
+
+2003-01-24  Charles Lepple clepple.ghz.cc
+
+       * aclocal.m4: Fix name of --enable-install-libbfd switch.
+
+2003-01-23  Nick Clifton  <nickc@redhat.com>
+
+       * Add sh2e support:
+
+       2002-04-02  Elena Zannoni  <ezannoni@redhat.com>
+
+               * archures.c (bfd_mach_sh2e): Added.
+               * bfd-in2.h: Rebuilt.
+               * cpu-sh.c (arch_info_struct): Added SH2e.
+               * elf32-sh.c (sh_elf_set_mach_from_flags): Handle EF_SH2E.
+
+2003-01-23  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-bfd.h (struct bfd_elf_section_data): Remove tdata.  Change
+       dynindx to an int.  Rearrange for better packing.
+       * elf.c (_bfd_elf_new_section_hook): Don't alloc if already done.
+       * elf32-mips.c (bfd_elf32_new_section_hook): Define.
+       * elf32-sh64.h: New.  Split out from include/elf/sh.h.
+       (struct _sh64_elf_section_data): New struct.
+       (sh64_elf_section_data): Don't dereference sh64_info (was tdata).
+       * elf32-sh64-com.c: Include elf32-sh64.h.
+       * elf32-sh64.c: Likewise.
+       (sh64_elf_new_section_hook): New function.
+       (bfd_elf32_new_section_hook): Define.
+       (sh64_elf_fake_sections): Adjust for sh64_elf_section_data change.
+       (sh64_bfd_elf_copy_private_section_data): Likewise.
+       (sh64_elf_final_write_processing): Likewise.
+       * elf32-sparc.c (struct elf32_sparc_section_data): New.
+       (elf32_sparc_new_section_hook): New function.
+       (SET_SEC_DO_RELAX, SEC_DO_RELAX): Delete.
+       (sec_do_relax): Define.
+       (elf32_sparc_relax_section): Adjust to use sec_do_relax.
+       (elf32_sparc_relocate_section): Likewise.
+       * elf64-mips.c (bfd_elf64_new_section_hook): Define.
+       * elf64-mmix.c (struct _mmix_elf_section_data): New.
+       (mmix_elf_section_data): Define.  Use throughout file.
+       (mmix_elf_new_section_hook): New function.
+       (bfd_elf64_new_section_hook): Define.
+       * elf64-ppc.c (struct _ppc64_elf_section_data): New.
+       (ppc64_elf_section_data): Define.  Use throughout.
+       (ppc64_elf_new_section_hook): New function.
+       (bfd_elf64_new_section_hook): Define.
+       * elf64-sparc.c (struct sparc64_elf_section_data): New.
+       (sparc64_elf_new_section_hook): New function.
+       (SET_SEC_DO_RELAX, SEC_DO_RELAX): Delete.
+       (sec_do_relax): Define.
+       (sparc64_elf_relax_section): Adjust to use sec_do_relax.
+       (sparc64_elf_relocate_section): Likewise.
+       (bfd_elf64_new_section_hook): Define.
+       * elfn32-mips.c (bfd_elf32_new_section_hook): Define.
+       * elfxx-mips.c (struct _mips_elf_section_data): New.
+       (mips_elf_section_data): Define.  Use throughout.
+       (_bfd_mips_elf_new_section_hook): New function.
+       (mips_elf_create_got_section): Don't alloc used_by_bfd.
+       * elfxx-mips.h (_bfd_mips_elf_new_section_hook): Declare.
+       * elfxx-target.h (bfd_elfNN_new_section_hook): Add #ifndef.
+       * Makefile.am: Run "make dep-am".
+       * Makefile.in: Regenerate.
+
+2003-01-21  Richard Henderson  <rth@redhat.com>
+
+       * elf64-alpha.c (ALPHA_ELF_LINK_HASH_PLT_LOC): New.
+       (struct alpha_elf_link_hash_entry): Add plt_old_section, plt_old_value.
+       (elf64_alpha_adjust_dynamic_symbol): Set them.
+       (elf64_alpha_size_plt_section_1): Reset them when plt entry removed.
+       (elf64_alpha_relax_tls_get_addr): Handle LDM relocs.  Frob the
+       symbol index when relaxing LDM to TPREL.
+       (elf64_alpha_relax_section): Likewise.  Allow relaxation of GD
+       relocs, even if the target isn't locally defined.
+       (elf64_alpha_check_relocs): Frob LDM reloc symndx to zero.
+       (elf64_alpha_relocate_section): Likewise.  Force TP-relative
+       relocs vs symndx 0 to the tp base.
+
+2003-01-21  Fabio Alemagna  <falemagn@aros.org>
+
+       * config.bfd: Handle i[3456]86-*-aros*.
+
+2003-01-21  Andreas Schwab  <schwab@suse.de>
+
+       * elf32-ppc.c (struct ppc_elf_dyn_relocs): Define.
+       (struct ppc_elf_link_hash_entry): Define.
+       (ppc_elf_hash_entry): New function.
+       (struct ppc_elf_link_hash_table): Define.
+       (ppc_elf_hash_table): New function.
+       (ppc_elf_link_hash_newfunc): New function.
+       (ppc_elf_link_hash_table_create): New function.
+       (ppc_elf_copy_indirect_symbol): New function.
+       (allocate_dynrelocs): New function.
+       (readonly_dynrelocs): New function.
+       (ppc_elf_size_dynamic_sections): Allocate space for dynamic
+       relocs and determine DT_TEXTREL.
+       (ppc_elf_check_relocs): Don't do that here, just count the
+       dynamic relocs.
+       (ppc_elf_gc_sweep_hook): Discard any dynamic relocs against the
+       removed section.
+       (bfd_elf32_bfd_link_hash_table_create): Define.
+       (elf_backend_copy_indirect_symbol): Define.
+
+2003-01-21  Richard Henderson  <rth@redhat.com>
+
+       * elf64-alpha.c (alpha_dynamic_entries_for_reloc): GOTTPREL and
+       TPREL also get a reloc if shared.  Remove SREL support.
+       (elf64_alpha_emit_dynrel): New.
+       (elf64_alpha_relocate_section): Use it.  Resolve dynamic TPREL
+       and GOTTPREL relocs to local symbols against the tp base.
+       (elf64_alpha_finish_dynamic_symbol): Use elf64_alpha_emit_dynrel.
+
+       * elf64-alpha.c (elf64_alpha_relax_got_load): Decrement got
+       use count before clobbering r_type.
+       (elf64_alpha_relax_tls_get_addr): Don't use pos[1] if insn
+       ordering would mean dataflow inspection is necessary.
+
+2003-01-20  Svein E. Seldal  <Svein.Seldal@solidas.com>
+
+       * coffcode.h (coff_set_flags): Added get/set arch hooks.
+
+2003-01-20  Fabio Alemagna  <falemagn@aros.org>
+
+       * elf32-sh.c: Treat elfNN_bed like other macros defined in
+         elfxx-target.h and #undef it before #define'ing it.
+       * elf32-i386.c: Likewise.
+       * elf32-sh64.c: Likewise.
+       * elf64-alpha.c: Likewise.
+       * elf64-sh64.c: Likewise.
+
+2003-01-20  Martin Schwidefsky  <schwidefsky@de.ibm.com>
+
+       * bfd-in2.h: Regenerate.
+       * elf32-s390.c (elf_s390_adjust_gotplt): New prototype.
+       (elf_howto_table): Rename R_390_GOTOFF to R_390_GOTOFF32. Add
+       R_390_GOTOFF16, R_390_GOTOFF64, R_390_GOTPLT12, R_390_GOTPLT16,
+       R_390_GOTPLT32, R_390_GOTPLT64, R_390_GOTPLTENT, R_390_PLTOFF16,
+       R_390_PLTOFF32 and R_390_PLTOFF64.
+       (elf_s390_reloc_type_lookup): Likewise.
+       (struct elf_s390_link_hash_entry): Add gotplt_refcount to keep track
+       of GOTPLT references to a function.
+       (link_hash_newfunc): Initialize gotplt_refcount.
+       (elf_s390_check_relocs): Move allocation of local_got_refcounts array
+       and creation of the got section out of the main switch. Add support
+       for the gotoff, gotplt and pltoff relocations.
+       (elf_s390_gc_sweep_hook): Add reference counting for gotoff, gotplt
+       and pltoff.
+       (elf_s390_adjust_gotplt): New function.
+       (elf_s390_adjust_dynamic_symbol): Adjust gotplt refcount for removed
+       plt entries.
+       (allocate_dynrelocs): Add comment.
+       (elf_s390_relocate_section): Change r_type to unsigned. Add support
+       for gotoff, gotplt and pltoff relocations.
+       * elf64-s390.c: Same changes as for elf32-s390.c.
+       * libbfd.h: Regenerate.
+       * reloc.c: Add BFD_RELOC_390_GOTOFF64, BFD_RELOC_390_GOTPLT12,
+       BFD_RELOC_390_GOTPLT16, BFD_RELOC_390_GOTPLT32, BFD_RELOC_390_GOTPLT64,
+       BFD_RELOC_390_GOTPLTENT, BFD_RELOC_390_PLTOFF16, BFD_RELOC_390_PLTOFF32
+       and BFD_RELOC_390_PLTOFF64.
+
+2003-01-18  Jakub Jelinek  <jakub@redhat.com>
+
+       * elfxx-ia64.c (elfNN_ia64_relocate_section): Handle
+       R_IA64_TPREL64[LM]SB against non-global symbol properly.
+
+2003-01-16  Jakub Jelinek  <jakub@redhat.com>
+
+       * elfxx-ia64.c (struct elfNN_ia64_link_hash_table): Add
+       self_dtpmod_done and self_dtpmod_offset.
+       (allocate_global_data_got): Only use one got entry for all
+       dtpmod relocs against local symbols.
+       (allocate_dynrel_entries): Only need .rela.got entry for
+       dtpmod against global symbol.
+       (elfNN_ia64_size_dynamic_sections): Initialize self_dtpmod_offset.
+       Reserve space in .rela.got for the local dtpmod entry.
+       (set_got_entry): Initialize the common local dtpmod .got entry.
+       (elfNN_ia64_relocate_section): Handle R_IA_64_DTPREL64LSB
+       and R_IA_64_DTPREL64MSB.
+
+2003-01-16  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c: Include elf/ppc64.h rather than elf/ppc.h.
+       (R_PPC_*): Rename all occurrences to R_PPC64_*.
+       (R_PPC64_ADDR30): Rename all occurrences to R_PPC64_REL30.
+       (enum elf_ppc_reloc_type): Ditto to enum elf_ppc64_reloc_type.
+       (ppc64_elf_gc_sweep_hook): Handle R_PPC64_REL30 along with other
+       relative relocs, not with absolute ones.
+       * Makefile.am: Run "make dep-am".
+       * Makefile.in: Regenerate.
+       * po/SRC-POTFILES.in: Regenerate.
+
+2003-01-15  Andreas Schwab  <schwab@suse.de>
+
+       * elf32-ppc.c (ppc_elf_check_relocs): Don't set DF_TEXTREL for a
+       relocation against a non-allocated readonly section.
+
+2003-01-10  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (ppc_elf_relocate_section): Adjust addend for GOT16_HA.
+       * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.  PLTGOT16_HA too.
+
+2002-01-08  Klee Dienes  <kdienes@apple.com>
+
+       * Makefile.am (ALL_MACHINES): Use cpu-msp430.lo, not cpu-msp430.c.
+       (BFD32_BACKENDS): Use elf32-msp430.lo, not elf32-msp430.c.
+       * Makefile.in: Regenerate.
+
+2003-01-08  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elfn32-mips.c (prev_reloc_section): New.
+       (GET_RELOC_ADDEND): Use it.  Parenthesize macro arguments.
+       (SET_RELOC_ADDEND): Parenthesize macro argument.
+
+2003-01-07  John David Anglin  <dave.anglin@nrc.gc.ca>
+
+       * elf32-hppa.c (final_link_relocate): For all DP relative relocations,
+       adjust addil instructions if the symbol has no section.
+
+2003-01-07  DJ Delorie  <dj@redhat.com>
+
+       * elf32-xstormy16.c (xstormy16_elf_howto_table): Make REL_12 not
+       partial_inplace.
+
+2003-01-07  Andreas Schwab  <schwab@suse.de>
+
+       * elf32-m68k.c (elf_m68k_check_relocs): Don't set DF_TEXTREL for
+       PC relative relocations.
+       (elf_m68k_discard_copies): Set it here instead.
+
+2002-01-02  Ben Elliston  <bje@redhat.com>
+           Jeff Johnston  <jjohnstn@redhat.com>
+
+       * Makefile.am (ALL_MACHINES): Add cpu-iq2000.lo.
+       (ALL_MACHINES_CFILES): Add cpu-iq2000.c.
+       (BFD32_BACKENDS): Add elf32-iq2000.lo.
+       (BFD32_BACKENDS_CFILES): Add elf32-iq2000.c.
+       (cpu-iq2000.lo): New target.
+       * Makefile.in: Regenerate.
+       * config.bfd: Handle iq2000-*-elf.
+       * archures.c (bfd_architecture): Add bfd_{arch,mach}_iq2000.
+       (bfd_archures_list): Add bfd_iq2000_arch.
+       * configure.in: Handle bfd_elf32_iq2000_vec.
+       * configure: Regenerate.
+       * reloc.c: Add BFD_RELOC_IQ2000_OFFSET_16, BFD_RELOC_IQ2000_OFFSET_21,
+       and BFD_RELOC_IQ2000_UHI16.
+       * targets.c (bfd_elf32_iq2000_vec): Declare.
+       (bfd_target_vector): Add bfd_elf32_iq2000_vec.
+       * elf.c (prep_headers): Set e_machine to EM_IQ2000.
+       * cpu-iq2000.c: New file.
+       * elf32-iq2000.c: Likewise.
+       * libbfd.h: Regenerate.
+       * bfd-in2.h: Likewise.
+
+2003-01-02  Richard Sandiford  <rsandifo@redhat.com>
+
+       * elfxx-mips.c: Include libiberty.h.
+       (elf_mips_isa, _bfd_mips_elf_mach_extends_p): Remove.
+       (mips_set_isa_flags): New function, split out from...
+       (_bfd_mips_elf_final_write_processing): ...here.  Only call
+       mips_set_isa_flags if the EF_MIPS_MACH bits are clear.
+       (mips_mach_extensions): New array.
+       (mips_32bit_flags_p): New function.
+       (_bfd_mips_elf_merge_private_bfd_data): Rework architecture checks.
+       Use mips_32bit_flags_p to check if one binary is 32-bit and the
+       other is 64-bit.  When adopting IBFD's architecture, adopt the
+       bfd_mach as well as the flags.
+
+2003-01-02  Nick Kelsey  <nickk@ubicom.com>
+
+       * elf32-ip2k.c: Re-work of linker relaxation code for the ip2k to
+       fix internal errors, fix bad code generation, fix incorrect stabs
+       information, and improve ability to eliminate redundant page
+       instructions. Added code to ip2k_final_link_relocate to self-verify
+       the linker relaxation.  Fix formatting problems.
+
+2002-12-30  Chris Demetriou  <cgd@broadcom.com>
+
+       * aoutx.h (NAME(aout,machine_type)): Add bfd_mach_mipsisa32r2 case.
+       * archures.c (bfd_mach_mipsisa32r2): New define.
+       * bfd-in2.h: Regenerate.
+       * cpu-mips.c (I_mipsisa32r2): New enum value.
+       (arch_info_struct): Add entry for I_mipsisa32r2.
+       * elfxx-mips.c (elf_mips_isa, _bfd_elf_mips_mach)
+       (_bfd_mips_elf_print_private_bfd_data): Handle E_MIPS_ARCH_32R2.
+       (_bfd_mips_elf_final_write_processing): Add
+       bfd_mach_mipsisa32r2 case.
+       (_bfd_mips_elf_merge_private_bfd_data): Handle merging of
+       binaries marked as using MIPS32 Release 2.
+
+2002-12-30    Dmitry Diky <diwil@mail.ru>
+
+       * Makefile.am: Add msp430 target.
+       * configure.in: Likewise.
+       * Makefile.in: Regenerate.
+       * configure: Regenerate.
+       * archures.c: Add msp430 architecture vector.
+       * config.bfd: Likewise.
+       * reloc.c: Add msp430 relocs.
+       * targets.c: Add msp320 target.
+       * cpu-msp430.c: New file: msp430 cpu detection.
+       * elf32-msp430.c: New file: msp430 reloc processing.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
+2002-12-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf.c (elf_sort_sections): Don't reorder .tbss.
+       (assign_file_positions_for_segments): Only adjust off/voff
+       for increased alignment in PT_LOAD or PT_NOTE segment,
+       but adjust p_filesz for .tbss too.  in PT_LOAD consider
+       .tbss to have zero memory size.
+       (copy_private_bfd_data) [SECTION_SIZE]: Define.
+       [IS_CONTAINED_BY_VMA, IS_CONTAINED_BY_LMA]: Use it.
+       [INCLUDE_SECTION_IN_SEGMENT]: Only put SHF_TLS sections
+       into PT_TLS segment.  Never put SHF_TLS sections in
+       segments other than PT_TLS or PT_LOAD.
+
+       * elf64-alpha.c (elf64_alpha_finish_dynamic_sections): Clear .plt
+       sh_entsize.
+
+2002-12-23  DJ Delorie  <dj@redhat.com>
+
+       * coff64-rs6000.c (xcoff64_ppc_relocate_section): Fix logic reversal.
+
+2002-12-23  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.h (elf_link_output_extsym): Heed strip_discarded.
+
+2002-12-23  Nick Clifton  <nickc@redhat.com>
+
+       * archures.c (bfd_arch_get_compatible): Add third parameter
+       'accept_unknowns'.  Only accept unknown format BFDs if
+       accept_unknowns is true, or if the format is "binary".
+       * bfd-in2.h: Regenerate.
+
+2002-12-21  Nick Clifton  <nickc@redhat.com>
+
+       * coff-arm.c (coff_arm_relocate_section): Disable WINCE workaround
+       that subtracted 8 from pc relative relocations.
+
+2002-12-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * coff-h8300.c: Fix comment typos.
+       * coffcode.h: Likewise.
+       * cpu-cris.c: Likewise.
+       * elf32-vax.c: Likewise.
+       * genlink.h: Likewise.
+       * linker.c: Likewise.
+       * som.c: Likewise.
+       * tekhex.c: Likewise.
+       * vms-misc.c: Likewise.
+
+2002-12-20  DJ Delorie  <dj@redhat.com>
+
+       * reloc.c: Add BFD_RELOC_XSTORMY16_12.
+       * libbfd.h: Regenerate.
+       * bfd-in2.h: Regenerate.
+       * elf32-xstormy16.c (xstormy16_elf_howto): Add R_XSTORMY16_12.
+       (xstormy16_reloc_map): Add R_XSTORMY16_12.
+
+2002-12-19  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * doc/bfdint.texi: Fix typos.
+
+2002-12-20  Paul Eggert  <eggert@twinsun.com>
+
+       Port to POSIX 1003.1-2001.
+       * acinclude.m4 (AM_INSTALL_LIBBFD): Do not rely on "test -o".
+       * configure.in (build-warnings): Likewise.
+       (Horrible hacks to build DLLs on Windows): Do not rely on "tail -1".
+       * aclocal.m4: Regenerate.
+       * config.in: Regenerate.
+       * configure: Regenerate.
+
+2002-12-19  Alan Modra  <amodra@bigpond.net.au>
+
+       * coff-h8300.c: Include libiberty.h.
+       (h8300_reloc16_extra_cases): Check the hash table creator before
+       referencing h8300 specific fields.  Stash the hash table pointer
+       in a local var.  Comment typo fixes.
+       (h8300_bfd_link_add_symbols): Likewise.
+
+       * bfd/reloc.c (struct reloc_howto_struct): Revise src_mask and
+       dst_mask comments.
+       * bfd-in2.h: Regenerate.
+
+2002-12-18  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (ppc_elf_relocate_section): Reorganize dynamic reloc
+       code a little.  Comment on dynamic relocs against section symbols.
+
+2002-12-17  Roger Sayle  <roger@eyesopen.com>
+
+       * configure.host (ia64-*-hpux*): Support 64 bit targets using
+       the HP compiler's "long long".
+
+2002-12-16  Andrew MacLeod  <amacleod@redhat.com>
+
+       * elf32-xstormy16.c (xstormy16_elf_howto): Add R_XSTORMY16_LO16
+       and R_XSTORMY16_HI16) howto entries.
+       (xstormy16_reloc_map): Map R_XSTORMY16_{LO,HI}16 to BFD_RELOC_{LO,HI}16.
+       (xstormy16_info_to_howto_rela): Use R_XSTORMY16_GNU_VTINHERIT to
+       determine the start of the second reloc table.
+
+2002-12-16  Nathan Tallent  <eraxxon@alumni.rice.edu>
+
+       * ecofflink.c: Fix the reading of the debugging information
+       of Tru64/Alpha binaries that are produced by recent Compaq
+       compilers.
+       (mk_fdrtab): Fix error in creating the FDR (file descriptor)
+       table.
+       (lookup_line): Because of the strange information sometimes
+       generated by Compaq's recent compilers, change how the FDR
+       table is searched so that PDRs (procedure descriptors) are
+       correctly found.  Note that this change is really more of a hack;
+       however, I have included extensive documentation as to why
+       this is the best solution short of an extensive rewrite or
+       another hack.
+       (fdrtab_lookup): Add comments to explain the algorithm.
+
+2002-12-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf-m10300.c (elf32_mn10300_link_hash_newfunc): Reorder
+       initializers to match struct declaration.
+
+2002-12-12  Alan Modra  <amodra@bigpond.net.au>
+
+       * dwarf2.c (comp_unit_contains_address): Comment typo fix.
+       * elf.c (get_program_header_size): Likewise.
+       * elf32-m32r.c (m32r_elf_lo16_reloc): Likewise.
+       (m32r_elf_generic_reloc): Likewise.
+       * elf32-ppc.c (ppc_elf_howto_init): Likewise.
+       * elflink.h (elf_bfd_discard_info): Likewise.
+
+2002-12-12  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-i386.c (elf_i386_finish_dynamic_sections): Add output_offset
+       to DT_JMPREL.  Use srelplt input section size for DT_PLTRELSZ and
+       DT_RELSZ adjustment, not output section.  Avoid writing tags when
+       unchanged.  Don't assume linker script is sane, adjust DT_REL too.
+       * elf32-hppa.c (elf32_hppa_finish_dynamic_sections): Just use raw
+       size of srelplt for DT_PLTRELSZ.  Use srelplt input section size for
+       DT_RELASZ adjustment, not output section.  Avoid writing tags when
+       unchanged.  Adjust DT_RELA.
+       * elf64-ppc.c (ppc64_elf_finish_dynamic_sections): Tweaks for better
+       formatting.  Avoid writing tags when unchanged.  Adjust DT_RELA.
+
+2002-12-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elfxx-mips.c (mips_elf_calculate_relocation): Don't divide
+       addend by 4.
+
+2002-12-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elfxx-mips.c (struct mips_got_entry): New.
+       (struct mips_got_info): Added got_entries field.
+       (mips_elf_got_entry_hash, mips_elf_got_entry_eq): New functions.
+       (mips_elf_local_got_index, mips_elf_got_page,
+       mips_elf_got16_entry): Re-implement in terms of new...
+       (mips_elf_create_local_got_entry): Rewrite to use got_entries.
+       Change return type.
+       (mips_elf_highest): Warning clean-up.
+       (mips_elf_create_got_section): Initialize got_entries.
+       (_bfd_mips_elf_check_relocs): Use got_entries to estimate
+       local got size.
+       (_bfd_mips_elf_size_dynamic_sections): Do not account for
+       GOT_PAGE entries, since we now reuse GOT16 entries.
+
+2002-12-10  Jason Thorpe  <thorpej@wasabisystems.com>
+
+       * aoutx.h (set_section_contents): Allow an otherwise unrepresentable
+       read-only section that lies after .text and before .data to be
+       written into the output file and included in a_text.
+       (translate_to_native_sym_flags): If an otherwise unrepresentable
+       section was merged with .text, convert its symbols to N_TEXT
+       symbols.
+       * libaout.h (aout_section_merge_with_text_p): New macro.
+
+2002-12-08  Alan Modra  <amodra@bigpond.net.au>
+
+       * bfd-in.h: Comment typo fix.  Formatting.
+       * bfd-in2.h: Regenerate.
+       * coff64-rs6000.c (xcoff64_openr_next_archived_file): Warning fix.
+       * elf32-m68hc12.c (m68hc12_elf_set_mach_from_flags): Prototype.
+       * elf64-mmix.c (mmix_dump_bpo_gregs): Warning fix.
+
+2002-12-05  Richard Henderson  <rth@redhat.com>
+
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Handle PCREL21BI.
+       Only send PCREL21B though the plt.  Fix installed reloc type.
+       (elfNN_ia64_relocate_section): Give error for dynamic reloc
+       against PCREL22 or PCREL64I; clean up error messages for
+       branch relocs.
+
+2002-12-04  Kevin Buettner  <kevinb@redhat.com>
+
+       * elf64-mips.c (elf64_mips_grok_prstatus, elf64_mips_grok_psinfo):
+       New functions.
+       (elf_backend_grok_prstatus, elf_backend_grok_psinfo): Define.
+
+2002-12-04  David Mosberger  <davidm@hpl.hp.com>
+
+       * cpu-ia64-opc.c: Add operand constant "ar.csd".
+
+2002-12-04  H.J. Lu <hjl@gnu.org>
+
+       * elfxx-ia64.c (get_local_sym_hash): Use section ID instead of
+       BFD address when constructing local name.
+
+2002-12-04  Andreas Schwab  <schwab@suse.de>
+
+       * elf32-m68k.c (struct elf_m68k_link_hash_table): Add sym_sec
+       member.
+       (elf_m68k_link_hash_table_create): Initialize it.
+       (elf_m68k_check_relocs): Handle symbols that are forced to be
+       local due to visibility changes.
+       (elf_m68k_adjust_dynamic_symbol): Likewise.
+       (elf_m68k_size_dynamic_sections): Likewise.
+       (elf_m68k_discard_copies): Likewise.
+       (elf_m68k_relocate_section): Likewise.
+
+2002-12-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (ppc64_elf_edit_opd): Correct typo.
+
+2002-12-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * srec.c (srec_write_symbols): Restore '$' prefix to address
+       accidentally removed in 2002-04-04 change.
+       (srec_get_symtab): Use 0 instead of `(long) FALSE'.
+
+2002-12-03  Nick Clifton  <nickc@redhat.com>
+
+       * elf32-ppc.c (apuinfo_list_init): New function.
+       (apuinfo_list_add): New function: Add a value to the list.
+       (apuinfo_list_length): New function: Return the number of
+       values on the list.
+       (apuinfo_list_element): New function: Return a value on the
+       list.
+       (apuinfo_list_finish): New function: Free the resources used
+       by the list.
+       (ppc_elf_begin_write_processing): New function.  Scan the
+       input bfds for apuinfo sections.
+       (ppc_elf_write_section): New function: Delay the creation of
+       the contents of an apuinfo section in an output bfd.
+       (ppc_elf_final_write_processing): New function.  Create the
+       contents of an apuinfo section in an output bfd.
+       (elf_backend_begin_write_processing): Define.
+       (elf_backend_final_write_processing): Define.
+       (elf_backend_write_section): Define.
+
+2002-12-03  Richard Henderson  <rth@redhat.com>
+
+       * cpu-ia64-opc.c (elf64_ia64_operands): Add ldxmov entry.
+
+2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>
+
+       Fix PR savannah/1417:
+       * elf32-m68hc11.c (m68hc11_elf_relax_delete_bytes): Don't adjust
+       branch if it goes to the start of the deleted region.
+
+2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * bfd-in2.h (bfd_mach_m6812): Rebuild.
+       * archures.c (bfd_mach_m6812_default, bfd_mach_m6812,
+       bfd_mach_m6812s): Declare.
+
+       * elf32-m68hc12.c (m68hc12_elf_set_mach_from_flags): New function.
+       (_bfd_m68hc12_elf_set_private_flags): Call it.
+       (_bfd_m68hc12_elf_print_private_bfd_data): Report processor version.
+       (_bfd_m68hc12_elf_merge_private_bfd_data): Merge the flags and
+       report microcontroller incompatibilities (HC12 vs HCS12).
+       (elf_backend_object_p): Update.
+
 2002-11-30  Alan Modra  <amodra@bigpond.net.au>
 
        * bfd-in.h (TRUE_FALSE_ALREADY_DEFINED, BFD_TRUE_FALSE): Delete.
        pei-mips.c, pei-sh.c, peicode.h, ppcboot.c, ptrace-core.c, reloc.c,
        reloc16.c, riscix.c, rs6000-core.c, sco5-core.c, section.c, simple.c,
        som.c, som.h, sparclinux.c, sparclynx.c, srec.c, stabs.c, sunos.c,
-       syms.c, targets.c, tekhex.c, ticoff.h, trad-core.c, versados.c, 
+       syms.c, targets.c, tekhex.c, ticoff.h, trad-core.c, versados.c,
        vms-gsd.c, vms-hdr.c, vms-misc.c, vms-tir.c, vms.c, vms.h,
        xcoff-target.h, xcofflink.c, xsym.c, xsym.h: Replace boolean with
        bfd_boolean, true with TRUE, false with FALSE.  Simplify comparisons
 2002-11-28  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
 
        * elf32-sh.c (sh_elf_relocate_section): Don't complain about
-        unresolved debugging relocs in dynamic applications.
+       unresolved debugging relocs in dynamic applications.
        * elf64-sh64.c (sh_elf64_relocate_section): Likewise.
 
 2002-11-26  Alan Modra  <amodra@bigpond.net.au>