Set non_ir_ref if a symbol is referenced by a non-shared object
[platform/upstream/binutils.git] / bfd / ChangeLog
index 1454f40..ec62d91 100644 (file)
@@ -1,3 +1,218 @@
+2013-03-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/15323
+       * elf32-i386.c (elf_i386_check_relocs): Set non_ir_ref if a
+       symbol is referenced by a non-shared object. 
+       * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+
+2013-03-28  Joe Seymour  <jseymour@codesourcery.com>
+
+       * elf32-sh.c (sh_elf_relocate_section): Suppress warnings for
+       R_SH_REL32 relocations against undefined weak symbols.
+
+2013-03-28  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (struct ppc_dyn_relocs): New.
+       (ppc64_elf_check_relocs): Separate dynrel counts for local syms
+       into ifunc and non-ifunc.
+       (dec_dynrel_count): Pass in sym rather than sym_sec.  Handle
+       separate ifunc/non-ifunc dynrel counts.
+       (allocate_got): Always use reliplt for ifunc.
+       (allocate_dynrelocs): Likewise.
+       (ppc64_elf_size_dynamic_sections): Likewise.
+       (ppc64_elf_layout_multitoc): Likewise.
+       (ppc64_elf_relocate_section): Likewise.
+
+2013-03-28  Alan Modra  <amodra@gmail.com>
+
+       * elf32-ppc.c (struct ppc_dyn_relocs): New.
+       (ppc_elf_check_relocs): Separate dynrel counts for local syms
+       into ifunc and non-ifunc.
+       (allocate_dynrelocs): Always put ifunc relocs into reliplt.
+       (ppc_elf_size_dynamic_sections): Likewise.
+       (ppc_elf_relocate_section): Likewise.
+
+2013-03-28  Alan Modra  <amodra@gmail.com>
+
+       * elf-bfd.h (enum elf_reloc_type_class): Add reloc_class_ifunc.
+       (struct elf_backend_data <elf_backed_reloc_type_class>): Add
+       bfd_link_info* and asection* params.
+       (_bfd_elf_reloc_type_class): Likewise.
+       * elf.c (_bfd_elf_reloc_type_class): Likewise.
+       * elflink.c (elf_link_sort_cmp2): Sort first on reloc class.
+       (elf_link_sort_relocs): Update elf_backed_reloc_type_class call.
+       * elf32-ppc.c (ppc_elf_reloc_type_class): Return reloc_class_ifunc
+       for any reliplt reloc.  Don't return reloc_class_plt for
+       R_PPC_REL24 and R_PPC_ADDR24.
+       * elf64-ppc.c (allocate_got): Formatting.
+       (ppc64_elf_reloc_type_class): Return reloc_class_ifunc for any
+       reliplt reloc.
+       * elf-m10300.c, * elf32-arm.c, * elf32-bfin.c, * elf32-cr16.c,
+       * elf32-cris.c, * elf32-hppa.c, * elf32-i386.c, * elf32-lm32.c,
+       * elf32-m32r.c, * elf32-m68k.c, * elf32-metag.c, * elf32-nios2.c,
+       * elf32-s390.c, * elf32-sh.c, * elf32-sparc.c, * elf32-tilepro.c,
+       * elf32-vax.c, * elf32-xtensa.c, * elf64-aarch64.c, * elf64-alpha.c,
+       * elf64-hppa.c, * elf64-ia64-vms.c, * elf64-s390.c, * elf64-sparc.c,
+       * elf64-x86-64.c, * elfnn-ia64.c, * elfxx-tilegx.c, * elfxx-tilegx.h:
+       Add extra params to the various reloc_type_class functions.
+
+2013-03-27  Alan Modra  <amodra@gmail.com>
+
+       * elf32-ppc.c (ppc_elf_check_relocs): Set PLT_IFUNC in local got
+       masks for all local ifunc syms.
+       (allocate_dynrelocs): Don't use htab->relgot for ifunc.
+       (ppc_elf_size_dynamic_sections): Likewise.
+       (ppc_elf_relocate_section): Likewise.
+
+2013-03-27  Will Newton  <will.newton@linaro.org>
+
+       * elf32-arm.c (elf32_arm_final_link_relocate): Avoid emitting a
+       dynamic reloc for symbols with dynindx == -1.
+       (allocate_dynrelocs_for_symbol): Avoid allocating space for a
+       dynamic reloc for symbols with dynindx == -1.
+
+2013-03-27  Will Newton  <will.newton@linaro.org>
+
+       * elf32-arm.c (elf32_arm_final_link_relocate): Avoid emitting a
+       dynamic reloc for non-default visibility undefined weaks.
+       (allocate_dynrelocs_for_symbol): Avoid allocating space for a
+       dynamic reloc for non-default visibility undefined weaks.
+
+2013-03-26  Alan Modra  <amodra@gmail.com>
+
+       * elflink.c (_bfd_elf_add_default_symbol): Preserve section
+       over _bfd_elf_merge_symbol calls.
+
+2013-03-26  Alan Modra  <amodra@gmail.com>
+
+       * elflink.c (elf_link_add_object_symbols): Add assertion for
+       common override alignment check code.  Formatting.
+
+2013-03-25  Alan Modra  <amodra@gmail.com>
+
+       * elflink.c (_bfd_elf_merge_symbol): Set old_alignment for
+       usual common symbols as well as for dynamic.  Add poldbfd param.
+       Save old bfd.  Adjust callers.
+       (_bfd_elf_add_default_symbol): Add poldbfd param.  Pass "section"
+       and "value" by value, not pointer.  Adjust caller.
+       (elf_link_add_object_symbols): Combine undef_bfd and old_bfd vars.
+       Delete code to set same.  Use old_bfd and old_alignment from
+       _bfd_elf_merge_symbol instead.  Add default symbol before
+       alignment and size checks.  Wrap overlong lines.
+
+2013-03-25  Alan Modra  <amodra@gmail.com>
+
+       * elflink.c (_bfd_elf_add_default_symbol): Delete "override" param.
+       (elf_link_add_object_symbols): Don't call _bfd_elf_add_default_symbol
+       when override is true.
+
+2013-03-25  Alan Modra  <amodra@gmail.com>
+
+       * elflink.c (_bfd_elf_merge_symbol): Use local var holding value
+       of *sym_hash.
+
+2013-03-25  Alan Modra  <amodra@gmail.com>
+
+       * elflink.c (_bfd_elf_merge_symbol): Don't discard TLS symbols here.
+       Wrap long lines.
+       (elf_link_add_object_symbols): Discard TLS symbols for --just-syms
+       early in symbol loop.
+
+2013-03-25  Alan Modra  <amodra@gmail.com>
+
+       * elf-bfd.h (struct elf_backend_data <merge_symbol>): Update proto.
+       (_bfd_elf_init_reloc_shdr): Delete.
+       * elf.c (_bfd_elf_init_reloc_shdr): Make static.
+       * elf64-x86-64.c (elf_x86_64_merge_symbol): Trim parameters to
+       just what is needed.
+       * elflink.c (_bfd_elf_merge_symbol): Update bed->merge_symbol call.
+
+2013-03-23  Alan Modra  <amodra@gmail.com>
+
+       * elf-bfd.h (_bfd_elf_merge_symbol): Delete declaration.
+       * elflink.c (_bfd_elf_merge_symbol): Make static.
+       * elf32-sh-symbian.c (sh_symbian_relocate_section): Don't call
+       _bfd_elf_merge_symbol, call _bfd_generic_link_add_one_symbol.
+
+2013-03-23  Alan Modra  <amodra@gmail.com>
+
+       PR ld/15270
+       * elflink.c (elf_link_add_object_symbols): Don't set def_regular
+       or ref_regular for BFD_PLUGIN owned syms, or have them affect
+       def_dynamic/ref_dynamic.
+       (_bfd_elf_fix_symbol_flags): Don't set def_regular for BFD_PLUGIN
+       owned syms.
+
+2013-03-22  David S. Miller  <davem@davemloft.net>
+
+       * elfxx-sparc.c (_bfd_sparc_elf_merge_private_bfd_data): Set type of
+       hwcaps attribute.
+
+2013-03-22  Achille Fouilleul  <achille.fouilleul+binutils@gadz.org>
+
+       PR ld/14902
+       * elf32-h8300.c (elf32_h8_relax_delete_bytes): Fix off by one
+       errors adjusting relocs and symbols.
+
+2013-03-21  Michael Schewe  <michael.schewe@gmx.net>
+
+       * elf32-h8300 (h8_relax_section): Add new relaxation of mov
+       @(disp:32,ERx) to mov @(disp:16,ERx).
+       (R_H8_DISP32A16): New reloc.
+       Comments added and corrected.
+       * reloc.c (BFD_RELOC_H8_DISP32A16): New reloc.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
+2013-03-21  Kai Tietz  <ktietz@redhat.com>
+
+       * coffgen.c (coff_real_object_p): Make global.
+       * peicode.h (coff_real_object_p): Add prototype.
+       (FILHDR): Defined for COFF_IMAGE_WITH_PE as
+       external_PEI_IMAGE_hdr structure.
+       (coff_swap_filehdr_in): Handle variable header-size.
+       * peXXigen.c (_bfd_XXi_swap_aouthdr_in): Just handle amount
+       of directory-entiries as specified in pe-header.
+
+2013-03-21  Nick Clifton  <nickc@redhat.com>
+
+       PR sim/15286
+       * elf32-arm.c (bfd_arm_get_mach_from_attributes): Identify XScale,
+       iWMMXt and iWMMXt2 processors from attributes.
+
+2013-03-20  Alan Modra  <amodra@gmail.com>
+
+       * elflink.c (_bfd_elf_make_dynamic_reloc_section): Override
+       sh_type according to is_rela.
+
+2013-03-18  Alan Modra  <amodra@gmail.com>
+
+       PR ld/12549
+       * elflink.c (elf_link_add_object_symbols): Exclude weak refs when
+       considering whether an --as-needed library is needed.
+
+2013-03-14  Tom Tromey  <tromey@redhat.com>
+
+       * opncls.c (bfd_get_debug_link_info): Rename from
+       get_debug_link_info.  Export.  Update comment.
+       (find_separate_debug_file): Update.
+       * bfd-in2.h: Rebuild.
+
+2013-03-08  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
+
+        * elf64-aarch64.c (elf_backend_can_gc_sections): Enable gc-section
+       support.
+        (elf64_aarch64_gc_sweep_hook): Handle GOT, TLS and PLT related
+       relocs.
+
+2013-03-08  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+       * elf-bfd.h (elfcore_write_s390_tdb): Add prototype.
+       * elf.c (elfcore_write_s390_tdb): New function.
+       (elfcore_write_register_note): Call it.
+       (elfcore_grok_s390_tdb): New function.
+       (elfcore_grok_note): Call it.
+
 2013-03-08  Maciej W. Rozycki  <macro@codesourcery.com>
 
        * elfxx-mips.c (mips_elf_allocate_lazy_stub): Correct data type.