summaryrefslogtreecommitdiffstats
path: root/lld/ELF
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2015-10-07 18:46:13 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2015-10-07 18:46:13 +0000
commit730c27894a62bf52db434f44fbcac3b1893f6dc9 (patch)
treeff13fe0d8a31354491fa49970c548bc97365fd9e /lld/ELF
parent675f49bbd58ef78c947ac0ba32835051ff33f4e5 (diff)
downloadbcm5719-llvm-730c27894a62bf52db434f44fbcac3b1893f6dc9.tar.gz
bcm5719-llvm-730c27894a62bf52db434f44fbcac3b1893f6dc9.zip
[ELF2] - fix to use PLT/GOT for DSO function calls (X86TargetInfo)
Differential Revision: http://reviews.llvm.org/D13522 llvm-svn: 249588
Diffstat (limited to 'lld/ELF')
-rw-r--r--lld/ELF/Target.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/lld/ELF/Target.cpp b/lld/ELF/Target.cpp
index 56b336face1..8b87c20d7e2 100644
--- a/lld/ELF/Target.cpp
+++ b/lld/ELF/Target.cpp
@@ -56,7 +56,7 @@ bool X86TargetInfo::relocPointsToGot(uint32_t Type) const {
}
bool X86TargetInfo::relocNeedsPlt(uint32_t Type, const SymbolBody &S) const {
- return Type == R_386_PLT32;
+ return Type == R_386_PLT32 || (Type == R_386_PC32 && S.isShared());
}
static void add32le(uint8_t *L, int32_t V) { write32le(L, read32le(L) + V); }
OpenPOWER on IntegriCloud