+2001-10-08 Aldy Hernandez <aldyh@redhat.com>
+
+ * bfd/config.bfd (targ_cpu): Add arm9e-*-elf.
+
+2001-10-06 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * dwarf2.c (comp_unit_find_nearest_line): Check for end of
+ compilation unit.
+
+2001-10-06 Alan Modra <amodra@bigpond.net.au>
+
+ * bfd.c (bfd_assert): Report bfd version.
+ (_bfd_abort): Likewise.
+
+ * elflink.h (elf_link_input_bfd): Don't zero discarded link-once
+ section sym values. Instead replace any relocs against them with
+ relocs against STN_UNDEF, which has a zero value.
+
+ * elf32-arc.c (elf_arc_howto_table): Set partial_inplace for all
+ relocs.
+
+2001-10-05 Jeff Law <law@redhat.com>
+
+ * som.h (som_exec_data): New field "version_id".
+ * som.c (som_object_setup): Record the version_id if it
+ exists.
+ (som_prep_headers): Do not initialize version_id here.
+ (som_finish_writing): Initialize version_id here.
+
+2000-10-05 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+ * elf32-mips.c (elf_mips_howto_table): Fix some relocation howtos
+ according to the MIPS/SGI ELF64 ABI Draft.
+ (mips_elf_sort_hash_table): Typo.
+
+2001-10-04 Alan Modra <amodra@bigpond.net.au>
+
+ * elf32-mips.c (_bfd_mips_elf_copy_indirect_symbol): Comment typo.
+
+ * elf32-mips.c (_bfd_mips_elf_copy_indirect_symbol): Bail out after
+ copying flags if this is a weakdef.
+
+2001-10-04 Alan Modra <amodra@bigpond.net.au>
+
+ * elf-bfd.h (struct elf_link_hash_entry): Reorganise for better
+ packing.
+
+ * elf32-mips.c (mips_elf_record_global_got_symbol): Set got.offset
+ to 1 rather than 0 to avoid confusing copy_indirect_symbol.
+ (mips_elf_sort_hash_table_f): Compare got.offset against 1.
+
+ * Makefile.am (BFD_H_DEPS): Add symcat.h. Ensure everything
+ depends on $(BFD_H) $(BFD_H_DEPS) $(LOCAL_H_DEPS), not just those
+ backends we configure. Run "make dep-am".
+ (install-data-local): Install symcat.h.
+ * dep-in.sed: Remove symcat.h from dependencies.
+ * Makefile.in: Regenerate.
+
+2001-10-03 Vassili Karpov <malc@pulsesoft.com>
+
+ * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Handle nocopyreloc.
+
+2001-10-03 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+ * elf64-mips.c (elf_backend_may_use_rela_p): New define.
+ (elf_backend_default_use_rela_p): New define.
+
+2001-10-03 Alan Modra <amodra@bigpond.net.au>
+
+ * elfxx-ia64.c (elfNN_ia64_hash_copy_indirect): Fix typos in last
+ change.
+
+ * configure.in (AC_OUTPUT <bfd-in3.h>): Remove version.h.
+ * configure: Regenerate.
+ * Makefile.am (BFD_H_FILES): Add version.h.
+ * Makefile.in: Regenerate.
+ * po/SRC-POTFILES.in: Regenerate.
+
+ * elflink.h (elf_fix_symbol_flags): Copy flags to weakdef using
+ elf_backend_copy_indirect_symbol so that backend has a chance to
+ copy other necessary fields.
+ * elf-bfd.h (struct elf_backend_data): Update description of
+ elf_backend_copy_indirect_symbol.
+ * elf.c (_bfd_elf_link_hash_copy_indirect): Bail out after
+ copying flags if this is a weakdef.
+ * elfxx-ia64.c (elfNN_ia64_hash_copy_indirect): Likewise.
+ (elfNN_ia64_aix_add_symbol_hook): Use elf_link_hash_lookup rather
+ than bfd_link_hash_lookup.
+ * elf32-i386 (elf_i386_adjust_dynamic_symbol): Don't do copy
+ reloc processing for weakdefs.
+ * elf32-hppa.c (elf32_hppa_adjust_dynamic_symbol): Likewise.
+ * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Likewise.
+
+2001-10-02 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (ppc64_elf_check_relocs): Use a local var and cast
+ result of ELF64_R_TYPE to enum before using in a switch.
+ (ppc64_elf_gc_mark_hook): Likewise.
+ (ppc64_elf_gc_sweep_hook): Likewise.
+ (ppc64_elf_reloc_type_class): Likewise.
+
+2001-10-02 Alan Modra <amodra@bigpond.net.au>
+
+ * version.h: New file.
+ * bfd-in.h: (BFD_VERSION): Substitute bfd_version.
+ (BFD_VERSION_DATE): Define.
+ (BFD_VERSION_STRING): Define.
+ * configure.in: AC_SUBST bfd_version, bfd_version_date and
+ bfd_version_string.
+ (AC_OUTPUT <bfd-in3.h>): Depend on version.h.
+ * bfd-in2.h: Regenerate.
+ * configure: Regenerate.
+ * Makefile.am: Run "make dep-am".
+ * Makefile.in: Regenerate.
+
+ * bfd-in.h: Include "symcat.h".
+ (CONCAT4): Redefine as for old CAT4.
+ * aout-arm.c: Use equivalent CONCAT* macro in place of CAT* macros.
+ Add warning regarding whitespace.
+ * aout-cris.c: Likewise.
+ * aout-ns32k.c: Likewise.
+ * aout-sparcle.c: Likewise.
+ * aout-tic30.c: Likewise.
+ * aout0.c: Likewise.
+ * armnetbsd.c: Likewise.
+ * demo64.c: Likewise.
+ * elf-bfd.h: Likewise.
+ * gen-aout.c: Likewise.
+ * host-aout.c: Likewise.
+ * hp300bsd.c: Likewise.
+ * hp300hpux.c: Likewise.
+ * i386aout.c: Likewise.
+ * i386bsd.c: Likewise.
+ * i386dynix.c: Likewise.
+ * i386freebsd.c: Likewise.
+ * i386linux.c: Likewise.
+ * i386lynx.c: Likewise.
+ * i386mach3.c: Likewise.
+ * i386netbsd.c: Likewise.
+ * libaout.h: Likewise.
+ * m68k4knetbsd.c: Likewise.
+ * m68klinux.c: Likewise.
+ * m68klynx.c: Likewise.
+ * m68knetbsd.c: Likewise.
+ * m88kmach3.c: Likewise.
+ * mipsbsd.c: Likewise.
+ * newsos3.c: Likewise.
+ * ns32knetbsd.c: Likewise.
+ * pc532-mach.c: Likewise.
+ * pdp11.c: Likewise.
+ * riscix.c: Likewise.
+ * sparclinux.c: Likewise.
+ * sparclynx.c: Likewise.
+ * sparcnetbsd.c: Likewise.
+ * sunos.c: Likewise.
+ * targets.c: Likewise.
+ * vaxnetbsd.c: Likewise.
+ * vms-hdr.c: Likewise.
+
+2001-10-01 Alan Modra <amodra@bigpond.net.au>
+
+ * bfd-in.h: Remove comments regarding generated files.
+ * libbfd-in.h: Likewise.
+ * libcoff-in.h: Likewise.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Likewise.
+ * libcoff.h: Likewise.
+
+2001-09-30 kaz Kojima <kkojima@rr.iij4u.or.jp>
+ Hans-Peter Nilsson <hp@bitrange.com>
+
+ * elf32-sh.c (sh_elf_howto_table, R_SH_REL32): Make
+ partial_inplace, matching assembler output. Set src_mask to
+ all ones.
+ (sh_elf_relocate_section): Delete misplaced comment.
+ For relocatable linking against section symbol, call
+ _bfd_relocate_contents for partial_inplace relocs and adjust
+ rel->r_addend for others.
+ <case R_SH_DIR32, R_SH_REL32>: Fetch partial_inplace addend with
+ bfd_get_32, not at rel->r_addend.
+
+2001-09-30 Alan Modra <amodra@bigpond.net.au>
+
+ * elf.c (_bfd_elf_link_hash_copy_indirect): Set ind refcounts to
+ the old dir refcount, so we indirectly set them to init_refcount.
+ Short-circuit asserts when we've just verified they are true.
+
+2001-09-29 Alan Modra <amodra@bigpond.net.au>
+
+ * section.c (struct sec): Remove kept_section.
+ (STD_SECTION): Remove kept_section initialisation.
+ (bfd_make_section_anyway): Here too.
+ * ecoff.c (bfd_debug_section): Remove kept_section initialisation.
+ * cofflink.c (_bfd_coff_link_input_bfd): Don't test kept_section.
+ * elflink.h (elf_link_input_bfd): Set discarded link-once section
+ symbols to zero, and remove all code involved with kept_section
+ and tracking section symbol values.
+ * bfd-in2.h: Regenerate.
+ * configure.in: Bump version number.
+ * configure: Regenerate.
+
+2001-09-29 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (struct ppc_dyn_relocs): New.
+ (IS_ABSOLUTE_RELOC): Define.
+ (struct ppc_link_hash_entry): New.
+ (struct ppc_link_hash_table): New.
+ (ppc_hash_table): Define.
+ (link_hash_newfunc): New function.
+ (ppc64_elf_link_hash_table_create): New function.
+ (create_got_section): New function.
+ (ppc64_elf_create_dynamic_sections): Call create_got_section. Stash
+ pointers to our dynamic sections in hash table.
+ (ppc64_elf_copy_indirect_symbol): New function.
+ (ppc64_elf_check_relocs): Remove DEBUG code. Use short-cuts to
+ dynamic sections. Localise vars. Modify code for refcounts
+ starting from zero. Don't allocate here, or force symbols dynamic.
+ Don't copy all relocs if shared, select ones we need. Add code
+ to track possible copy relocs for non-shared link.
+ (ppc64_elf_gc_mark_hook): Update comment.
+ (ppc64_elf_gc_sweep_hook): Sweep dynrelocs too.
+ (ppc64_elf_adjust_dynamic_symbol): Remove DEBUG code. Rewrite .plt
+ code for reference counting garbage collection. Don't create .plt
+ entries for functions that don't comply with ABI naming convention,
+ and don't allocate .plt space here. Use short-cuts to dynamic
+ sections. If possible, keep dynamic relocations instead of using
+ copy relocs. Remove confused comments.
+ (ppc_adjust_dynindx): Delete.
+ (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
+ (allocate_dynrelocs): New function.
+ (readonly_dynrelocs): New function.
+ (ppc64_elf_size_dynamic_sections): Rewrite. Allocate local .got
+ space here, and call allocate_dynrelocs to allocate space for
+ global .plt, .got and reloc sections. Use short-cuts to dynamic
+ sections. Call readonly_dynrelocs to determine whether we need
+ DT_TEXTREL. Don't generate section symbols here, the generic
+ ELF linker code does it for us.
+ (ppc64_elf_final_link): Call regular ELF backend linker rather than
+ gc variety, since we do our own .got handling.
+ (ppc64_elf_relocate_section): Remove DEBUG code. Make use of
+ dynamic section short-cuts. Localise vars, and delay setting.
+ Handle unknown relocs in main switch statement. Replace ugly
+ complicated tests for unresolvable relocs with a simple direct
+ scheme using "unresolved_reloc" var. Test ELF_ST_VISIBILITY
+ before allowing an undefined sym in a shared lib. Do R_*_DS tests
+ after main switch, when we've set addend. Do non-addend insn
+ tweaks before main swithc. Ignore input_section->vma when
+ calculating reloc offsets as it's always zero. Rewrite dynamic
+ reloc handling. Consolidate R_*_HA handling. Handle more relocs.
+ (ppc64_elf_finish_dynamic_symbol): Remove DEBUG code. Make use
+ of dynamic section short-cuts. Reorganise .plt handling code.
+ Remove confused comments. Take note of ELF_LINK_FORCED_LOCAL.
+ Move expressions out of swap_reloca_out function calls.
+ (ppc64_elf_reloc_type_class): New function.
+ (ppc64_elf_info_to_howto): Move common expression to local var.
+ (ppc64_elf_finish_dynamic_sections): Remove DEBUG code. Make use
+ of dynamic section short-cuts. Don't fiddle with section syms
+ here as the ELF linker does it for us.
+ (elf_backend_can_refcount): Define.
+ (bfd_elf64_bfd_link_hash_table_create): Define.
+ (elf_backend_copy_indirect_symbol): Define.
+ (elf_backend_reloc_type_class): Define.
+ (elf_backend_*, bfd_elf64_bfd_* defines): Sort.
+
+2001-09-29 Alan Modra <amodra@bigpond.net.au>
+
+ * elf-bfd.h (struct elf_link_local_dynamic_entry): Add init_refcount.
+ (struct elf_backend_data): Add can_refcount.
+ * elf.c (_bfd_elf_link_hash_newfunc): Get rid of a few casts. Set
+ got.refcount and plt.refcount from init_refcount.
+ (_bfd_elf_link_hash_table_init): Set up init_refcount.
+ (_bfd_elf_link_hash_copy_indirect): Reference got/plt.refcount
+ rather than got/plt.offset, and test for <= 0 rather than -1.
+ * elflink.h (size_dynamic_sections): Set init_refcount to -1.
+ * elfxx-target.h (elf_backend_can_refcount): Define.
+ (elfNN_bed): Init can_refcount.
+ * linker.c (_bfd_link_hash_newfunc): Get rid of a few casts.
+ (_bfd_generic_link_hash_newfunc): Likewise.
+ * elf32-cris.c (cris_elf_check_relocs): Modify for refcounts
+ starting from zero.
+ (elf_backend_can_refcount): Define.
+ * elf32-hppa.c (elf32_hppa_check_relocs): Modify for refcounts
+ starting from zero.
+ (elf32_hppa_copy_indirect_symbol): Make static to agree with
+ prototype.
+ (elf_backend_can_refcount): Define.
+ * elf32-i386.c (elf_i386_check_relocs): Modify for refcounts
+ starting from zero.
+ (allocate_dynrelocs): Set plt/got.offset rather than *.refcount.
+ (elf_i386_finish_dynamic_symbol): Expand SHN_UNDEF comment.
+ (elf_i386_finish_dynamic_sections): Use local var so line < 80 chars.
+ (elf_backend_can_refcount): Define.
+ (elf_i386_copy_indirect_symbol): Make static to agree with
+ prototype. Formatting fix.
+ * elf32-m68k.c (elf_m68k_check_relocs): Modify for refcounts
+ starting from zero.
+ (elf_backend_can_refcount): Define.
+ * elf32-ppc.c (ppc_elf_check_relocs): Modify for refcounts
+ starting from zero.
+ (elf_backend_can_refcount): Define.
+ * elf32-s390.c (elf_s390_check_relocs): Modify for refcounts
+ starting from zero.
+ (elf_backend_can_refcount): Define.
+ * elf64-s390.c (elf_s390_check_relocs): Modify for refcounts
+ starting from zero.
+ (elf_backend_can_refcount): Define.
+ * elf64-x86-64.c (elf64_x86_64_check_relocs): Modify for refcounts
+ starting from zero.
+ (elf_backend_can_refcount): Define.
+
+ * som.c (som_write_symbol_strings): Cast current_offset in
+ bfd_seek call to match param type.
+
+2001-09-28 J. Brobecker <brobecker@gnat.com>
+
+ * som.c (som_write_symbol_strings): Fix incorrect type of
+ current_offset to match the function definition. Fixes a build
+ failure on HPUX-11.00.
+
+2001-09-28 Richard Henderson <rth@redhat.com>
+
+ * elfxx-target.h [section_flags]: Add SEC_ARCH_BIT_0, SEC_SMALL_DATA,
+ SEC_MERGE, SEC_STRINGS.
+
+ * section.c (SEC_ARCH_BIT_0): New; replace unused SEC_BALIGN.
+ * bfd-in2.h: Rebuild.
+
2001-09-28 Alan Modra <amodra@bigpond.net.au>
+ * elf64-x86-64.c (elf64_x86_64_reloc_type_lookup): Don't map bfd
+ reloc code using x86_64_reloc_map.
+
* elf32-hppa.c (elf32_hppa_check_relocs): Update comment since we
no longer allocate here. Localise some vars to blocks where they
are used.