summaryrefslogtreecommitdiffstats
path: root/lld/ELF/Writer.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2016-02-16 16:46:31 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2016-02-16 16:46:31 +0000
commitf8b8b7b5d0b43209595be13f3411fa20d365bf8d (patch)
tree1ae0b543fbc83d2e2268a3bc837bd3ff7e5e5872 /lld/ELF/Writer.cpp
parenteab4e686504f718ade24da40650f6be83680e980 (diff)
downloadbcm5719-llvm-f8b8b7b5d0b43209595be13f3411fa20d365bf8d.tar.gz
bcm5719-llvm-f8b8b7b5d0b43209595be13f3411fa20d365bf8d.zip
Don't create multiple .got.plt entries for the same symbol.
We were doing it for ifunc symbols. llvm-svn: 260980
Diffstat (limited to 'lld/ELF/Writer.cpp')
-rw-r--r--lld/ELF/Writer.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp
index 30fec493cc9..6ff50a80aef 100644
--- a/lld/ELF/Writer.cpp
+++ b/lld/ELF/Writer.cpp
@@ -339,7 +339,7 @@ void Writer<ELFT>::scanRelocs(
// to the symbol go through the PLT. This is true even for a local
// symbol, although local symbols normally do not require PLT entries.
if (Body && isGnuIFunc<ELFT>(*Body)) {
- if (Body->isInGot())
+ if (Body->isInPlt())
continue;
Out<ELFT>::Plt->addEntry(Body);
bool CBP = canBePreempted(Body, /*NeedsGot=*/true);
OpenPOWER on IntegriCloud