diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2014-11-13 11:36:57 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2014-11-14 16:47:15 -0800 |
commit | e88ba8d56975c6d5d7c6ba83fc146ab6e89510d5 (patch) | |
tree | 08960c88861c6e04e4c00b611202a772725f012e /gold | |
parent | 355e210214ba52d477f25b33de00dbbcfb566c70 (diff) | |
download | fsf-binutils-gdb-e88ba8d56975c6d5d7c6ba83fc146ab6e89510d5.zip fsf-binutils-gdb-e88ba8d56975c6d5d7c6ba83fc146ab6e89510d5.tar.gz fsf-binutils-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.
Diffstat (limited to 'gold')
-rw-r--r-- | gold/ChangeLog | 7 | ||||
-rw-r--r-- | gold/x86_64.cc | 9 |
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; |