diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:12:21 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:12:21 +0000 |
commit | eb1ff93d02b5f17b6b409e83c6d9be585f4a04b3 (patch) | |
tree | 7490b4a8943293f251ad733465936e6ec302b3e9 /COFF/Config.h | |
parent | bafea25f368c63f0b39789906adfed6e39219e64 (diff) | |
download | src-eb1ff93d02b5f17b6b409e83c6d9be585f4a04b3.tar.gz src-eb1ff93d02b5f17b6b409e83c6d9be585f4a04b3.zip |
Vendor import of lld trunk r321017:vendor/lld/lld-trunk-r321017
Notes
Notes:
svn path=/vendor/lld/dist/; revision=326947
svn path=/vendor/lld/lld-trunk-r321017/; revision=326948; tag=vendor/lld/lld-trunk-r321017
Diffstat (limited to 'COFF/Config.h')
-rw-r--r-- | COFF/Config.h | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/COFF/Config.h b/COFF/Config.h index 7f8259d016e1..4eb8bae3c622 100644 --- a/COFF/Config.h +++ b/COFF/Config.h @@ -12,6 +12,7 @@ #include "llvm/ADT/StringRef.h" #include "llvm/Object/COFF.h" +#include "llvm/Support/CachePruning.h" #include <cstdint> #include <map> #include <set> @@ -26,8 +27,7 @@ using llvm::StringRef; class DefinedAbsolute; class DefinedRelative; class StringChunk; -struct Symbol; -class SymbolBody; +class Symbol; // Short aliases. static const auto AMD64 = llvm::COFF::IMAGE_FILE_MACHINE_AMD64; @@ -39,7 +39,7 @@ static const auto I386 = llvm::COFF::IMAGE_FILE_MACHINE_I386; struct Export { StringRef Name; // N in /export:N or /export:E=N StringRef ExtName; // E in /export:E=N - SymbolBody *Sym = nullptr; + Symbol *Sym = nullptr; uint16_t Ordinal = 0; bool Noname = false; bool Data = false; @@ -79,24 +79,23 @@ struct Configuration { llvm::COFF::MachineTypes Machine = IMAGE_FILE_MACHINE_UNKNOWN; bool Verbose = false; WindowsSubsystem Subsystem = llvm::COFF::IMAGE_SUBSYSTEM_UNKNOWN; - SymbolBody *Entry = nullptr; + Symbol *Entry = nullptr; bool NoEntry = false; std::string OutputFile; std::string ImportName; - bool ColorDiagnostics; bool DoGC = true; bool DoICF = true; - uint64_t ErrorLimit = 20; bool Relocatable = true; bool Force = false; bool Debug = false; - bool WriteSymtab = true; + bool DebugDwarf = false; + bool DebugGHashes = false; unsigned DebugTypes = static_cast<unsigned>(DebugType::None); llvm::SmallString<128> PDBPath; std::vector<llvm::StringRef> Argv; // Symbols in this set are considered as live by the garbage collector. - std::set<SymbolBody *> GCRoot; + std::vector<Symbol *> GCRoot; std::set<StringRef> NoDefaultLibs; bool NoDefaultLibAll = false; @@ -107,7 +106,7 @@ struct Configuration { std::vector<Export> Exports; std::set<std::string> DelayLoads; std::map<std::string, int> DLLOrder; - SymbolBody *DelayLoadHelper = nullptr; + Symbol *DelayLoadHelper = nullptr; bool SaveTemps = false; @@ -123,6 +122,11 @@ struct Configuration { // Used for /opt:lldltopartitions=N unsigned LTOPartitions = 1; + // Used for /opt:lldltocache=path + StringRef LTOCache; + // Used for /opt:lldltocachepolicy=policy + llvm::CachePruningPolicy LTOCachePolicy; + // Used for /merge:from=to (e.g. /merge:.rdata=.text) std::map<StringRef, StringRef> Merge; @@ -139,6 +143,9 @@ struct Configuration { StringRef ManifestUIAccess = "'false'"; StringRef ManifestFile; + // Used for /aligncomm. + std::map<std::string, int> AlignComm; + // Used for /failifmismatch. std::map<StringRef, StringRef> MustMatch; @@ -157,13 +164,16 @@ struct Configuration { uint32_t MinorImageVersion = 0; uint32_t MajorOSVersion = 6; uint32_t MinorOSVersion = 0; + bool CanExitEarly = false; bool DynamicBase = true; + bool AllowBind = true; bool NxCompat = true; bool AllowIsolation = true; bool TerminalServerAware = true; bool LargeAddressAware = false; bool HighEntropyVA = false; bool AppContainer = false; + bool MinGW = false; }; extern Configuration *Config; |