summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/ELFObjectWriter.cpp
diff options
context:
space:
mode:
authorNikola Prica <nikola.prica@rt-rk.com>2019-07-10 18:58:05 +0000
committerNikola Prica <nikola.prica@rt-rk.com>2019-07-10 18:58:05 +0000
commitbbfa4cf70b9ac7cc9864fef42240d45bfa8bd681 (patch)
treef18d1567bdaaf5b9fa2e1af574c10303efb3b1b4 /llvm/lib/MC/ELFObjectWriter.cpp
parent7c95925b133f0e2d2bcf2ec570c675866d47d298 (diff)
downloadbcm5719-llvm-bbfa4cf70b9ac7cc9864fef42240d45bfa8bd681.tar.gz
bcm5719-llvm-bbfa4cf70b9ac7cc9864fef42240d45bfa8bd681.zip
Revert "[ELF] Loose a condition for relocation with a symbol"
This reverts commit 8507eca1647118e73435b0ce1de8a1952a021d01. Reveting due to some suspicious failurse in santizer-x86_64-linux. llvm-svn: 365685
Diffstat (limited to 'llvm/lib/MC/ELFObjectWriter.cpp')
-rw-r--r--llvm/lib/MC/ELFObjectWriter.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp
index e20af8de0c3..2c68723a12f 100644
--- a/llvm/lib/MC/ELFObjectWriter.cpp
+++ b/llvm/lib/MC/ELFObjectWriter.cpp
@@ -1396,6 +1396,11 @@ bool ELFObjectWriter::shouldRelocateWithSymbol(const MCAssembler &Asm,
if (Flags & ELF::SHF_MERGE) {
if (C != 0)
return true;
+
+ // It looks like gold has a bug (http://sourceware.org/PR16794) and can
+ // only handle section relocations to mergeable sections if using RELA.
+ if (!hasRelocationAddend())
+ return true;
}
// Most TLS relocations use a got, so they need the symbol. Even those that
OpenPOWER on IntegriCloud