diff options
Diffstat (limited to 'lld/lib')
19 files changed, 34 insertions, 56 deletions
diff --git a/lld/lib/Core/LinkingContext.cpp b/lld/lib/Core/LinkingContext.cpp index c6656b93591..30eda6bb346 100644 --- a/lld/lib/Core/LinkingContext.cpp +++ b/lld/lib/Core/LinkingContext.cpp @@ -37,9 +37,9 @@ std::error_code LinkingContext::writeFile(const File &linkedFile) const { return this->writer().writeFile(linkedFile, _outputPath); } -bool LinkingContext::createImplicitFiles( - std::vector<std::unique_ptr<File> > &result) { - return this->writer().createImplicitFiles(result); +void LinkingContext::createImplicitFiles( + std::vector<std::unique_ptr<File>> &result) { + this->writer().createImplicitFiles(result); } std::unique_ptr<File> LinkingContext::createEntrySymbolFile() const { diff --git a/lld/lib/Core/Writer.cpp b/lld/lib/Core/Writer.cpp index 39bcc9e6852..93e6438a28f 100644 --- a/lld/lib/Core/Writer.cpp +++ b/lld/lib/Core/Writer.cpp @@ -16,8 +16,4 @@ Writer::Writer() { Writer::~Writer() { } - -bool Writer::createImplicitFiles(std::vector<std::unique_ptr<File> > &) { - return true; -} } // end namespace lld diff --git a/lld/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h b/lld/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h index 4e8027162d3..f2e6e886f7a 100644 --- a/lld/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h +++ b/lld/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h @@ -24,7 +24,7 @@ public: protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; + void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; void finalizeDefaultAtomValues() override { return DynamicLibraryWriter<ELFT>::finalizeDefaultAtomValues(); @@ -53,13 +53,12 @@ AArch64DynamicLibraryWriter<ELFT>::AArch64DynamicLibraryWriter( _ctx(ctx), _layout(layout) {} template <class ELFT> -bool AArch64DynamicLibraryWriter<ELFT>::createImplicitFiles( +void AArch64DynamicLibraryWriter<ELFT>::createImplicitFiles( std::vector<std::unique_ptr<File>> &result) { DynamicLibraryWriter<ELFT>::createImplicitFiles(result); _gotFile->addAtom(*new (_gotFile->_alloc) GlobalOffsetTableAtom(*_gotFile)); _gotFile->addAtom(*new (_gotFile->_alloc) DynamicAtom(*_gotFile)); result.push_back(std::move(_gotFile)); - return true; } } // namespace elf diff --git a/lld/lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.h b/lld/lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.h index 297de0026df..321deffb135 100644 --- a/lld/lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.h +++ b/lld/lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.h @@ -23,7 +23,7 @@ public: protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; + void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; void finalizeDefaultAtomValues() override { return ExecutableWriter<ELFT>::finalizeDefaultAtomValues(); @@ -52,14 +52,13 @@ AArch64ExecutableWriter<ELFT>::AArch64ExecutableWriter( _ctx(ctx), _layout(layout) {} template <class ELFT> -bool AArch64ExecutableWriter<ELFT>::createImplicitFiles( +void AArch64ExecutableWriter<ELFT>::createImplicitFiles( std::vector<std::unique_ptr<File>> &result) { ExecutableWriter<ELFT>::createImplicitFiles(result); _gotFile->addAtom(*new (_gotFile->_alloc) GlobalOffsetTableAtom(*_gotFile)); if (_ctx.isDynamic()) _gotFile->addAtom(*new (_gotFile->_alloc) DynamicAtom(*_gotFile)); result.push_back(std::move(_gotFile)); - return true; } } // namespace elf diff --git a/lld/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h b/lld/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h index e6210cc638b..9372c9c69ce 100644 --- a/lld/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h +++ b/lld/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h @@ -29,7 +29,7 @@ public: protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; + void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; void finalizeDefaultAtomValues() override; @@ -57,10 +57,9 @@ ARMExecutableWriter<ELFT>::ARMExecutableWriter(ARMLinkingContext &ctx, : ExecutableWriter<ELFT>(ctx, layout), _ctx(ctx), _armLayout(layout) {} template <class ELFT> -bool ARMExecutableWriter<ELFT>::createImplicitFiles( +void ARMExecutableWriter<ELFT>::createImplicitFiles( std::vector<std::unique_ptr<File>> &result) { ExecutableWriter<ELFT>::createImplicitFiles(result); - return true; } template <class ELFT> diff --git a/lld/lib/ReaderWriter/ELF/DynamicLibraryWriter.h b/lld/lib/ReaderWriter/ELF/DynamicLibraryWriter.h index 6cfa14ca7cc..9014bb37cc5 100644 --- a/lld/lib/ReaderWriter/ELF/DynamicLibraryWriter.h +++ b/lld/lib/ReaderWriter/ELF/DynamicLibraryWriter.h @@ -29,7 +29,7 @@ public: protected: void buildDynamicSymbolTable(const File &file) override; void addDefaultAtoms() override; - bool createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; + void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; void finalizeDefaultAtomValues() override; protected: @@ -66,13 +66,12 @@ template <class ELFT> void DynamicLibraryWriter<ELFT>::addDefaultAtoms() { /// \brief Hook in lld to add CRuntime file template <class ELFT> -bool DynamicLibraryWriter<ELFT>::createImplicitFiles( +void DynamicLibraryWriter<ELFT>::createImplicitFiles( std::vector<std::unique_ptr<File> > &result) { // Add the default atoms as defined by executables DynamicLibraryWriter<ELFT>::addDefaultAtoms(); OutputELFWriter<ELFT>::createImplicitFiles(result); result.push_back(std::move(_runtimeFile)); - return true; } template <class ELFT> diff --git a/lld/lib/ReaderWriter/ELF/ExecutableWriter.h b/lld/lib/ReaderWriter/ELF/ExecutableWriter.h index 94a32efd962..1c9b9e353f7 100644 --- a/lld/lib/ReaderWriter/ELF/ExecutableWriter.h +++ b/lld/lib/ReaderWriter/ELF/ExecutableWriter.h @@ -29,7 +29,7 @@ public: protected: void buildDynamicSymbolTable(const File &file) override; void addDefaultAtoms() override; - bool createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; + void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; void finalizeDefaultAtomValues() override; void createDefaultSections() override; @@ -100,13 +100,12 @@ void ExecutableWriter<ELFT>::addDefaultAtoms() { /// \brief Hook in lld to add CRuntime file template <class ELFT> -bool ExecutableWriter<ELFT>::createImplicitFiles( +void ExecutableWriter<ELFT>::createImplicitFiles( std::vector<std::unique_ptr<File> > &result) { // Add the default atoms as defined by executables ExecutableWriter<ELFT>::addDefaultAtoms(); OutputELFWriter<ELFT>::createImplicitFiles(result); result.push_back(std::move(_runtimeFile)); - return true; } template <class ELFT> void ExecutableWriter<ELFT>::createDefaultSections() { diff --git a/lld/lib/ReaderWriter/ELF/Hexagon/HexagonDynamicLibraryWriter.h b/lld/lib/ReaderWriter/ELF/Hexagon/HexagonDynamicLibraryWriter.h index dcef3bd3bdf..c18711290d4 100644 --- a/lld/lib/ReaderWriter/ELF/Hexagon/HexagonDynamicLibraryWriter.h +++ b/lld/lib/ReaderWriter/ELF/Hexagon/HexagonDynamicLibraryWriter.h @@ -26,7 +26,7 @@ public: protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; + void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; void finalizeDefaultAtomValues() override; @@ -54,13 +54,12 @@ HexagonDynamicLibraryWriter<ELFT>::HexagonDynamicLibraryWriter( _runtimeFile(new HexagonRuntimeFile<ELFT>(ctx)) {} template <class ELFT> -bool HexagonDynamicLibraryWriter<ELFT>::createImplicitFiles( +void HexagonDynamicLibraryWriter<ELFT>::createImplicitFiles( std::vector<std::unique_ptr<File>> &result) { DynamicLibraryWriter<ELFT>::createImplicitFiles(result); // Add the default atoms as defined for hexagon addDefaultAtoms(); result.push_back(std::move(_runtimeFile)); - return true; } template <class ELFT> diff --git a/lld/lib/ReaderWriter/ELF/Hexagon/HexagonExecutableWriter.h b/lld/lib/ReaderWriter/ELF/Hexagon/HexagonExecutableWriter.h index d89fbaf0b94..4d3ce897e67 100644 --- a/lld/lib/ReaderWriter/ELF/Hexagon/HexagonExecutableWriter.h +++ b/lld/lib/ReaderWriter/ELF/Hexagon/HexagonExecutableWriter.h @@ -26,7 +26,7 @@ public: protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; + void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; void finalizeDefaultAtomValues() override; @@ -57,13 +57,12 @@ HexagonExecutableWriter<ELFT>::HexagonExecutableWriter( _runtimeFile(new HexagonRuntimeFile<ELFT>(ctx)) {} template <class ELFT> -bool HexagonExecutableWriter<ELFT>::createImplicitFiles( +void HexagonExecutableWriter<ELFT>::createImplicitFiles( std::vector<std::unique_ptr<File>> &result) { ExecutableWriter<ELFT>::createImplicitFiles(result); // Add the default atoms as defined for hexagon addDefaultAtoms(); result.push_back(std::move(_runtimeFile)); - return true; } template <class ELFT> diff --git a/lld/lib/ReaderWriter/ELF/Mips/MipsDynamicLibraryWriter.h b/lld/lib/ReaderWriter/ELF/Mips/MipsDynamicLibraryWriter.h index 831d82f93f6..12e04a62d6a 100644 --- a/lld/lib/ReaderWriter/ELF/Mips/MipsDynamicLibraryWriter.h +++ b/lld/lib/ReaderWriter/ELF/Mips/MipsDynamicLibraryWriter.h @@ -30,7 +30,7 @@ public: protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; + void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; void finalizeDefaultAtomValues() override; void createDefaultSections() override; @@ -58,11 +58,10 @@ MipsDynamicLibraryWriter<ELFT>::MipsDynamicLibraryWriter( _targetLayout(layout) {} template <class ELFT> -bool MipsDynamicLibraryWriter<ELFT>::createImplicitFiles( +void MipsDynamicLibraryWriter<ELFT>::createImplicitFiles( std::vector<std::unique_ptr<File>> &result) { DynamicLibraryWriter<ELFT>::createImplicitFiles(result); result.push_back(std::move(_writeHelper.createRuntimeFile())); - return true; } template <class ELFT> diff --git a/lld/lib/ReaderWriter/ELF/Mips/MipsExecutableWriter.h b/lld/lib/ReaderWriter/ELF/Mips/MipsExecutableWriter.h index 8cc1285c4cd..10cb8129304 100644 --- a/lld/lib/ReaderWriter/ELF/Mips/MipsExecutableWriter.h +++ b/lld/lib/ReaderWriter/ELF/Mips/MipsExecutableWriter.h @@ -28,7 +28,7 @@ protected: void buildDynamicSymbolTable(const File &file) override; // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; + void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; void finalizeDefaultAtomValues() override; void createDefaultSections() override; @@ -110,11 +110,10 @@ void MipsExecutableWriter<ELFT>::buildDynamicSymbolTable(const File &file) { } template <class ELFT> -bool MipsExecutableWriter<ELFT>::createImplicitFiles( +void MipsExecutableWriter<ELFT>::createImplicitFiles( std::vector<std::unique_ptr<File>> &result) { ExecutableWriter<ELFT>::createImplicitFiles(result); result.push_back(std::move(_writeHelper.createRuntimeFile())); - return true; } template <class ELFT> diff --git a/lld/lib/ReaderWriter/ELF/OutputELFWriter.h b/lld/lib/ReaderWriter/ELF/OutputELFWriter.h index 42fb54f96ce..fbb74af904c 100644 --- a/lld/lib/ReaderWriter/ELF/OutputELFWriter.h +++ b/lld/lib/ReaderWriter/ELF/OutputELFWriter.h @@ -133,7 +133,7 @@ protected: virtual void addDefaultAtoms(); // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; + void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; // Finalize the default atom values virtual void finalizeDefaultAtomValues(); @@ -363,7 +363,7 @@ template <class ELFT> void OutputELFWriter<ELFT>::addDefaultAtoms() { } template <class ELFT> -bool OutputELFWriter<ELFT>::createImplicitFiles( +void OutputELFWriter<ELFT>::createImplicitFiles( std::vector<std::unique_ptr<File>> &result) { // Add the virtual archive to resolve undefined symbols. // The file will be added later in the linking context. @@ -375,7 +375,6 @@ bool OutputELFWriter<ELFT>::createImplicitFiles( llvm::make_unique<DynamicSymbolFile<ELFT>>(ctx, std::move(callback))); // Add script defined symbols result.push_back(std::move(_scriptFile)); - return true; } template <class ELFT> diff --git a/lld/lib/ReaderWriter/ELF/X86/X86DynamicLibraryWriter.h b/lld/lib/ReaderWriter/ELF/X86/X86DynamicLibraryWriter.h index e81e5fe7395..179a4845dcd 100644 --- a/lld/lib/ReaderWriter/ELF/X86/X86DynamicLibraryWriter.h +++ b/lld/lib/ReaderWriter/ELF/X86/X86DynamicLibraryWriter.h @@ -22,7 +22,7 @@ public: protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; + void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; void finalizeDefaultAtomValues() override { return DynamicLibraryWriter<ELFT>::finalizeDefaultAtomValues(); @@ -51,13 +51,12 @@ X86DynamicLibraryWriter<ELFT>::X86DynamicLibraryWriter( _ctx(ctx), _layout(layout) {} template <class ELFT> -bool X86DynamicLibraryWriter<ELFT>::createImplicitFiles( +void X86DynamicLibraryWriter<ELFT>::createImplicitFiles( std::vector<std::unique_ptr<File>> &result) { DynamicLibraryWriter<ELFT>::createImplicitFiles(result); _gotFile->addAtom(*new (_gotFile->_alloc) GlobalOffsetTableAtom(*_gotFile)); _gotFile->addAtom(*new (_gotFile->_alloc) DynamicAtom(*_gotFile)); result.push_back(std::move(_gotFile)); - return true; } } // namespace elf diff --git a/lld/lib/ReaderWriter/ELF/X86/X86ExecutableWriter.h b/lld/lib/ReaderWriter/ELF/X86/X86ExecutableWriter.h index 263fd357c90..4b50634a2ee 100644 --- a/lld/lib/ReaderWriter/ELF/X86/X86ExecutableWriter.h +++ b/lld/lib/ReaderWriter/ELF/X86/X86ExecutableWriter.h @@ -22,7 +22,7 @@ public: protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; + void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; void finalizeDefaultAtomValues() override { return ExecutableWriter<ELFT>::finalizeDefaultAtomValues(); @@ -43,10 +43,9 @@ X86ExecutableWriter<ELFT>::X86ExecutableWriter(X86LinkingContext &ctx, : ExecutableWriter<ELFT>(ctx, layout), _ctx(ctx), _layout(layout) {} template <class ELFT> -bool X86ExecutableWriter<ELFT>::createImplicitFiles( +void X86ExecutableWriter<ELFT>::createImplicitFiles( std::vector<std::unique_ptr<File>> &result) { ExecutableWriter<ELFT>::createImplicitFiles(result); - return true; } } // namespace elf diff --git a/lld/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h b/lld/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h index 012e7c82ef0..49861ff4d0f 100644 --- a/lld/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h +++ b/lld/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h @@ -24,7 +24,7 @@ public: protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; + void createImplicitFiles(std::vector<std::unique_ptr<File>> &) override; void finalizeDefaultAtomValues() override { return DynamicLibraryWriter::finalizeDefaultAtomValues(); @@ -48,13 +48,12 @@ X86_64DynamicLibraryWriter::X86_64DynamicLibraryWriter( X86_64LinkingContext &ctx, X86_64TargetLayout &layout) : DynamicLibraryWriter(ctx, layout), _gotFile(new GOTFile(ctx)) {} -bool X86_64DynamicLibraryWriter::createImplicitFiles( +void X86_64DynamicLibraryWriter::createImplicitFiles( std::vector<std::unique_ptr<File>> &result) { DynamicLibraryWriter::createImplicitFiles(result); _gotFile->addAtom(*new (_gotFile->_alloc) GlobalOffsetTableAtom(*_gotFile)); _gotFile->addAtom(*new (_gotFile->_alloc) DynamicAtom(*_gotFile)); result.push_back(std::move(_gotFile)); - return true; } } // namespace elf diff --git a/lld/lib/ReaderWriter/ELF/X86_64/X86_64ExecutableWriter.h b/lld/lib/ReaderWriter/ELF/X86_64/X86_64ExecutableWriter.h index ca86035a91e..a0694964a74 100644 --- a/lld/lib/ReaderWriter/ELF/X86_64/X86_64ExecutableWriter.h +++ b/lld/lib/ReaderWriter/ELF/X86_64/X86_64ExecutableWriter.h @@ -23,7 +23,7 @@ public: protected: // Add any runtime files and their atoms to the output - bool + void createImplicitFiles(std::vector<std::unique_ptr<File>> &result) override { ExecutableWriter::createImplicitFiles(result); _gotFile->addAtom(*new (_gotFile->_alloc) @@ -31,7 +31,6 @@ protected: if (_ctx.isDynamic()) _gotFile->addAtom(*new (_gotFile->_alloc) DynamicAtom(*_gotFile)); result.push_back(std::move(_gotFile)); - return true; } void finalizeDefaultAtomValues() override { diff --git a/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp b/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp index ef28c487593..9b5837cd45f 100644 --- a/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp +++ b/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp @@ -685,7 +685,7 @@ uint32_t MachOLinkingContext::dylibCompatVersion(StringRef installName) const { return 0x1000; // 1.0 } -bool MachOLinkingContext::createImplicitFiles( +void MachOLinkingContext::createImplicitFiles( std::vector<std::unique_ptr<File> > &result) { // Add indirect dylibs by asking each linked dylib to add its indirects. // Iterate until no more dylibs get loaded. @@ -699,7 +699,7 @@ bool MachOLinkingContext::createImplicitFiles( } // Let writer add output type specific extras. - return writer().createImplicitFiles(result); + writer().createImplicitFiles(result); } diff --git a/lld/lib/ReaderWriter/MachO/WriterMachO.cpp b/lld/lib/ReaderWriter/MachO/WriterMachO.cpp index de1c0e38063..35dce8fbaf2 100644 --- a/lld/lib/ReaderWriter/MachO/WriterMachO.cpp +++ b/lld/lib/ReaderWriter/MachO/WriterMachO.cpp @@ -45,7 +45,7 @@ public: return writeBinary(*nFile->get(), path); } - bool createImplicitFiles(std::vector<std::unique_ptr<File> > &r) override { + void createImplicitFiles(std::vector<std::unique_ptr<File>> &r) override { // When building main executables, add _main as required entry point. if (_context.outputTypeHasEntry()) r.emplace_back(new CEntryFile(_context)); @@ -55,8 +55,6 @@ public: // Final linked images can access a symbol for their mach_header. if (_context.outputMachOType() != llvm::MachO::MH_OBJECT) r.emplace_back(new MachHeaderAliasFile(_context)); - - return true; } private: const MachOLinkingContext &_context; diff --git a/lld/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp b/lld/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp index 6a657e33541..ebd42f8cf71 100644 --- a/lld/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp +++ b/lld/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp @@ -137,7 +137,7 @@ void PECOFFLinkingContext::addLibraryFile(std::unique_ptr<FileNode> file) { currentGroupEnd->getSize() + 1); } -bool PECOFFLinkingContext::createImplicitFiles( +void PECOFFLinkingContext::createImplicitFiles( std::vector<std::unique_ptr<File>> &) { std::vector<std::unique_ptr<Node>> &members = getNodes(); @@ -160,8 +160,6 @@ bool PECOFFLinkingContext::createImplicitFiles( std::unique_ptr<FileNode> exportNode(new FileNode( llvm::make_unique<pecoff::ExportedSymbolRenameFile>(*this))); addLibraryFile(std::move(exportNode)); - - return true; } /// Returns the section name in the resulting executable. |