diff options
author | Shankar Easwaran <shankare@codeaurora.org> | 2015-02-12 05:02:41 +0000 |
---|---|---|
committer | Shankar Easwaran <shankare@codeaurora.org> | 2015-02-12 05:02:41 +0000 |
commit | f7a8da33845880bfcfed4e7d9afcd993b9cb988e (patch) | |
tree | c70bcc4b46c96f85893d67c9f44de03364eb4d9b /lld/lib/ReaderWriter/ELF/DynamicFile.h | |
parent | 3db633ab810d4ef3697b830dc23814118b2e7c52 (diff) | |
download | bcm5719-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.h | 14 |
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 |