Don't make PLT entry for R_X86_64_GOTPLT64
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 13 Nov 2014 19:36:57 +0000 (11:36 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 15 Nov 2014 00:47:15 +0000 (16:47 -0800)
* x86_64.cc (Target_x86_64<size>::Scan::global): Don't make PLT
entry for R_X86_64_GOTPLT64.
(Target_x86_64<size>::Relocate::relocate): Update comments for
R_X86_64_GOTPLT64.

gold/ChangeLog
gold/x86_64.cc

index 5c719fc..ec76ab9 100644 (file)
@@ -1,3 +1,10 @@
+2014-11-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * x86_64.cc (Target_x86_64<size>::Scan::global): Don't make PLT
+       entry for R_X86_64_GOTPLT64.
+       (Target_x86_64<size>::Relocate::relocate): Update comments for
+       R_X86_64_GOTPLT64.
+
 2014-11-06  Evgeniy Dushistov  <dushistov@mail.ru>
 
        * plugin.cc: use lock to searialize calls of Plugin_manager::claim_file
index f58c843..1fb601d 100644 (file)
@@ -2923,11 +2923,6 @@ Target_x86_64<size>::Scan::global(Symbol_table* symtab,
                  }
              }
          }
-       // For GOTPLT64, we also need a PLT entry (but only if the
-       // symbol is not fully resolved).
-       if (r_type == elfcpp::R_X86_64_GOTPLT64
-           && !gsym->final_value_is_known())
-         target->make_plt_entry(symtab, layout, gsym);
       }
       break;
 
@@ -3454,9 +3449,9 @@ Target_x86_64<size>::Relocate::relocate(
       break;
 
     case elfcpp::R_X86_64_GOT64:
-      // The ABI doc says "Like GOT64, but indicates a PLT entry is needed."
-      // Since we always add a PLT entry, this is equivalent.
     case elfcpp::R_X86_64_GOTPLT64:
+      // R_X86_64_GOTPLT64 is obsolete and treated the the same as
+      // GOT64.
       gold_assert(have_got_offset);
       Relocate_functions<size, false>::rela64(view, got_offset, addend);
       break;