aboutsummaryrefslogtreecommitdiffstats
path: root/ELF/Config.h
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2015-12-30 11:57:38 +0000
committerDimitry Andric <dim@FreeBSD.org>2015-12-30 11:57:38 +0000
commit5a5c549fe9a3fef595297bd21d36bed8409dc37d (patch)
treea964c8f5ac85b7b641cac022c5f9bf4eed3d2b9b /ELF/Config.h
parentfb911942f1434f3d1750f83f25f5e42c80e60638 (diff)
downloadsrc-5a5c549fe9a3fef595297bd21d36bed8409dc37d.tar.gz
src-5a5c549fe9a3fef595297bd21d36bed8409dc37d.zip
Vendor import of lld trunk r256633:vendor/lld/lld-trunk-r256633
Notes
Notes: svn path=/vendor/lld/dist/; revision=292934 svn path=/vendor/lld/lld-trunk-r256633/; revision=292935; tag=vendor/lld/lld-trunk-r256633
Diffstat (limited to 'ELF/Config.h')
-rw-r--r--ELF/Config.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/ELF/Config.h b/ELF/Config.h
new file mode 100644
index 000000000000..7b820f18b8c7
--- /dev/null
+++ b/ELF/Config.h
@@ -0,0 +1,84 @@
+//===- Config.h -------------------------------------------------*- C++ -*-===//
+//
+// The LLVM Linker
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLD_ELF_CONFIG_H
+#define LLD_ELF_CONFIG_H
+
+#include "llvm/ADT/MapVector.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/ELF.h"
+
+#include <vector>
+
+namespace lld {
+namespace elf2 {
+
+class InputFile;
+class SymbolBody;
+
+enum ELFKind {
+ ELFNoneKind,
+ ELF32LEKind,
+ ELF32BEKind,
+ ELF64LEKind,
+ ELF64BEKind
+};
+
+struct Configuration {
+ SymbolBody *EntrySym = nullptr;
+ SymbolBody *MipsGpDisp = nullptr;
+ InputFile *FirstElf = nullptr;
+ llvm::StringRef DynamicLinker;
+ llvm::StringRef Entry;
+ llvm::StringRef Emulation;
+ llvm::StringRef Fini;
+ llvm::StringRef Init;
+ llvm::StringRef OutputFile;
+ llvm::StringRef SoName;
+ llvm::StringRef Sysroot;
+ std::string RPath;
+ llvm::MapVector<llvm::StringRef, std::vector<llvm::StringRef>> OutputSections;
+ std::vector<llvm::StringRef> SearchPaths;
+ std::vector<llvm::StringRef> Undefined;
+ bool AllowMultipleDefinition;
+ bool AsNeeded = false;
+ bool Bsymbolic;
+ bool DiscardAll;
+ bool DiscardLocals;
+ bool DiscardNone;
+ bool EnableNewDtags;
+ bool ExportDynamic;
+ bool GcSections;
+ bool GnuHash = false;
+ bool Mips64EL = false;
+ bool NoInhibitExec;
+ bool NoUndefined;
+ bool PrintGcSections;
+ bool Shared;
+ bool Static = false;
+ bool StripAll;
+ bool SysvHash = true;
+ bool Verbose;
+ bool ZExecStack;
+ bool ZNodelete;
+ bool ZNow;
+ bool ZOrigin;
+ bool ZRelro;
+ ELFKind EKind = ELFNoneKind;
+ uint16_t EMachine = llvm::ELF::EM_NONE;
+ uint64_t EntryAddr = -1;
+ unsigned Optimize = 0;
+};
+
+extern Configuration *Config;
+
+} // namespace elf2
+} // namespace lld
+
+#endif