summaryrefslogtreecommitdiff
path: root/lld/ELF/Config.h
diff options
context:
space:
mode:
Diffstat (limited to 'lld/ELF/Config.h')
-rw-r--r--lld/ELF/Config.h25
1 files changed, 21 insertions, 4 deletions
diff --git a/lld/ELF/Config.h b/lld/ELF/Config.h
index 06ba88a83dd4..e74a4a0c5b22 100644
--- a/lld/ELF/Config.h
+++ b/lld/ELF/Config.h
@@ -17,6 +17,7 @@
#include "llvm/Support/CachePruning.h"
#include "llvm/Support/CodeGen.h"
#include "llvm/Support/Endian.h"
+#include "llvm/Support/GlobPattern.h"
#include <atomic>
#include <vector>
@@ -90,6 +91,7 @@ struct Configuration {
uint32_t andFeatures = 0;
llvm::CachePruningPolicy thinLTOCachePolicy;
llvm::StringMap<uint64_t> sectionStartMap;
+ llvm::StringRef bfdname;
llvm::StringRef chroot;
llvm::StringRef dynamicLinker;
llvm::StringRef dwoDir;
@@ -108,11 +110,13 @@ struct Configuration {
llvm::StringRef optRemarksPasses;
llvm::StringRef optRemarksFormat;
llvm::StringRef progName;
+ llvm::StringRef printArchiveStats;
llvm::StringRef printSymbolOrder;
llvm::StringRef soName;
llvm::StringRef sysroot;
llvm::StringRef thinLTOCacheDir;
llvm::StringRef thinLTOIndexOnlyArg;
+ llvm::StringRef ltoBasicBlockSections;
std::pair<llvm::StringRef, llvm::StringRef> thinLTOObjectSuffixReplace;
std::pair<llvm::StringRef, llvm::StringRef> thinLTOPrefixReplace;
std::string rpath;
@@ -121,6 +125,7 @@ struct Configuration {
std::vector<llvm::StringRef> filterList;
std::vector<llvm::StringRef> searchPaths;
std::vector<llvm::StringRef> symbolOrderingFile;
+ std::vector<llvm::StringRef> thinLTOModulesToCompile;
std::vector<llvm::StringRef> undefined;
std::vector<SymbolVersion> dynamicList;
std::vector<uint8_t> buildIdVector;
@@ -140,6 +145,7 @@ struct Configuration {
bool checkSections;
bool compressDebugSections;
bool cref;
+ std::vector<std::pair<llvm::GlobPattern, uint64_t>> deadRelocInNonAlloc;
bool defineCommon;
bool demangle = true;
bool dependentLibraries;
@@ -152,29 +158,31 @@ struct Configuration {
bool exportDynamic;
bool fixCortexA53Errata843419;
bool fixCortexA8;
- bool forceBTI;
bool formatBinary = false;
bool gcSections;
bool gdbIndex;
bool gnuHash = false;
bool gnuUnique;
- bool hasDynamicList = false;
bool hasDynSymTab;
bool ignoreDataAddressEquality;
bool ignoreFunctionAddressEquality;
bool ltoCSProfileGenerate;
bool ltoDebugPassManager;
+ bool ltoEmitAsm;
bool ltoNewPassManager;
+ bool ltoUniqueBasicBlockSectionNames;
+ bool ltoWholeProgramVisibility;
bool mergeArmExidx;
bool mipsN32Abi = false;
bool mmapOutputFile;
bool nmagic;
+ bool noDynamicLinker = false;
bool noinhibitExec;
bool nostdlib;
bool oFormatBinary;
bool omagic;
+ bool optimizeBBJumps;
bool optRemarksWithHotness;
- bool pacPlt;
bool picThunk;
bool pie;
bool printGcSections;
@@ -182,18 +190,23 @@ struct Configuration {
bool relocatable;
bool relrPackDynRelocs;
bool saveTemps;
+ llvm::Optional<uint32_t> shuffleSectionSeed;
bool singleRoRx;
bool shared;
+ bool symbolic;
bool isStatic = false;
bool sysvHash = false;
bool target1Rel;
bool trace;
bool thinLTOEmitImportsFiles;
bool thinLTOIndexOnly;
+ bool timeTraceEnabled;
bool tocOptimize;
bool undefinedVersion;
+ bool unique;
bool useAndroidRelrTags = false;
bool warnBackrefs;
+ std::vector<llvm::GlobPattern> warnBackrefsExclude;
bool warnCommon;
bool warnIfuncTextrel;
bool warnMissingEntry;
@@ -201,6 +214,7 @@ struct Configuration {
bool writeAddends;
bool zCombreloc;
bool zCopyreloc;
+ bool zForceBti;
bool zForceIbt;
bool zGlobal;
bool zHazardplt;
@@ -213,9 +227,11 @@ struct Configuration {
bool zNodlopen;
bool zNow;
bool zOrigin;
+ bool zPacPlt;
bool zRelro;
bool zRodynamic;
bool zShstk;
+ uint8_t zStartStopVisibility;
bool zText;
bool zRetpolineplt;
bool zWxneeded;
@@ -240,7 +256,8 @@ struct Configuration {
unsigned ltoPartitions;
unsigned ltoo;
unsigned optimize;
- unsigned thinLTOJobs;
+ StringRef thinLTOJobs;
+ unsigned timeTraceGranularity;
int32_t splitStackAdjustSize;
// The following config options do not directly correspond to any