2009-04-15 Christophe Lyon <christophe.lyon@st.com>
[external/binutils.git] / bfd / ChangeLog
index a734dfe..6e4b535 100644 (file)
@@ -1,3 +1,415 @@
+2009-04-15  Christophe Lyon  <christophe.lyon@st.com>
+
+       * elf32-arm.c (elf32_arm_final_link_relocate): Don't convert ARM
+       branch to an undef weak symbol into a jump to next instruction if
+       a PLT entry will be created.
+
+2009-04-14  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * coffgen.c (make_a_section_from_file):  Set the backend long
+       section names enable if long section names found on input.
+       * coffcode.h:  Extend long section names documentation to match.
+
+2009-04-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elflink.c (elf_link_add_object_symbols): Warn alternate ELF
+       machine code.
+
+2009-04-07  DJ Delorie  <dj@redhat.com>
+
+       * archures.c: Add bfd_mach_mep_c5.
+       * bfd-in2.h: Likewise.
+       * cpu-mep.c: Add bfd_c5_arch.
+       * elf32-mep.c: Support it.
+
+2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elflink.c (_bfd_elf_section_already_linked): Add `\n' for
+       info->callbacks->einfo.
+       * linker.c (_bfd_generic_section_already_linked): Likewise.
+
+2009-04-06  DJ Delorie  <dj@redhat.com>
+
+       * elf32-h8300.c (elf32_h8_relax_section): Relax MOVA opcodes.
+
+2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * coff-x86_64.c (bfd_pe_print_pdata): Defined to
+       _bfd_pex64_print_pdata only if PE is defined.
+
+       * libpei.h (_bfd_pep_print_x64_pdata): Renamed to ...
+       (_bfd_pex64_print_pdata): This.
+
+       * peXXigen.c (_bfd_pep_print_x64_pdata): Renamed to ...
+       (_bfd_pex64_print_pdata): This.  Defined only if COFF_WITH_pex64
+       is defined.
+
+2009-04-05  Kai Tietz  <kai.tietz@onevision.com>
+
+       * coff-x86_64.c (bfd_pe_print_pdata): Define as
+       _bfd_pep_print_x64_pdata.
+       * libpei.h (_bfd_pep_print_x64_pdata): Add prototype.
+       * peXXigen.c (_bfd_pep_print_x64_pdata): New.
+
+2009-04-02  Sterling Augustine  <sterling@jaw.hq.tensilica.com>
+
+       * elf32-xtensa.c (relax_property_section): Always set r_offset 
+       to zero.
+
+2009-04-02  Christophe Lyon  <christophe.lyon@st.com>
+
+       * elf32-arm.c (elf32_arm_stub_long_branch_v4t_thumb_thumb,
+       elf32_arm_stub_long_branch_v4t_thumb_thumb_pic): Two new long
+       branch stubs.
+       (elf32_arm_stub_type): New enum values for the two new stubs.
+       (arm_type_of_stub): Make use of the two new stubs.
+       (arm_size_one_stub): Handle the two new stubs.
+
+2009-04-01  Matt Thomas  <matt@netbsd.org>
+
+       * elf32-vax.c (elf_vax_check_relocs): Do not put relocations against
+       hidden symbols into the GOT or PLT.GOT.
+       (elf_vax_relocate_section): Do not emit a PCREL reloc 
+       into a shared object if it is against a hidden symbol.
+
+2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * xcofflink.c (xcoff_archive_info): Add contains_shared_object_p
+       and know_contains_shared_object_p.
+       (xcoff_archive_contains_shared_object_p): Add an "info" parameter.
+       Cache the result in the archive_info table.
+       (xcoff_auto_export_p): Add an "info" parameter and update the
+       call to xcoff_archive_contains_shared_object_p.
+       (xcoff_mark_auto_exports): Update accordingly.
+       (xcoff_post_gc_symbol): Likewise.
+
+2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * xcofflink.c (bfd_link_input_bfd): Treat __rtinit as C_HIDEXT
+       rather than C_EXT.
+
+2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * coff-rs6000.c (member_layout): New structure.
+       (archive_iterator): Likewise.
+       (member_layout_init): New function.
+       (archive_iterator_begin): Likewise.
+       (archive_iterator_next): Likewise.
+       (xcoff_write_armap_old): Use the new iterator functions.
+       (do_shared_object_padding): Delete.
+       (xcoff_write_armap_big): Use the new iterator functions.  Simplify
+       handling of arch_info.
+       (xcoff_write_archive_contents_old): Allocate arelt_data in the
+       first loop rather than the second.  Allocate a member header if
+       there isn't one, then work out the stat information and length
+       in the first loop too.  Use the new iterators for the second loop.
+       (xcoff_write_archive_contents_big): Likewise.
+
+2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * bfd-in.h (bfd_xcoff_split_import_path): Declare.
+       (bfd_xcoff_set_archive_import_path): Likewise.
+       * bfd-in2.h: Regenerate.
+       * xcofflink.c: Include libiberty.h.
+       (xcoff_archive_info): New structure.
+       (xcoff_archive_info_hash): New function.
+       (xcoff_archive_info_eq): Likewise.
+       (xcoff_get_archive_info): Likewise.
+       (_bfd_xcoff_bfd_link_hash_table_create): Initialize archive_info.
+       (bfd_xcoff_split_import_path): New function.
+       (bfd_xcoff_set_archive_import_path): Likewise.
+       (xcoff_set_import_path): Move earlier in file.
+       (xcoff_link_add_dynamic_symbols): Set the import path of a non-archive
+       object to the the directory part of the bfd's filename.  Get the
+       import path and filename of an archive object from the archive's
+       xcoff_tdata, initializing it if necessary.  Update use of
+       import_file_id.
+       (bfd_link_input_bfd): Update use of import_file_id.
+       (xcoff_write_global_symbol): Likewise.
+
+2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * xcofflink.c (xcoff_link_hash_table): Moved from include/coff/xcoff.h.
+
+2009-04-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * xcofflink.c (xcoff_link_create_extra_sections): Don't create
+       a .loader section for relocatable links.
+       (xcoff_need_ldrel_p): New function.
+       (xcoff_mark): Use it.
+       (bfd_xcoff_link_count_reloc): Only count loader relocs if there's
+       a loader section.
+       (xcoff_build_ldsym): New function, split out from...
+       (xcoff_build_ldsyms): ...here.  Rename to...
+       (xcoff_post_gc_symbol): ...this.  Only export symbols, and only
+       call xcoff_build_ldsym, if there's a loader section.
+       (xcoff_build_loader_section): New function, extracted verbatim from...
+       (bfd_xcoff_size_dynamic_sections): ...here.  Only call it if
+       there's a loader section.  Only add an __rtinit loader symbol
+       if there's a loader section.  Update after above name change.
+       (xcoff_symbol_section, xcoff_create_ldrel): New functions.
+       (bfd_link_input_bfd): Use xcoff_need_ldrel_p, xcoff_symbol_section
+       and xcoff_create_ldrel.
+       (xcoff_write_global_symbol): Use xcoff_create_ldrel.
+       (xcoff_reloc_link_order): Likewise, but only call it if there's
+       a loader section.  Use xcoff_symbol_section.
+       (_bfd_xcoff_bfd_final_link): Only use fdinfo.ldrel and fdinfo.ldsym
+       if there's a loader section.
+
+2009-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * xcofflink.c (bfd_link_input_bfd): Fix buffer overrun.
+
+2009-04-01  Christophe Lyon  <christophe.lyon@st.com>
+
+       * elf32-arm.c (group_sections): Rewrite loops for better
+       readability.
+
+2009-03-30  DJ Delorie  <dj@redhat.com>
+
+       * elflink.c (elf_link_input_bfd): Don't try to resolve complex
+       relocs when doing a relocatable link.
+
+2009-03-28  Mark Mitchell  <mark@codesourcery.com>
+
+       * coff-arm.c (coff_arm_merge_private_bfd_data): Use "error:", not
+       "ERROR:", in error messages.
+       * cpu-arm.c (bfd_arm_merge_machines): Likewise.
+       * elf-attrs.c (_bfd_elf_merge_object_attributes): Likewise.
+       * elf32-arm.c (tag_cpu_arch_combine): Likewise.
+       (elf32_arm_merge_eabi_attributes): Likewise.
+       (elf32_arm_merge_private_bfd_data): Likewise.
+
+2009-03-27  Nick Clifton  <nickc@redhat.com>
+
+       * section.c (bfd_get_section_contents): Detect and handle the case
+       where a section has the SEC_IN_MEMORY flag set but no actual
+       contents allocated.
+
+2009-03-26  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 6494
+       * elf.c (copy_elf_program_header): Do not check that PT_GNU_RELRO
+       p_filesz and p_memsz are equal.  Use p_memsz as the segment size.
+       (assign_file_positions_for_non_load_sections): Zap PT_GNU_RELRO
+       if we don't find matching PT_LOAD when copying.
+
+2009-03-25  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
+
+       * elf32-crx.c (crx_elf_howto_table): Zero the src_mask field of
+       the reloc descriptions.
+
+2009-03-25  Hans-Peter Nilsson  <hp@axis.com>
+
+       * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
+       <R_CRIS_16_GOT_GD, case R_CRIS_32_GOT_GD>: Handle COMMON symbols.
+       <case R_CRIS_16_TPREL, R_CRIS_32_TPREL>: Ditto.
+
+2009-03-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * cpu-i386.c (bfd_x86_64_arch_intel_syntax): Make it static.
+       (bfd_i386_arch_intel_syntax): Likewise.
+       (i8086_arch): Likewise.
+       (bfd_x86_64_arch): Likewise.
+
+2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
+
+       * elf32-cris.c (cris_elf_relocate_section): <case
+       R_CRIS_16_DTPREL, R_CRIS_32_DTPREL>: Allow use of non-local
+       symbols for non-allocated sections.  Don't check whether to
+       generate R_CRIS_DTPMOD for non-allocated sections.
+       (cris_elf_gc_sweep_hook) <case R_CRIS_32_DTPREL>: Don't
+       handle relocation GC:ing if applied to non-allocated section.
+       (cris_elf_check_relocs): Similar.
+
+       * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GD>
+       <R_CRIS_16_GOT_GD, R_CRIS_32_GOT_GD>: Don't include the TLS size
+       when emitting a known TP offset in the GOT.
+
+2009-03-23  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (synthetic_opd): Delete.
+       (compare_symbols): Look for .opd name rather than section match.
+       (ppc64_elf_get_synthetic_symtab): Likewise.
+
+2009-03-21  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (is_pic_glink_stub): Delete.
+       (is_nonpic_glink_stub): New function.
+       (ppc_elf_get_synthetic_symtab): Check for last non-pic stub rather
+       than first pic one.
+       (struct ppc_elf_link_hash_table <glink_pltresolve>): Comment fix.
+
+2009-03-20  Martin Schwidefsky  <schwidefsky@de.ibm.com>
+           Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * elf32-s390.c (elf_s390_check_relocs): Use the SYMBOL_*
+        macros for visibilty and locality checks.
+       (elf_s390_adjust_dynamic_symbol): Likewise.
+       (allocate_dynrelocs): Likewise.
+       (elf_s390_relocate_section): Likewise.
+       (elf_s390_finish_dynamic_symbol): Likewise.
+       * elf64-s390.c (elf_s390_check_relocs): Likewise.
+       (elf_s390_adjust_dynamic_symbol): Likewise.
+       (allocate_dynrelocs): Likewise.
+       (elf_s390_relocate_section): Likewise.
+       (elf_s390_finish_dynamic_symbol): Likewise.
+
+2009-03-19  Kai Tietz  <kai.tietz@onevision.com>
+
+       * bfd-in2.h: Regenerated.
+       * coffcode.h (sec_to_styp_flags): For pe-coff add SEC_READONLY
+       for debugging sections and map memory read/write dependent on
+       SEC_COFF_NOREAD.
+       (styp_to_sec_flags): Set SEC_COFF_NOREAD for sections
+       without memory read flags set.
+       * section.c: Add SEC_COFF_NOREAD to section flags.
+
+2009-03-19  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * elf32-hppa.c (final_link_relocate): Cast bfd_vma values to long
+       for format string.
+
+2009-03-19  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_find_overlays): Separate error return from
+       "no overlays" return.  If there are overlays, create overlay
+       manager entry symbols here, so that..
+       (spu_elf_build_stubs): ..we don't need to set them up here.
+       Simplify entry symbol tests.
+       * elf32-spu.h (spu_elf_find_overlays): Update prototype.
+
+2009-03-18  Mark Kettenis  <kettenis@gnu.org>
+
+       * elf.c (elfcore_grok_openbsd_procinfo)
+       (elfcore_grok_openbsd_note): New functions.
+       (elf_parse_notes): Handle notes from OpenBSD ELF core files.
+
+2009-03-18  Alan Modra  <amodra@bigpond.net.au>
+
+       * vms-hdr.c: Don't include alloca.h.
+       * elf32-m68hc1x.c: Include alloca-conf.h.
+       * xsym.c: Likewise.
+       * elf64-hppa.c: Likewise.  Remove existing #if's handling alloca.
+       * som.c: Likewise.
+       * Makefile.am: Run "make dep-am".
+       * Makefile.in: Regenerate.
+
+2009-03-17  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_check_relocs): Correct symbian_p test.
+
+2009-03-17  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.h (struct spu_elf_params): ovly_flavour now only 1 bit.
+       Add compact_stub.
+       (emum _ovly_flavour): Delete ovly_compact, ovly_none.
+       * elf32-spu.c (struct spu_link_hash_table): Replace ovly_load and
+       ovly_return fields with ovly_entry[2].  Adjust all users.
+       (spu_elf_find_overlays): Set ovly_entry[1] from __icache_call_handler
+       when soft-icache.
+       (spu_elf_build_stubs): Likewise.
+       (ovl_stub_size): Change arg to spu_elf_params pointer.  Adjust for
+       ovly_flavour changes.  Update all callers.
+       (ovl_stub_size_log2): New function.
+       (build_stub): Handle compact icache stubs.  Use different manager
+       entry point for stubs in non-icache area.
+       (spu_elf_size_stubs): Don't allocate space for indirect branch
+       descriptors.
+       (spu_elf_build_stubs): And don't built them.
+
+2009-03-16  Andrew Stubbs  <ams@codesourcery.com>
+
+       * dwarf2.c (read_section): Always use rawsize, if available.
+
+2009-03-16  Alan Modra  <amodra@bigpond.net.au>
+
+       * simple.c (bfd_simple_get_relocated_section_contents): Use larger
+       of rawsize and size for buffer.
+
+2009-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * elf32-spu.c (spu_elf_check_vma): Do not reset auto_overlay
+       parameter just because fixed sections fit into local store.
+       (spu_elf_auto_overlay): Do not declare as "noreturn".  Skip
+       generating overlays if fixed sections plus reserved stack
+       and heap space fit into local store.
+
+2009-03-15  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (build_stub): Correct icache set_id.
+       (spu_elf_relocate_section): Likewise.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * xcofflink.c (xcoff_link_check_archive_element): Only free the
+       symbol table if it was created by the current call.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * xcofflink.c (xcoff_build_ldsyms): Give imported descriptors
+       class XMC_DS rather than XMC_UA.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * bfd-in.h (bfd_xcoff_size_dynamic_sections): Replace the
+       bfd_boolean export_defineds parameter with an unsigned int
+       auto_export_flags parameter.
+       * bfd-in2.h: Regenerate.
+       * xcofflink.c (xcoff_archive_contains_shared_object_p): New function,
+       split out from xcoff_build_ldsyms.
+       (xcoff_covered_by_expall_p): New function.
+       (xcoff_auto_export_p): New function, split out from xcoff_build_ldsyms
+       but with extra code to handle -bexpfull and -bexpall.
+       (xcoff_mark_auto_exports): New function.
+       (xcoff_build_ldsyms): Use xcoff_auto_export_p to decide whether
+       a function should be automatically exported.
+       (bfd_xcoff_size_dynamic_sections): Replace the export_defineds
+       parameter with an auto_export_flags parameter.  Update ldinfo
+       accordingly.  Use xcoff_mark_auto_exports to mark all automatically-
+       exported symbols.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * xcofflink.c (xcoff_mark_symbol_by_name): New function.
+       (bfd_xcoff_size_dynamic_sections): Use it to mark the entry,
+       init and fini functions.  Do garbage collection for objects
+       without an entry point too.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * coffcode.h (coff_pointerize_aux_hook): Update CSECT_SYM_P to
+       check whether a symbol has csect information.
+       (coff_print_aux): Likewise.
+       * coff-rs6000.c (_bfd_xcoff_swap_aux_in): Handle auxillary csect
+       information for C_AIX_WEAKEXT too.
+       (_bfd_xcoff_swap_aux_out): Likewise.
+       (xcoff_reloc_type_br): Handle defweak symbols too.
+       * coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Handle auxillary csect
+       information for C_AIX_WEAKEXT too.
+       (_bfd_xcoff64_swap_aux_out): Likewise.
+       (xcoff64_reloc_type_br): Handle defweak symbols too.
+       * coffgen.c (coff_print_symbol): Handle auxillary function
+       information for C_AIX_WEAKEXT too.
+       * xcofflink.c (_bfd_xcoff_canonicalize_dynamic_symtab): Set BSF_WEAK
+       instead of BSF_GLOBAL if the L_WEAK flag is set.
+       (xcoff_dynamic_definition_p): New function.
+       (xcoff_link_add_dynamic_symbols): Use it to decide whether ldsym
+       defines h.  Don't change h if ldsym isn't the definition.  Otherwise,
+       always take the symbol class from the ldsym.  Use weak bfd symbol
+       types for weak ldsyms.
+       (xcoff_link_add_symbols): Use CSECT_SYM_P and EXTERN_SYM_P.
+       Fix the check for whether a definition is from a shared object.
+       Allow redefinitions of weak symbols.
+       (xcoff_link_check_ar_symbols): Use EXTERN_SYM_P.
+       (xcoff_keep_symbol_p): Likewise.
+       (bfd_xcoff_size_dynamic_sections): Use CSECT_SYM_P.
+       (xcoff_link_input_bfd): Use CSECT_SYM_P and EXTERN_SYM_P.
+       Add .loader entries for C_AIX_WEAKEXT as well as C_EXT symbols,
+       but mark them as L_WEAK.
+       (xcoff_write_global_symbol): Treat weak symbols as C_AIX_WEAKEXT
+       instead of C_EXT if C_AIX_WEAKEXT == C_WEAKEXT.
+
 2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
 
        * xcofflink.c (xcoff_mark): When walking the relocations,
        and simplify its handling.
        (xcoff_mark): Treat last_symndx as an inclusive value.  Only mark
        symbols with the right csect.  Don't mark rsec when processing
-       relocations against undefined or absolute sections.  
+       relocations against undefined or absolute sections.
        (bfd_xcoff_size_dynamic_sections): Don't check the SEC_MARK flag
        of bfd_und_section_ptr.
        (xcoff_link_input_bfd): Likewise.
        is a function, mark its descriptor and allocate room for global
        linkage code.  Otherwise mark the symbol as implicitly imported.
        Move the code for creating function descriptors from...
-       (xcoff_build_ldsyms): ...here.  Use XCOFF_WAS_UNDEFINED to 
+       (xcoff_build_ldsyms): ...here.  Use XCOFF_WAS_UNDEFINED to
        check for symbols that were implicitly defined.
        (xcoff_mark): Don't count any dynamic relocations against
        function symbols.
 2009-02-03  Carlos O'Donell  <carlos@codesourcery.com>
 
        * configure.in: AC_SUBST pdfdir.
-       * Makefile.am: Add install-pdf, install-pdf-am 
+       * Makefile.am: Add install-pdf, install-pdf-am
        and install-pdf-recursive targets. Define pdfdir.
        * doc/Makefile.am: Define pdf__strip_dir. Add
        install-pdf and install-pdf-am targets.
-       * po/Make-in: Add install-pdf target. 
+       * po/Make-in: Add install-pdf target.
        * configure: Regenerate.
        * Makefile.in: Regenerate
        * doc/Makefile.in: Regenerate.
        update.
        (elf_m68k_remove_got_entry_type): Update.
        (elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
-       (elf_m68k_check_relocs): Handle TLS relocations.  Remove unnecessary 
+       (elf_m68k_check_relocs): Handle TLS relocations.  Remove unnecessary
        update of sgot->size and srelgot->size.
        (elf_m68k_gc_sweep_hook): Update.
        (elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
        high_pc in order to properly sign-extend VMAs.
 
 2009-01-29  Daniel Jacobowitz  <dan@codesourcery.com>
-            Mark Shinwell  <shinwell@codesourcery.com>
-            Catherine Moore  <clm@codesourcery.com>
+           Mark Shinwell  <shinwell@codesourcery.com>
+           Catherine Moore  <clm@codesourcery.com>
 
        * elf-attrs.c, elflink.c, elfxx-mips.c: Correct typos in comments.