summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/ELF/DynamicFile.h
diff options
context:
space:
mode:
authorShankar Easwaran <shankare@codeaurora.org>2015-02-12 05:02:41 +0000
committerShankar Easwaran <shankare@codeaurora.org>2015-02-12 05:02:41 +0000
commitf7a8da33845880bfcfed4e7d9afcd993b9cb988e (patch)
treec70bcc4b46c96f85893d67c9f44de03364eb4d9b /lld/lib/ReaderWriter/ELF/DynamicFile.h
parent3db633ab810d4ef3697b830dc23814118b2e7c52 (diff)
downloadbcm5719-llvm-f7a8da33845880bfcfed4e7d9afcd993b9cb988e.tar.gz
bcm5719-llvm-f7a8da33845880bfcfed4e7d9afcd993b9cb988e.zip
[ELF] Add LinkingContext to the ELFReader.
This adds the LinkingContext parameter to the ELFReader. Previously the flags in that were needed in the Context was passed to the ELFReader, this made it very hard to access data structures in the LinkingContext when reading an ELF file. This change makes the ELFReader more flexible so that required parameters can be grabbed directly from the LinkingContext. Future patches make use of the changes. There is no change in functionality though. llvm-svn: 228905
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/DynamicFile.h')
-rw-r--r--lld/lib/ReaderWriter/ELF/DynamicFile.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/lld/lib/ReaderWriter/ELF/DynamicFile.h b/lld/lib/ReaderWriter/ELF/DynamicFile.h
index a82c46bab6f..8a30d9fd31a 100644
--- a/lld/lib/ReaderWriter/ELF/DynamicFile.h
+++ b/lld/lib/ReaderWriter/ELF/DynamicFile.h
@@ -22,7 +22,7 @@ namespace elf {
template <class ELFT> class DynamicFile : public SharedLibraryFile {
public:
static ErrorOr<std::unique_ptr<DynamicFile>>
- create(std::unique_ptr<llvm::MemoryBuffer> mb, bool useShlibUndefines);
+ create(std::unique_ptr<llvm::MemoryBuffer> mb, ELFLinkingContext &ctx);
const SharedLibraryAtom *exports(StringRef name,
bool dataSymbolOnly) const override {
@@ -84,9 +84,9 @@ protected:
}
private:
- DynamicFile(std::unique_ptr<MemoryBuffer> mb, bool useShlibUndefines)
- : SharedLibraryFile(mb->getBufferIdentifier()),
- _mb(std::move(mb)), _useShlibUndefines(useShlibUndefines) {}
+ DynamicFile(std::unique_ptr<MemoryBuffer> mb, ELFLinkingContext &ctx)
+ : SharedLibraryFile(mb->getBufferIdentifier()), _mb(std::move(mb)),
+ _ctx(ctx), _useShlibUndefines(ctx.useShlibUndefines()) {}
mutable llvm::BumpPtrAllocator _alloc;
std::unique_ptr<llvm::object::ELFFile<ELFT>> _objFile;
@@ -100,6 +100,7 @@ private:
};
std::unique_ptr<MemoryBuffer> _mb;
+ ELFLinkingContext &_ctx;
bool _useShlibUndefines;
mutable std::unordered_map<StringRef, SymAtomPair> _nameToSym;
};
@@ -107,9 +108,8 @@ private:
template <class ELFT>
ErrorOr<std::unique_ptr<DynamicFile<ELFT>>>
DynamicFile<ELFT>::create(std::unique_ptr<llvm::MemoryBuffer> mb,
- bool useShlibUndefines) {
- return std::unique_ptr<DynamicFile>(
- new DynamicFile(std::move(mb), useShlibUndefines));
+ ELFLinkingContext &ctx) {
+ return std::unique_ptr<DynamicFile>(new DynamicFile(std::move(mb), ctx));
}
} // end namespace elf
OpenPOWER on IntegriCloud