From 1c98619801a5705c688e683be3ef9d70169a0686 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sat, 23 Jul 2016 20:48:50 +0000 Subject: Vendor import of lld release_39 branch r276489: https://llvm.org/svn/llvm-project/lld/branches/release_39@276489 --- lib/Core/LinkingContext.cpp | 47 ++++++--------------------------------------- 1 file changed, 6 insertions(+), 41 deletions(-) (limited to 'lib/Core/LinkingContext.cpp') diff --git a/lib/Core/LinkingContext.cpp b/lib/Core/LinkingContext.cpp index cbcf25c17df2..2732543d306e 100644 --- a/lib/Core/LinkingContext.cpp +++ b/lib/Core/LinkingContext.cpp @@ -7,7 +7,6 @@ // //===----------------------------------------------------------------------===// -#include "lld/Core/Alias.h" #include "lld/Core/LinkingContext.h" #include "lld/Core/Resolver.h" #include "lld/Core/Simple.h" @@ -16,16 +15,7 @@ namespace lld { -LinkingContext::LinkingContext() - : _deadStrip(false), _allowDuplicates(false), - _globalsAreDeadStripRoots(false), - _searchArchivesToOverrideTentativeDefinitions(false), - _searchSharedLibrariesToOverrideTentativeDefinitions(false), - _warnIfCoalesableAtomsHaveDifferentCanBeNull(false), - _warnIfCoalesableAtomsHaveDifferentLoadName(false), - _printRemainingUndefines(true), _allowRemainingUndefines(false), - _logInputFiles(false), _allowShlibUndefines(true), - _outputFileType(OutputFileType::Default), _nextOrdinal(0) {} +LinkingContext::LinkingContext() {} LinkingContext::~LinkingContext() {} @@ -33,15 +23,10 @@ bool LinkingContext::validate(raw_ostream &diagnostics) { return validateImpl(diagnostics); } -std::error_code LinkingContext::writeFile(const File &linkedFile) const { +llvm::Error LinkingContext::writeFile(const File &linkedFile) const { return this->writer().writeFile(linkedFile, _outputPath); } -void LinkingContext::createImplicitFiles( - std::vector> &result) { - this->writer().createImplicitFiles(result); -} - std::unique_ptr LinkingContext::createEntrySymbolFile() const { return createEntrySymbolFile(""); } @@ -50,7 +35,8 @@ std::unique_ptr LinkingContext::createEntrySymbolFile(StringRef filename) const { if (entrySymbolName().empty()) return nullptr; - std::unique_ptr entryFile(new SimpleFile(filename)); + std::unique_ptr entryFile(new SimpleFile(filename, + File::kindEntryObject)); entryFile->addAtom( *(new (_allocator) SimpleUndefinedAtom(*entryFile, entrySymbolName()))); return std::move(entryFile); @@ -64,41 +50,20 @@ std::unique_ptr LinkingContext::createUndefinedSymbolFile(StringRef filename) const { if (_initialUndefinedSymbols.empty()) return nullptr; - std::unique_ptr undefinedSymFile(new SimpleFile(filename)); + std::unique_ptr undefinedSymFile( + new SimpleFile(filename, File::kindUndefinedSymsObject)); for (StringRef undefSym : _initialUndefinedSymbols) undefinedSymFile->addAtom(*(new (_allocator) SimpleUndefinedAtom( *undefinedSymFile, undefSym))); return std::move(undefinedSymFile); } -std::unique_ptr LinkingContext::createAliasSymbolFile() const { - if (getAliases().empty()) - return nullptr; - std::unique_ptr file(new SimpleFile("")); - for (const auto &i : getAliases()) { - StringRef from = i.first; - StringRef to = i.second; - SimpleDefinedAtom *fromAtom = new (_allocator) AliasAtom(*file, from); - UndefinedAtom *toAtom = new (_allocator) SimpleUndefinedAtom(*file, to); - fromAtom->addReference(Reference::KindNamespace::all, - Reference::KindArch::all, Reference::kindLayoutAfter, - 0, toAtom, 0); - file->addAtom(*fromAtom); - file->addAtom(*toAtom); - } - return std::move(file); -} - void LinkingContext::createInternalFiles( std::vector > &result) const { if (std::unique_ptr file = createEntrySymbolFile()) result.push_back(std::move(file)); if (std::unique_ptr file = createUndefinedSymbolFile()) result.push_back(std::move(file)); - if (std::unique_ptr file = createAliasSymbolFile()) - result.push_back(std::move(file)); } -void LinkingContext::addPasses(PassManager &pm) {} - } // end namespace lld -- cgit v1.2.3