diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-04-02 12:15:20 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-04-02 12:15:20 +0000 |
commit | b1b49789d0b4b7514540d8b80aaf12793d42a8e9 (patch) | |
tree | 77bb82baa7110429053d92f0ec99afcbe740f6ce /llvm/lib/MC/ELFObjectWriter.cpp | |
parent | 2dcb5c0a2c3974479d7ca775ca6102737495b40e (diff) | |
download | llvm-b1b49789d0b4b7514540d8b80aaf12793d42a8e9.zip llvm-b1b49789d0b4b7514540d8b80aaf12793d42a8e9.tar.gz llvm-b1b49789d0b4b7514540d8b80aaf12793d42a8e9.tar.bz2 |
Work around gold bug http://sourceware.org/PR16794.
llvm-svn: 205416
Diffstat (limited to 'llvm/lib/MC/ELFObjectWriter.cpp')
-rw-r--r-- | llvm/lib/MC/ELFObjectWriter.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp index d8f03fc..e9b8fe2 100644 --- a/llvm/lib/MC/ELFObjectWriter.cpp +++ b/llvm/lib/MC/ELFObjectWriter.cpp @@ -796,6 +796,11 @@ bool ELFObjectWriter::shouldRelocateWithSymbol(const MCSymbolRefExpr *RefA, 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 |