From 51c2b99eff172595973e98f01d18c762141d2196 Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Tue, 9 Jul 2019 19:47:32 +0000 Subject: [PATCH] [lld][WebAssembly] Fix name of data section in PIC mode This should always have been ".data". Without this we treat the section as a user-defined section in other places (such as the generation of __start/__stop symbols). Differential Revision: https://reviews.llvm.org/D64439 llvm-svn: 365547 --- lld/wasm/Writer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lld/wasm/Writer.cpp b/lld/wasm/Writer.cpp index cbf173e..e79d301 100644 --- a/lld/wasm/Writer.cpp +++ b/lld/wasm/Writer.cpp @@ -304,9 +304,9 @@ void Writer::addSection(OutputSection *Sec) { // gold provide the feature, and used by many programs. static void addStartStopSymbols(const OutputSegment *Seg) { StringRef Name = Seg->Name; - LLVM_DEBUG(dbgs() << "addStartStopSymbols: " << Name << "\n"); if (!isValidCIdentifier(Name)) return; + LLVM_DEBUG(dbgs() << "addStartStopSymbols: " << Name << "\n"); uint32_t Start = Seg->StartVA; uint32_t Stop = Start + Seg->Size; Symtab->addOptionalDataSymbol(Saver.save("__start_" + Name), Start); @@ -601,7 +601,7 @@ static StringRef getOutputDataSegmentName(StringRef Name) { // With PIC code we currently only support a single data segment since // we only have a single __memory_base to use as our base address. if (Config->Pic) - return "data"; + return ".data"; if (!Config->MergeDataSegments) return Name; if (Name.startswith(".text.")) -- 2.7.4