diff options
Diffstat (limited to 'lld/wasm/Writer.cpp')
-rw-r--r-- | lld/wasm/Writer.cpp | 47 |
1 files changed, 1 insertions, 46 deletions
diff --git a/lld/wasm/Writer.cpp b/lld/wasm/Writer.cpp index ea65bc32599..819d4298fef 100644 --- a/lld/wasm/Writer.cpp +++ b/lld/wasm/Writer.cpp @@ -21,8 +21,6 @@ #include "lld/Common/Strings.h" #include "lld/Common/Threads.h" #include "llvm/ADT/DenseSet.h" -#include "llvm/ADT/SmallSet.h" -#include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringMap.h" #include "llvm/BinaryFormat/Wasm.h" #include "llvm/Object/WasmTraits.h" @@ -97,7 +95,6 @@ private: void createRelocSections(); void createLinkingSection(); void createNameSection(); - void createProducersSection(); void writeHeader(); void writeSections(); @@ -330,8 +327,7 @@ void Writer::calculateCustomSections() { StringRef Name = Section->getName(); // These custom sections are known the linker and synthesized rather than // blindly copied - if (Name == "linking" || Name == "name" || Name == "producers" || - Name.startswith("reloc.")) + if (Name == "linking" || Name == "name" || Name.startswith("reloc.")) continue; // .. or it is a debug section if (StripDebug && Name.startswith(".debug_")) @@ -637,43 +633,6 @@ void Writer::createNameSection() { Sub.writeTo(Section->getStream()); } -void Writer::createProducersSection() { - SmallVector<std::pair<std::string, std::string>, 8> Languages; - SmallVector<std::pair<std::string, std::string>, 8> Tools; - SmallVector<std::pair<std::string, std::string>, 8> SDKs; - for (ObjFile *File : Symtab->ObjectFiles) { - const WasmProducerInfo &Info = File->getWasmObj()->getProducerInfo(); - for (auto &Producers : {std::make_pair(&Info.Languages, &Languages), - std::make_pair(&Info.Tools, &Tools), - std::make_pair(&Info.SDKs, &SDKs)}) { - llvm::SmallSet<StringRef, 8> SeenProducers; - for (auto &Producer : *Producers.first) - if (SeenProducers.insert(Producer.first).second) - Producers.second->push_back(Producer); - } - } - int FieldCount = - int(!Languages.empty()) + int(!Tools.empty()) + int(!SDKs.empty()); - if (FieldCount == 0) - return; - SyntheticSection *Section = - createSyntheticSection(WASM_SEC_CUSTOM, "producers"); - auto &OS = Section->getStream(); - writeUleb128(OS, FieldCount, "field count"); - for (auto &Field : {std::make_pair(StringRef("language"), Languages), - std::make_pair(StringRef("processed-by"), Tools), - std::make_pair(StringRef("sdk"), SDKs)}) { - if (Field.second.empty()) - continue; - writeStr(OS, Field.first, "field name"); - writeUleb128(OS, Field.second.size(), "number of entries"); - for (auto &Entry : Field.second) { - writeStr(OS, Entry.first, "producer name"); - writeStr(OS, Entry.second, "producer version"); - } - } -} - void Writer::writeHeader() { memcpy(Buffer->getBufferStart(), Header.data(), Header.size()); } @@ -813,13 +772,9 @@ void Writer::createSections() { createLinkingSection(); createRelocSections(); } - if (!Config->StripDebug && !Config->StripAll) createNameSection(); - if (!Config->StripAll) - createProducersSection(); - for (OutputSection *S : OutputSections) { S->setOffset(FileSize); S->finalizeContents(); |