x86: Don't check has_non_got_reloc
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 9 Sep 2017 14:19:36 +0000 (07:19 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 9 Sep 2017 14:20:58 +0000 (07:20 -0700)
_bfd_x86_elf_link_symbol_references_local should depend only on symbol
references, not relocations, to work in check_relocs.

* elfxx-x86.c (_bfd_x86_elf_link_symbol_references_local): Don't
check has_non_got_reloc.

bfd/ChangeLog
bfd/elfxx-x86.c

index 9549e84e1f16bf303bba3a44aab7c585a28ba595..b3eae2e82e3f976b8e1f1edaaa5541e21bbaef12 100644 (file)
@@ -1,3 +1,8 @@
+2017-09-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elfxx-x86.c (_bfd_x86_elf_link_symbol_references_local): Don't
+       check has_non_got_reloc.
+
 2017-09-09  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR ld/22115
index e056c3c5ff4d9eedbe18c20bd73d3a62a0a04cb9..20b07f0806f003ec38ec181413b77ca1c744f1ae 100644 (file)
@@ -1701,15 +1701,14 @@ _bfd_x86_elf_link_symbol_references_local (struct bfd_link_info *info,
      by linker version script.  A weak undefined symbol is forced local
      if
      1. It has non-default visibility.  Or
-     2. When building executable, it has non-GOT/non-PLT relocations
-       in text section or there is no dynamic linker.  Or
+     2. When building executable, there is no dynamic linker.  Or
      3. or "-z nodynamic-undefined-weak" is used.
    */
   if (SYMBOL_REFERENCES_LOCAL (info, h)
       || (h->root.type == bfd_link_hash_undefweak
          && (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
              || (bfd_link_executable (info)
-                 && (htab->interp == NULL || eh->has_non_got_reloc))
+                 && htab->interp == NULL)
              || info->dynamic_undefined_weak == 0))
       || ((h->def_regular || ELF_COMMON_DEF_P (h))
          && h->versioned == unversioned
This page took 0.03971 seconds and 4 git commands to generate.