aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2014-11-13 11:36:57 -0800
committerH.J. Lu <hjl.tools@gmail.com>2014-11-14 16:47:15 -0800
commite88ba8d56975c6d5d7c6ba83fc146ab6e89510d5 (patch)
tree08960c88861c6e04e4c00b611202a772725f012e
parent355e210214ba52d477f25b33de00dbbcfb566c70 (diff)
downloadgdb-e88ba8d56975c6d5d7c6ba83fc146ab6e89510d5.zip
gdb-e88ba8d56975c6d5d7c6ba83fc146ab6e89510d5.tar.gz
gdb-e88ba8d56975c6d5d7c6ba83fc146ab6e89510d5.tar.bz2
Don't make PLT entry for R_X86_64_GOTPLT64
* 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.
-rw-r--r--gold/ChangeLog7
-rw-r--r--gold/x86_64.cc9
2 files changed, 9 insertions, 7 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 5c719fc..ec76ab9 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -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
diff --git a/gold/x86_64.cc b/gold/x86_64.cc
index f58c843..1fb601d 100644
--- a/gold/x86_64.cc
+++ b/gold/x86_64.cc
@@ -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;