[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
This commit is contained in:
Sam Clegg 2019-07-09 19:47:32 +00:00
parent 9e77d0c6df
commit 51c2b99eff

View 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."))