//===- 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_WASM_CONFIG_H #define LLD_WASM_CONFIG_H #include "llvm/ADT/StringRef.h" #include "llvm/ADT/StringSet.h" #include "llvm/BinaryFormat/Wasm.h" #include "llvm/Support/CachePruning.h" namespace lld { namespace wasm { struct Configuration { bool AllowUndefined; bool CompressRelocTargets; bool Demangle; bool DisableVerify; bool ExportAll; bool ExportTable; bool GcSections; bool ImportMemory; bool ImportTable; bool MergeDataSegments; bool PrintGcSections; bool Relocatable; bool SaveTemps; bool StripAll; bool StripDebug; bool StackFirst; uint32_t GlobalBase; uint32_t InitialMemory; uint32_t MaxMemory; uint32_t ZStackSize; unsigned LTOPartitions; unsigned LTOO; unsigned Optimize; unsigned ThinLTOJobs; llvm::StringRef Entry; llvm::StringRef OutputFile; llvm::StringRef ThinLTOCacheDir; llvm::StringSet<> AllowUndefinedSymbols; std::vector SearchPaths; llvm::CachePruningPolicy ThinLTOCachePolicy; }; // The only instance of Configuration struct. extern Configuration *Config; } // namespace wasm } // namespace lld #endif