summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/ELFObjectWriter.cpp
diff options
context:
space:
mode:
authorRoman Divacky <rdivacky@freebsd.org>2014-01-08 18:50:32 +0000
committerRoman Divacky <rdivacky@freebsd.org>2014-01-08 18:50:32 +0000
commitfb4d390766765f32a7c0cf886003fb68179276d6 (patch)
tree918d77fba2d79077671af2581b0000a596a19c66 /llvm/lib/MC/ELFObjectWriter.cpp
parent656fdd55dd0dffb9177b8008fe030c24300507cb (diff)
downloadbcm5719-llvm-fb4d390766765f32a7c0cf886003fb68179276d6.tar.gz
bcm5719-llvm-fb4d390766765f32a7c0cf886003fb68179276d6.zip
Force emit a relocation for @gnu_indirect_function symbols so that the indirect
resolution works. llvm-svn: 198780
Diffstat (limited to 'llvm/lib/MC/ELFObjectWriter.cpp')
-rw-r--r--llvm/lib/MC/ELFObjectWriter.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp
index 9490a9941ac..f6dbfced540 100644
--- a/llvm/lib/MC/ELFObjectWriter.cpp
+++ b/llvm/lib/MC/ELFObjectWriter.cpp
@@ -1645,7 +1645,7 @@ ELFObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl(const MCAssembler &Asm,
const MCFragment &FB,
bool InSet,
bool IsPCRel) const {
- if (DataA.getFlags() & ELF_STB_Weak)
+ if (DataA.getFlags() & ELF_STB_Weak || MCELF::GetType(DataA) == ELF::STT_GNU_IFUNC)
return false;
return MCObjectWriter::IsSymbolRefDifferenceFullyResolvedImpl(
Asm, DataA, FB,InSet, IsPCRel);
OpenPOWER on IntegriCloud