summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp')
-rw-r--r--lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp b/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
index 7f453a5f602..e68c43d2444 100644
--- a/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
+++ b/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
@@ -936,9 +936,11 @@ void groupAtoms(const PECOFFLinkingContext &ctx, const File &file,
}
}
-static const DefinedAtom *findTLSUsedSymbol(const File &file) {
+static const DefinedAtom *findTLSUsedSymbol(const PECOFFLinkingContext &ctx,
+ const File &file) {
+ StringRef sym = ctx.decorateSymbol("_tls_used");
for (const DefinedAtom *atom : file.defined())
- if (atom->name() == "__tls_used")
+ if (atom->name() == sym)
return atom;
return nullptr;
}
@@ -1030,9 +1032,9 @@ void PECOFFWriter::build(const File &linkedFile) {
section->getVirtualAddress(), section->size());
}
- if (const DefinedAtom *atom = findTLSUsedSymbol(linkedFile)) {
- dataDirectory->setField(DataDirectoryIndex::TLS_TABLE,
- _atomRva[atom], 0x18);
+ if (const DefinedAtom *atom = findTLSUsedSymbol(_ctx, linkedFile)) {
+ dataDirectory->setField(DataDirectoryIndex::TLS_TABLE, _atomRva[atom],
+ 0x18);
}
// Now that we know the size and file offset of sections. Set the file
OpenPOWER on IntegriCloud