[lld][WebAssembly] Fix name of data section in PIC mode
authorSam Clegg <sbc@chromium.org>
Tue, 9 Jul 2019 19:47:32 +0000 (19:47 +0000)
committerSam Clegg <sbc@chromium.org>
Tue, 9 Jul 2019 19:47:32 +0000 (19:47 +0000)
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

index cbf173e..e79d301 100644 (file)
@@ -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."))