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 | bcm5719-llvm-b1b49789d0b4b7514540d8b80aaf12793d42a8e9.tar.gz bcm5719-llvm-b1b49789d0b4b7514540d8b80aaf12793d42a8e9.zip | |
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 d8f03fcc58d..e9b8fe29658 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 |

