Add AIX 64 shared library support and emulation layer for binutils
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index a8d4b87d7154ba101024b2f8f1970da784e5b10e..ab7b7d07d067d0a31cc8c2076e58b8198d21f4da 100644 (file)
@@ -1,9 +1,433 @@
+2002-03-18  Tom Rix  <trix@redhat.com>
+
+       * aix5ppc.core.c : New file for AIX 5 64 bit core support.
+       * bfd-in.h : Add bfd_xcoff_ar_archive_set_magic declaration.
+       * coff-rs6000 (do_pad) : New function for archive padding.
+       (do_copy) : New function for object file copying in archives.
+       (do_shared_object_padding) : New function for padding shared
+       objects to their text section alignment in archives.
+       (bfd_xcoff_ar_achive_set_magic) : Stub.
+       (xcoff_write_armap_big) : Use do_copy and do_pad.
+       (xcoff_write_archive_contents_big) : Use do_shared_object_padding,
+       do_copy and do_pad.
+       * coff64-rs6000.c (xcoff64_write_ojbect_contents) : Use
+       bfd_xcoff_magic_number. 
+       (xcoff64_bad_format_hook) : New function for _bfd_bad_format_hook
+       fop.
+       (xcoff_backend_data_r) : Use xcoff64_bad_format_hook.
+       (bfd_xcoff_aix5_backend_data) : New Aix 5 backend data.
+       (aix5coff64_vec) : New Aix 5 target aix5coff64-rs6000.
+       * rs6000-core.c : Update copyright date.
+       * xcofflink.c (bfd_xcoff_size_dynamic_sections): Check for NULL 
+       csectpp.
+       * coffcode.h (coff_new_section_hook) : Use new accessor macros.
+       (coff_set_arch_mach_hook) : Add Aix 5 U64_TOCMAGIC magic #.
+       (coff_set_flags) : Use bfd_xcoff_magic_number.
+       * libxcoff.h (bfd_xcoff_is_xcoff64): Add U64_TOCMAGIC.
+       * configure.in : Add powerpc-*-aix5 and rs6000-*-aix5 support.
+       * Makefile.am : Same.
+       * config.bfd : Same.
+       * targets.c : Same.
+       * configure : Regnerate.
+       * Makefile.in : Same.
+       * bfd-in2.h : Same.
+
+2002-03-18  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * po/fr.po: Updated version.
+
+2002-03-18  Alan Modra  <amodra@bigpond.net.au>
+
+       * libbfd.c (bfd_write_bigendian_4byte_int): Return true iff success.
+       * libbfd.h: Regenerate.
+       * archive.c (coff_write_armap): Pass on failures from
+       bfd_write_bigendian_4byte_int.
+
+2002-03-14  H.J. Lu <hjl@gnu.org>
+
+       * elflink.h (NAME(bfd_elf,size_dynamic_sections)): Set the BFD
+       error to bfd_error_nonrepresentable_section for reinit_array
+       section in DSO.
+
+2002-03-14  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * coffcode.h (coff_slurp_symbol_table): When adding BSF_WEAK flag,
+       OR it in rather than replacing previously selected flags.
+
+       * elfxx-target.h (TARGET_BIG_SYM): Set ar_max_namelen to 15.
+       (TARGET_LITTLE_SYM): Set ar_max_namelen to 15.
+
+2002-03-14  Alan Modra  <amodra@bigpond.net.au>
+
+       * cpu-mips.c (mips_compatible): New.  Don't check bits_per_word.
+       (N): Use the above.
+       * elflink.h (elf_bfd_final_link): Revert last change.  Instead,
+       ensure reloc size matches before calling elf_link_input_bfd.
+       Add an assert to check reloc size when counting output relocs.
+
+2002-03-14  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * mmo.c (mmo_get_loc): Return NULL rather than false.
+
+2002-03-13  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * po/fr.po: Updated version.
+
+2002-03-13  Alan Modra  <amodra@bigpond.net.au>
+
+       * archures.c (bfd_default_compatible): Test bits_per_word.
+       * cpu-i386.c (i386_compatible): Remove.  Replace occurrences with
+       bfd_default_compatible.
+       * cpu-i370.c (i370_compatible): Likewise.
+       * cpu-sparc.c (sparc_compatible): Likewise.
+       * cpu-h8300.c (compatible): Test in->arch == out->arch.
+
+       * elflink.h: Formatting fixes.
+       (elf_link_output_extsym): Merge undefined and undef weak cases.
+
+       * elflink.h (elf_bfd_final_link): Only call elf_link_input_bfd
+       when word size of input matches output word size.
+
+2002-03-12  Andreas Jaeger  <aj@suse.de>
+
+       * cpu-i386.c (i386_compatible): New.  Use it instead of
+       bfd_default_compatible.
+
+2002-03-07  H.J. Lu  (hjl@gnu.org)
+
+       * coff-sh.c (shcoff_reloc_map): Use bfd_reloc_code_real_type
+       as the type for bfd_reloc_val.
+
+2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * elf-hppa.h (elf_hppa_is_dynamic_loader_symbol): New function.
+       (elf_hppa_relocate_section): Ignore undefined dynamic loader symbols.
+       (elf_hppa_final_link_relocate): Correct relocations for indirect
+       references to local data through the DLT.  Fix .opd creation for
+       local symbols using R_PARISC_LTOFF_FPTR32 and R_PARISC_FPTR64
+       relocations.  Use e_lsel selector for R_PARISC_DLTIND21L,
+       R_PARISC_LTOFF_FPTR21L and R_PARISC_LTOFF_TP21L as per
+       "Processor-Specific ELF for PA_RISC, Version 1.43" document.
+       Similarly, use e_rsel for DLT and LTOFF 'R' relocations.
+       * elf32-hppa.c (final_link_relocate): Revise relocation selectors
+       as per "Processor-Specific ELF for PA_RISC, Version 1.43" document.
+
+2002-03-05  Jakub Jelinek  <jakub@redhat.com>
+
+       * merge.c (_bfd_merge_sections): Don't segfault if there
+       is nothing to merge due to GC.
+
+2002-03-05  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-hppa.c (clobber_millicode_symbols): Remove hack to keep
+       symbols that have been forced local.
+
+       * elflink.h (elf_bfd_final_link): Call elf_link_output_extsym
+       to output forced local syms for non-shared link.
+       (elf_link_output_extsym): Tweak condition for calling backend
+       adjust_dynamic_symbol so that previous behaviour is kept.
+       Whitespace changes throughout file.
+
+2002-03-04  H.J. Lu <hjl@gnu.org>
+
+       * elf.c (bfd_section_from_shdr): Handle special sections,
+       .init_array, .fini_array and .preinit_array.
+       (elf_fake_sections): Likewise.
+
+       * elflink.h (NAME(bfd_elf,size_dynamic_sections)): Create the
+       DT entry only if the section is in output for .init_array,
+       .fini_array and .preinit_array. Complain about .preinit_array
+       section in DSO.
+       (elf_bfd_final_link): Warn zero size for .init_array,
+       .fini_array and .preinit_array sections.
+
+       * elfxx-ia64.c (elfNN_ia64_section_from_shdr): Remove
+       SHT_INIT_ARRAY, SHT_FINI_ARRAY and SHT_PREINIT_ARRAY.
+       (elfNN_ia64_fake_sections): Remove .init_array, .fini_array and
+       .preinit_array.
+
+2002-03-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * configure.in (WIN32LIBADD): Don't eval PICFLAG assignment.
+       * configure: Regenerate.
+
+2002-03-02  Tom Rix  <trix@redhat.com>
+
+       * coff64-rs6000.c (xcoff64_howto_table): Replace howto types with
+       symbolic equiv.
+       * coff-rs6000.c (xcoff_howto_table): Same.
+
+2002-03-01  David Mosberger  <davidm@hpl.hp.com>
+
+       * elflink.h (size_dynamic_sections): If section named
+       ".preinit_array" exists, create DT_PREINIT_ARRAY and
+       DT_PREINIT_ARRAYSZ entries in dynamic table.  Analogously for
+       ".init_array" and ".fini_array".
+       (elf_bfd_final_link): Handle DT_PREINIT_ARRAYSZ, DT_INIT_ARRAYSZ,
+       DT_FINI_ARRAYSZ, DT_PREINIT_ARRAY, DT_INIT_ARRAY, and
+       DT_FINI_ARRAY.
+
+2002-02-26  Andrew Macleod  <amacleod@cygnus.com>
+
+       * elflink.h (elf_bfd_final_link): Don't crash on SHN_UNDEF local
+       dynsyms.
+
+2002-02-25  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-hppa.h: Update copyright date.
+
+       * elf64-ppc.c (ppc64_elf_check_relocs): Warning fix.
+       (ppc64_elf_relocate_section): Don't generate power4 style branch
+       hints for *_BRTAKEN and *_BRNTAKEN relocs.
+
+2002-02-22  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf64-sh64.c (sh_elf64_relocate_section): Fix a typo from my
+       last patch.
+       * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
+
+2002-02-21  Andreas Jaeger  <aj@suse.de>
+
+       * elf64-x86-64.c: Major rework that introduces all recent changes
+       to the x86-64 backend.  Get a closer match to elf32-i386.
+       (struct elf64_x86_64_dyn_relocs): Rename from
+       elf64_x86_64_pcrel_relocs_copied, add additional fields.  Change
+       all users.
+       (struct elf64_x86_64_link_hash_table): Add short cuts to some
+       sections.
+       (link_hash_newfunc): Rename from elf64_x86_64_link_hash_newfunc,
+       remove casts, initialize new hash members.
+       (create_got_section): New.
+       (elf64_x86_64_create_dynamic_sections): New.
+       (elf64_x86_64_copy_indirect_symbol): New.
+       (elf64_x86_64_check_relocs): Don't allocate space for dynamic
+       relocs, .got or .relgot here but do it in allocate_dynrelocs.
+       Reference count possible .plt and .got entries.  Don't test input
+       section SEC_READONLY here to try to avoid copy relocs, and keep
+       dyn_relocs regardless of ELF_LINK_NON_GOT_REF.  Don't set
+       DF_TEXTREL here.  Delay setting of variables until needed.  Cache
+       pointer to "sreloc" section in elf_section_data. Tweak condition
+       under which .got created.  Report files with bad relocation
+       section names.
+       (elf64_x86_64_gc_sweep_hook): Sweep dyn_relocs and local_dynrel.
+       Reference count possible .plt entries.  Don't deallocate .got and
+       .relgot space here.
+       (elf64_x86_64_adjust_dynamic_symbol): Handle nocopyreloc.  Don't
+       do copy reloc processing for weakdefs.  Remove redundant casts and
+       aborts.  Delay setting of vars until needed.  Move creation of
+       dynamic symbols and allocation of .plt and .rela.plt to
+       allocate_dynrelocs.  Replace BFD_ASSERT with abort.
+       (WILL_CALL_FINISH_DYNAMIC_SYMBOL): New.
+       (allocate_dynrelocs): New.
+       (readonly_dynrelocs): New.
+       (elf64_x86_64_size_dynamic_sections): Call readonly_dynrelocs.
+       Allocate space for dyn relocs.  Replace BFD_ASSERT with abort.
+       Zero out the dynamic allocated content space.
+       (elf64_x86_64_discard_copies): Removed.
+       (elf64_x86_64_relocate_section): Make use of dynamic section
+       short-cuts.  Localise vars, and delay setting.  Better error
+       reporting, replace BFD_ASSERT with abort.  Check
+       ELF_LINK_HASH_DEF_DYNAMIC to see if a symbol is not defined in the
+       regular object file and tread the weak definition as the normal
+       one.  Don't discard relocs for undefweak or undefined symbols and
+       check !DEF_REGULAR as well as DEF_DYNAMIC in test for avoided copy
+       relocs.
+       (elf64_x86_64_finish_dynamic_symbol): Don't copy relocs for
+       symbols that have been forced local.  Use same test to decide if
+       we can use a relative reloc for got as relocate_section.  Expand
+       SHN_UNDEF comment.  Move expressions out of function calls.
+       Replace BFD_ASSERT with abort.
+       (bfd_elf64_bfd_final_link): Removed.
+       (elf_backend_copy_indirect_symbol): Define.
+
+2002-02-20  Tom Rix  <trix@redhat.com>
+
+       * coff-rs6000.c (xcoff_howto_table): Add 16 bit R_BA.
+       (_bfd_xcoff_reloc_type_lookup): Use it.
+       * coff64-rs6000.c (xcoff64_howto_table): Same.
+       (xcoff64_reloc_type_lookup): Same.
+
+2002-02-20  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>
+
+       * osf-core.c (osf_core_vec):  OSF/1 (Digital Unix) core files are
+       little endian.
+
+2002-02-19  Martin Schwidefsky  <schwidefsky@de.ibm.com>
+
+       * archures.c (bfd_mach_s390_esa): Rename to bfd_mach_s390_31.
+       (bfd_mach_s390_esame): Rename to bfd_mach_s390_64.
+       * bfd-in2.h: Regenerate.
+       * cpu-s390.c (arch_info_struct): Use renamed architecture defines.
+       Replace architecture name "s390" with "s390:31-bit" and "s390:esame"
+       with "s390:64-bit".
+       * elf32-s390.c (elf_howto_table): Add 32 bit pc relative relocations.
+       (elf_s390_reloc_type_lookup): Likewise.
+       (elf_s390_check_relocs): Likewise.
+       (elf_s390_gc_sweep_hook): Likewise.
+       (elf_s390_relocate_section): Likewise.
+       (elf_s390_object_p): Use renamed architecture define.
+       * elf64-s390.c (elf_s390_object_p): Use renamed architecture define.
+
+2002-02-19  Frank Ch. Eigler  <fche@redhat.com>
+
+       * syms.c (stt[]): Sorted.  Added .init/.fini -> "t" mapping.
+
+2002-02-19  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Enable
+       absptr -> pcrel optimization for shared libs.
+       Only create minimal .eh_frame_hdr if absptr FDE encoding in shared
+       library cannot be converted to pcrel.
+       (_bfd_elf_eh_frame_section_offset): Return -2 if making absptr
+       relative.
+       * elf32-i386.c (elf_i386_relocate_section): If
+       _bfd_elf_section_offset returned -2, skip, but make sure the
+       relocation is installed.
+       * elf32-arm.h (elf32_arm_final_link_relocate): Likewise.
+       * elf32-cris.c (cris_elf_relocate_section): Likewise.
+       * elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
+       * elf32-i370.c (i370_elf_relocate_section): Likewise.
+       * elf32-m68k.c (elf_m68k_relocate_section): Likewise.
+       * elf32-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.
+       * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
+       * elf64-s390.c (elf_s390_relocate_section): Likewise.
+       * elf64-sh64.c (sh_elf64_relocate_section): Likewise.
+       * elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
+       * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
+       * elf64-alpha.c (elf64_alpha_relocate_section): Handle
+       _bfd_elf_section_offset returning -2 the same way as -1.
+       * elfxx-ia64.c (elfNN_ia64_install_dyn_reloc): Likewise.
+       * elf32-mips.c (mips_elf_create_dynamic_relocation): Add FIXME
+       and BFD_ASSERT.
+       * elf64-mips.c (mips_elf64_create_dynamic_relocation): Likewise.
+
+2002-02-18  Tom Rix  <trix@redhat.com>
+
+       * xcofflink.c (bfd_xcoff_link_gernate_rtinit): Add -brtl support.
+       (bfd_xcoff_size_dynamic_sections): Same.
+       * bfd-in.h (bfd_xcoff_link_generate_rtinit): Same.
+       (bfd_xcoff_size_dynamic_sections): Same.
+       * coff-rs6000.c (xcoff_generate_rtinit): Same.
+       * coff-rs646000.c (xcoff64_generate_rtinit): Same.
+       * libxcoff.h (struct xcoff_backend_data_rec): Same.
+       * xcofflink.c (xcoff_build_ldsyms, xcoff_link_add_symbols): Clean.
+       * bfd-in2.h: Regenerate.
+
+2002-02-18  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (STFD_FR0_0R1, LFD_FR0_0R1, BLR): Define.
+       (struct ppc_link_hash_table): Add sfpr.
+       (ppc64_elf_link_hash_table_create): Init it.
+       (ppc64_elf_create_dynamic_sections): Split creation of .stub and
+       .glink out to..
+       (create_linkage_sections): ..here.  Make .sfpr too.
+       (ppc64_elf_check_relocs): Call create_linkage_sections, and set
+       dynobj early.
+       (MIN_SAVE_FPR, MAX_SAVE_FPR): Define.
+       (ppc64_elf_func_desc_adjust): Look for missing ._savef* and
+       ._restf* functions, and create as needed.
+       (func_desc_adjust): Only force_local for shared libs.
+
+2002-02-18  David O'Brien  <obrien@FreeBSD.org>
+
+       * configure.in: Bump version number post 2.12 branching.
+       * configure: Regenerate.
+
+2002-02-17  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * mmo.c: Correct and improve comments.
+       (mmo_write_chunk): Store trailing byte in bfd buffer; don't
+       zero-pad.  Use input to fill up non-empty bfd buffer.
+       (mmo_flush_chunk): New function.
+       (mmo_write_loc_chunk): Add parameter last_vmap, all callers
+       changed.  Don't emit location specifier if VMA is same as
+       *LAST_VMAP after omitting leading zero contents.  Call
+       mmo_flush_chunk before emitting location specifier.
+       (mmo_write_loc_chunk_list): Call mmo_flush_chunk when finished
+       with mmo_write_loc_chunk calls.
+       (mmo_internal_write_section): Call mmo_flush_chunk after
+       mmo_write_chunk.
+       (mmo_write_symbols_and_terminator): Move :Main to first position
+       in symbol array.  Add faked one if it does not exist if there are
+       other symbols.  Don't add it if there are no symbols at all.  Move
+       out test for value of :Main from symbol loop.  Rename table
+       fakemain to maintable and variable mainsym to fakemain.
+
+2002-02-15  Richard Henderson  <rth@redhat.com>
+
+       * elf64-alpha.c (elf64_alpha_relocate_section) [BRSGP]: A target
+       section with no got matches any got.  Simplify error generaion.
+
+2002-02-15  Alan Modra  <amodra@bigpond.net.au>
+
+       Support arbitrary length fill patterns.
+       * linker.c (bfd_new_link_order): Zero all fields with bfd_zalloc.
+       (_bfd_default_link_order): Remove bfd_fill_link_order code.
+       Call default_data_link_order.
+       (default_fill_link_order): Delete.
+       (default_data_link_order): New function.
+       * elf32-mips.c (_bfd_mips_elf_final_link): Replace occurrences
+       of bfd_fill_link_order with bfd_data_link_order.
+       * elf64-alpha.c (elf64_alpha_final_link): Likewise.
+       * elf64-mips.c (mips_elf64_final_link): Likewise.
+
+       * bfd.c (bfd_scan_vma): Clamp overflows to max bfd_vma value.
+       Correct value returned in "end" for "0x<non-hex>".
+
+2002-02-14  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * cpu-arm.c (processors): Replace 'arch' field with 'mach'.
+       (scan): Test against 'mach' field in info structure.
+
+2002-02-14  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf.c (elf_fake_sections): Use SHT_NOBITS when SEC_NEVER_LOAD.
+
+2002-02-14  Matt Fredette  <fredette@netbsd.org>
+
+       * elf32-m68k.c (elf32_m68k_print_private_bfd_data): Recognize
+       EF_M68000.
+
+2002-02-13  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * elf.c (_bfd_elf_make_section_from_shdr): Do not insist on
+       non-zero physical addresses when adjusting the LMAs of new
+       sections.
+
+2002-02-12  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * elf-hppa.h (elf_hppa_reloc_final_type): New function stripped
+       from _bfd_elf_hppa_gen_reloc_type.
+       (_bfd_elf_hppa_gen_reloc_type): Remove duplicate prototype.
+       * elf32-hppa.h (elf32_hppa_reloc_final_type): Add protptype.
+       * elf32-hppa.c: Include elf32-hppa.h before elf-hppa.h.
+       * elf64-hppa.h (elf64_hppa_reloc_final_type): Add protptype.
+
+2002-02-12  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf-m10300.c (mn10300_elf_relax_section): Skip section before
+       loading its contents if there's nothing to do in it.
+
 2002-02-12  Alan Modra  <amodra@bigpond.net.au>
 
