#ifndef LLD_ELF_CONFIG_H
#define LLD_ELF_CONFIG_H
#include "lld/Common/ErrorHandler.h"
#include "llvm/ADT/CachedHashString.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/CachePruning.h"
#include "llvm/Support/CodeGen.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Compression.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/GlobPattern.h"
#include "llvm/Support/PrettyStackTrace.h"
#include "llvm/Support/TarWriter.h"
#include <atomic>
#include <memory>
#include <optional>
#include <vector>
namespace lld::elf {
class InputFile;
class BinaryFile;
class BitcodeFile;
class ELFFileBase;
class SharedFile;
class InputSectionBase;
class EhInputSection;
class Defined;
class Symbol;
class BitcodeCompiler;
class OutputSection;
class LinkerScript;
class TargetInfo;
struct Ctx;
struct Partition;
struct PhdrEntry;
class BssSection;
class GdbIndexSection;
class GotPltSection;
class GotSection;
class IBTPltSection;
class IgotPltSection;
class InputSection;
class IpltSection;
class MipsGotSection;
class MipsRldMapSection;
class PPC32Got2Section;
class PPC64LongBranchTargetSection;
class PltSection;
class RelocationBaseSection;
class RelroPaddingSection;
class StringTableSection;
class SymbolTableBaseSection;
class SymtabShndxSection;
class SyntheticSection;
enum ELFKind : uint8_t { … };
enum class BsymbolicKind { … };
enum class BuildIdKind { … };
enum class CGProfileSortKind { … };
enum class DiscardPolicy { … };
enum class ICFLevel { … };
enum class StripPolicy { … };
enum class UnresolvedPolicy { … };
enum class OrphanHandlingPolicy { … };
enum class SortSectionPolicy { … };
enum class Target2Policy { … };
enum class ARMVFPArgKind { … };
enum class SeparateSegmentKind { … };
enum class GnuStackKind { … };
enum LtoKind : uint8_t { … };
enum class GcsPolicy { … };
struct SymbolVersion { … };
struct VersionDefinition { … };
class LinkerDriver { … };
struct Config { … };
struct ConfigWrapper { … };
LLVM_LIBRARY_VISIBILITY extern ConfigWrapper config;
struct SymbolAux { … };
struct DuplicateSymbol { … };
struct InStruct { … };
struct Ctx { … };
LLVM_LIBRARY_VISIBILITY extern Ctx ctx;
static inline ArrayRef<VersionDefinition> namedVersionDefs() { … }
void errorOrWarn(const Twine &msg);
static inline void internalLinkerError(StringRef loc, const Twine &msg) { … }
}
#endif