Index: include/lld/Core/LinkingContext.h =================================================================== --- include/lld/Core/LinkingContext.h +++ include/lld/Core/LinkingContext.h @@ -292,7 +292,7 @@ /// This method is called by core linking to give the Writer a chance /// to add file format specific "files" to set of files to be linked. This is /// how file format specific atoms can be added to the link. - virtual bool createImplicitFiles(std::vector > &); + virtual void createImplicitFiles(std::vector> &); /// This method is called by core linking to build the list of Passes to be /// run on the merged/linked graph of all input files. Index: include/lld/Core/Writer.h =================================================================== --- include/lld/Core/Writer.h +++ include/lld/Core/Writer.h @@ -34,7 +34,7 @@ /// \brief This method is called by Core Linking to give the Writer a chance /// to add file format specific "files" to set of files to be linked. This is /// how file format specific atoms can be added to the link. - virtual bool createImplicitFiles(std::vector > &); + virtual void createImplicitFiles(std::vector> &) {} protected: // only concrete subclasses can be instantiated Index: include/lld/ReaderWriter/MachOLinkingContext.h =================================================================== --- include/lld/ReaderWriter/MachOLinkingContext.h +++ include/lld/ReaderWriter/MachOLinkingContext.h @@ -72,7 +72,7 @@ bool validateImpl(raw_ostream &diagnostics) override; std::string demangle(StringRef symbolName) const override; - bool createImplicitFiles(std::vector> &) override; + void createImplicitFiles(std::vector> &) override; uint32_t getCPUType() const; uint32_t getCPUSubType() const; Index: include/lld/ReaderWriter/PECOFFLinkingContext.h =================================================================== --- include/lld/ReaderWriter/PECOFFLinkingContext.h +++ include/lld/ReaderWriter/PECOFFLinkingContext.h @@ -76,8 +76,7 @@ void addPasses(PassManager &pm) override; - bool createImplicitFiles( - std::vector > &result) override; + void createImplicitFiles(std::vector> &result) override; bool is64Bit() const { return _machineType == llvm::COFF::IMAGE_FILE_MACHINE_AMD64; Index: lib/Core/LinkingContext.cpp =================================================================== --- lib/Core/LinkingContext.cpp +++ lib/Core/LinkingContext.cpp @@ -37,9 +37,9 @@ return this->writer().writeFile(linkedFile, _outputPath); } -bool LinkingContext::createImplicitFiles( - std::vector > &result) { - return this->writer().createImplicitFiles(result); +void LinkingContext::createImplicitFiles( + std::vector> &result) { + this->writer().createImplicitFiles(result); } std::unique_ptr LinkingContext::createEntrySymbolFile() const { Index: lib/Core/Writer.cpp =================================================================== --- lib/Core/Writer.cpp +++ lib/Core/Writer.cpp @@ -16,8 +16,4 @@ Writer::~Writer() { } - -bool Writer::createImplicitFiles(std::vector > &) { - return true; -} } // end namespace lld Index: lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h =================================================================== --- lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h +++ lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h @@ -24,7 +24,7 @@ protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector> &) override; + void createImplicitFiles(std::vector> &) override; void finalizeDefaultAtomValues() override { return DynamicLibraryWriter::finalizeDefaultAtomValues(); @@ -53,13 +53,12 @@ _ctx(ctx), _layout(layout) {} template -bool AArch64DynamicLibraryWriter::createImplicitFiles( +void AArch64DynamicLibraryWriter::createImplicitFiles( std::vector> &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 Index: lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.h =================================================================== --- lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.h +++ lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.h @@ -23,7 +23,7 @@ protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector> &) override; + void createImplicitFiles(std::vector> &) override; void finalizeDefaultAtomValues() override { return ExecutableWriter::finalizeDefaultAtomValues(); @@ -52,14 +52,13 @@ _ctx(ctx), _layout(layout) {} template -bool AArch64ExecutableWriter::createImplicitFiles( +void AArch64ExecutableWriter::createImplicitFiles( std::vector> &result) { ExecutableWriter::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 Index: lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h =================================================================== --- lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h +++ lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h @@ -29,7 +29,7 @@ protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector> &) override; + void createImplicitFiles(std::vector> &) override; void finalizeDefaultAtomValues() override; @@ -57,10 +57,9 @@ : ExecutableWriter(ctx, layout), _ctx(ctx), _armLayout(layout) {} template -bool ARMExecutableWriter::createImplicitFiles( +void ARMExecutableWriter::createImplicitFiles( std::vector> &result) { ExecutableWriter::createImplicitFiles(result); - return true; } template Index: lib/ReaderWriter/ELF/DynamicLibraryWriter.h =================================================================== --- lib/ReaderWriter/ELF/DynamicLibraryWriter.h +++ lib/ReaderWriter/ELF/DynamicLibraryWriter.h @@ -29,7 +29,7 @@ protected: void buildDynamicSymbolTable(const File &file) override; void addDefaultAtoms() override; - bool createImplicitFiles(std::vector> &) override; + void createImplicitFiles(std::vector> &) override; void finalizeDefaultAtomValues() override; protected: @@ -66,13 +66,12 @@ /// \brief Hook in lld to add CRuntime file template -bool DynamicLibraryWriter::createImplicitFiles( +void DynamicLibraryWriter::createImplicitFiles( std::vector > &result) { // Add the default atoms as defined by executables DynamicLibraryWriter::addDefaultAtoms(); OutputELFWriter::createImplicitFiles(result); result.push_back(std::move(_runtimeFile)); - return true; } template Index: lib/ReaderWriter/ELF/ExecutableWriter.h =================================================================== --- lib/ReaderWriter/ELF/ExecutableWriter.h +++ lib/ReaderWriter/ELF/ExecutableWriter.h @@ -29,7 +29,7 @@ protected: void buildDynamicSymbolTable(const File &file) override; void addDefaultAtoms() override; - bool createImplicitFiles(std::vector> &) override; + void createImplicitFiles(std::vector> &) override; void finalizeDefaultAtomValues() override; void createDefaultSections() override; @@ -100,13 +100,12 @@ /// \brief Hook in lld to add CRuntime file template -bool ExecutableWriter::createImplicitFiles( +void ExecutableWriter::createImplicitFiles( std::vector > &result) { // Add the default atoms as defined by executables ExecutableWriter::addDefaultAtoms(); OutputELFWriter::createImplicitFiles(result); result.push_back(std::move(_runtimeFile)); - return true; } template void ExecutableWriter::createDefaultSections() { Index: lib/ReaderWriter/ELF/Hexagon/HexagonDynamicLibraryWriter.h =================================================================== --- lib/ReaderWriter/ELF/Hexagon/HexagonDynamicLibraryWriter.h +++ lib/ReaderWriter/ELF/Hexagon/HexagonDynamicLibraryWriter.h @@ -26,7 +26,7 @@ protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector> &) override; + void createImplicitFiles(std::vector> &) override; void finalizeDefaultAtomValues() override; @@ -54,13 +54,12 @@ _runtimeFile(new HexagonRuntimeFile(ctx)) {} template -bool HexagonDynamicLibraryWriter::createImplicitFiles( +void HexagonDynamicLibraryWriter::createImplicitFiles( std::vector> &result) { DynamicLibraryWriter::createImplicitFiles(result); // Add the default atoms as defined for hexagon addDefaultAtoms(); result.push_back(std::move(_runtimeFile)); - return true; } template Index: lib/ReaderWriter/ELF/Hexagon/HexagonExecutableWriter.h =================================================================== --- lib/ReaderWriter/ELF/Hexagon/HexagonExecutableWriter.h +++ lib/ReaderWriter/ELF/Hexagon/HexagonExecutableWriter.h @@ -26,7 +26,7 @@ protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector> &) override; + void createImplicitFiles(std::vector> &) override; void finalizeDefaultAtomValues() override; @@ -57,13 +57,12 @@ _runtimeFile(new HexagonRuntimeFile(ctx)) {} template -bool HexagonExecutableWriter::createImplicitFiles( +void HexagonExecutableWriter::createImplicitFiles( std::vector> &result) { ExecutableWriter::createImplicitFiles(result); // Add the default atoms as defined for hexagon addDefaultAtoms(); result.push_back(std::move(_runtimeFile)); - return true; } template Index: lib/ReaderWriter/ELF/Mips/MipsDynamicLibraryWriter.h =================================================================== --- lib/ReaderWriter/ELF/Mips/MipsDynamicLibraryWriter.h +++ lib/ReaderWriter/ELF/Mips/MipsDynamicLibraryWriter.h @@ -30,7 +30,7 @@ protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector> &) override; + void createImplicitFiles(std::vector> &) override; void finalizeDefaultAtomValues() override; void createDefaultSections() override; @@ -58,11 +58,10 @@ _targetLayout(layout) {} template -bool MipsDynamicLibraryWriter::createImplicitFiles( +void MipsDynamicLibraryWriter::createImplicitFiles( std::vector> &result) { DynamicLibraryWriter::createImplicitFiles(result); result.push_back(std::move(_writeHelper.createRuntimeFile())); - return true; } template Index: lib/ReaderWriter/ELF/Mips/MipsExecutableWriter.h =================================================================== --- lib/ReaderWriter/ELF/Mips/MipsExecutableWriter.h +++ lib/ReaderWriter/ELF/Mips/MipsExecutableWriter.h @@ -28,7 +28,7 @@ void buildDynamicSymbolTable(const File &file) override; // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector> &) override; + void createImplicitFiles(std::vector> &) override; void finalizeDefaultAtomValues() override; void createDefaultSections() override; @@ -110,11 +110,10 @@ } template -bool MipsExecutableWriter::createImplicitFiles( +void MipsExecutableWriter::createImplicitFiles( std::vector> &result) { ExecutableWriter::createImplicitFiles(result); result.push_back(std::move(_writeHelper.createRuntimeFile())); - return true; } template Index: lib/ReaderWriter/ELF/OutputELFWriter.h =================================================================== --- lib/ReaderWriter/ELF/OutputELFWriter.h +++ lib/ReaderWriter/ELF/OutputELFWriter.h @@ -133,7 +133,7 @@ virtual void addDefaultAtoms(); // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector> &) override; + void createImplicitFiles(std::vector> &) override; // Finalize the default atom values virtual void finalizeDefaultAtomValues(); @@ -363,7 +363,7 @@ } template -bool OutputELFWriter::createImplicitFiles( +void OutputELFWriter::createImplicitFiles( std::vector> &result) { // Add the virtual archive to resolve undefined symbols. // The file will be added later in the linking context. @@ -375,7 +375,6 @@ llvm::make_unique>(ctx, std::move(callback))); // Add script defined symbols result.push_back(std::move(_scriptFile)); - return true; } template Index: lib/ReaderWriter/ELF/X86/X86DynamicLibraryWriter.h =================================================================== --- lib/ReaderWriter/ELF/X86/X86DynamicLibraryWriter.h +++ lib/ReaderWriter/ELF/X86/X86DynamicLibraryWriter.h @@ -22,7 +22,7 @@ protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector> &) override; + void createImplicitFiles(std::vector> &) override; void finalizeDefaultAtomValues() override { return DynamicLibraryWriter::finalizeDefaultAtomValues(); @@ -51,13 +51,12 @@ _ctx(ctx), _layout(layout) {} template -bool X86DynamicLibraryWriter::createImplicitFiles( +void X86DynamicLibraryWriter::createImplicitFiles( std::vector> &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 Index: lib/ReaderWriter/ELF/X86/X86ExecutableWriter.h =================================================================== --- lib/ReaderWriter/ELF/X86/X86ExecutableWriter.h +++ lib/ReaderWriter/ELF/X86/X86ExecutableWriter.h @@ -22,7 +22,7 @@ protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector> &) override; + void createImplicitFiles(std::vector> &) override; void finalizeDefaultAtomValues() override { return ExecutableWriter::finalizeDefaultAtomValues(); @@ -43,10 +43,9 @@ : ExecutableWriter(ctx, layout), _ctx(ctx), _layout(layout) {} template -bool X86ExecutableWriter::createImplicitFiles( +void X86ExecutableWriter::createImplicitFiles( std::vector> &result) { ExecutableWriter::createImplicitFiles(result); - return true; } } // namespace elf Index: lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h =================================================================== --- lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h +++ lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h @@ -24,7 +24,7 @@ protected: // Add any runtime files and their atoms to the output - bool createImplicitFiles(std::vector> &) override; + void createImplicitFiles(std::vector> &) override; void finalizeDefaultAtomValues() override { return DynamicLibraryWriter::finalizeDefaultAtomValues(); @@ -48,13 +48,12 @@ X86_64LinkingContext &ctx, X86_64TargetLayout &layout) : DynamicLibraryWriter(ctx, layout), _gotFile(new GOTFile(ctx)) {} -bool X86_64DynamicLibraryWriter::createImplicitFiles( +void X86_64DynamicLibraryWriter::createImplicitFiles( std::vector> &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 Index: lib/ReaderWriter/ELF/X86_64/X86_64ExecutableWriter.h =================================================================== --- lib/ReaderWriter/ELF/X86_64/X86_64ExecutableWriter.h +++ lib/ReaderWriter/ELF/X86_64/X86_64ExecutableWriter.h @@ -23,7 +23,7 @@ protected: // Add any runtime files and their atoms to the output - bool + void createImplicitFiles(std::vector> &result) override { ExecutableWriter::createImplicitFiles(result); _gotFile->addAtom(*new (_gotFile->_alloc) @@ -31,7 +31,6 @@ if (_ctx.isDynamic()) _gotFile->addAtom(*new (_gotFile->_alloc) DynamicAtom(*_gotFile)); result.push_back(std::move(_gotFile)); - return true; } void finalizeDefaultAtomValues() override { Index: lib/ReaderWriter/MachO/MachOLinkingContext.cpp =================================================================== --- lib/ReaderWriter/MachO/MachOLinkingContext.cpp +++ lib/ReaderWriter/MachO/MachOLinkingContext.cpp @@ -685,7 +685,7 @@ return 0x1000; // 1.0 } -bool MachOLinkingContext::createImplicitFiles( +void MachOLinkingContext::createImplicitFiles( std::vector > &result) { // Add indirect dylibs by asking each linked dylib to add its indirects. // Iterate until no more dylibs get loaded. @@ -699,7 +699,7 @@ } // Let writer add output type specific extras. - return writer().createImplicitFiles(result); + writer().createImplicitFiles(result); } Index: lib/ReaderWriter/MachO/WriterMachO.cpp =================================================================== --- lib/ReaderWriter/MachO/WriterMachO.cpp +++ lib/ReaderWriter/MachO/WriterMachO.cpp @@ -45,7 +45,7 @@ return writeBinary(*nFile->get(), path); } - bool createImplicitFiles(std::vector > &r) override { + void createImplicitFiles(std::vector> &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 @@ // 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; Index: lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp =================================================================== --- lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp +++ lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp @@ -137,7 +137,7 @@ currentGroupEnd->getSize() + 1); } -bool PECOFFLinkingContext::createImplicitFiles( +void PECOFFLinkingContext::createImplicitFiles( std::vector> &) { std::vector> &members = getNodes(); @@ -160,8 +160,6 @@ std::unique_ptr exportNode(new FileNode( llvm::make_unique(*this))); addLibraryFile(std::move(exportNode)); - - return true; } /// Returns the section name in the resulting executable.