+       * elf64-ppc.c (ppc64_elf_size_stubs): Correct test for crossing
+       64k boundary.
+
        * elf64-ppc.c (ppc64_elf_size_dynamic_sections): Add dynamic
        DT_PPC64_OPD and DT_PPC64_OPDSZ tags.
        (ppc64_elf_finish_dynamic_sections): Set values for them.
 
+2002-02-11  Michael Snyder  <msnyder@redhat.com>
+
+       * elf-bfd.h (elfcore_write_lwpstatus): Add prototype.
+       * elf.c (elfcore_grok_pstatus): Add prototype.
+       (elfcore_grok_lwpstatus): Add prototype.
+       (elfcore_write_lwpstatus): New function.
+       (elfcore_write_pstatus): Fix typo, eliminate unnecessary memcpy.
+
 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
 
        * elf32-sh.c: Added missing prototypes.
        sym check if we find one.
        * elf64-s390.c (elf_s390_size_dynamic_sections): Likewise.
        * elf32-hppa.c (elf32_hppa_size_dynamic_sections): Likewise.
+       * elf32-i386.c (elf_i386_size_dynamic_sections): Likewise.
        * elf32-s390.c (elf_s390_size_dynamic_sections): Likewise.
        (elf_s390_grok_prstatus): Add missing prototype.
 
This page took 0.027091 seconds and 4 git commands to generate.