summaryrefslogtreecommitdiffstats
path: root/lld/include
diff options
context:
space:
mode:
authorDavide Italiano <davide@freebsd.org>2015-05-26 01:57:32 +0000
committerDavide Italiano <davide@freebsd.org>2015-05-26 01:57:32 +0000
commit683703ea6d63a0a7650259a8a86dfce2dd0dc7eb (patch)
tree27dce5284c717bd7f17ba80dfc34fafec5818ee2 /lld/include
parent0a415bf28dab2f91fbcce620a0e77c85ee9cbeb7 (diff)
downloadbcm5719-llvm-683703ea6d63a0a7650259a8a86dfce2dd0dc7eb.tar.gz
bcm5719-llvm-683703ea6d63a0a7650259a8a86dfce2dd0dc7eb.zip
[ELF] Add support for -z origin/now options.
Differential Revision: http://reviews.llvm.org/D9963 llvm-svn: 238169
Diffstat (limited to 'lld/include')
-rw-r--r--lld/include/lld/ReaderWriter/ELFLinkingContext.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/lld/include/lld/ReaderWriter/ELFLinkingContext.h b/lld/include/lld/ReaderWriter/ELFLinkingContext.h
index 78990616d38..8fb1b54b413 100644
--- a/lld/include/lld/ReaderWriter/ELFLinkingContext.h
+++ b/lld/include/lld/ReaderWriter/ELFLinkingContext.h
@@ -97,6 +97,12 @@ public:
OMAGIC,
};
+ /// \brief ELF DT_FLAGS.
+ enum DTFlag : uint32_t {
+ DT_NOW = 1 << 1,
+ DT_ORIGIN = 1 << 2,
+ };
+
llvm::Triple getTriple() const { return _triple; }
uint64_t getPageSize() const { return _maxPageSize; }
@@ -329,6 +335,10 @@ public:
// --wrap option.
void addWrapForSymbol(StringRef sym) { _wrapCalls.insert(sym); }
+ // \brief Set DT_FLAGS flag.
+ void setDTFlag(DTFlag f) { _dtFlags |= f; };
+ bool getDTFlag(DTFlag f) { return (_dtFlags & f); };
+
const llvm::StringSet<> &wrapCalls() const { return _wrapCalls; }
void setUndefinesResolver(std::unique_ptr<File> resolver);
@@ -383,6 +393,7 @@ protected:
bool _armTarget1Rel = false;
bool _mipsPcRelEhRel = false;
uint64_t _maxPageSize = 0x1000;
+ uint32_t _dtFlags = 0;
OutputMagic _outputMagic = OutputMagic::DEFAULT;
StringRefVector _inputSearchPaths;
OpenPOWER on IntegriCloud