9#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MINGW_H
10#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MINGW_H
20#include "llvm/Support/ErrorOr.h"
36 const llvm::opt::ArgList &TCArgs,
37 const char *LinkingOutput)
const override;
40class LLVM_LIBRARY_VISIBILITY
Linker final :
public Tool {
49 const llvm::opt::ArgList &TCArgs,
50 const char *LinkingOutput)
const override;
53 void AddLibGCC(
const llvm::opt::ArgList &Args,
54 llvm::opt::ArgStringList &CmdArgs)
const;
64 const llvm::opt::ArgList &Args);
67 const llvm::opt::ArgList &Args);
74 bool isPIEDefault(
const llvm::opt::ArgList &Args)
const override;
82 const llvm::opt::ArgList &Args)
const override;
86 llvm::opt::ArgStringList &CC1Args)
const override;
89 llvm::opt::ArgStringList &CC1Args,
BoundArch BA,
92 const llvm::opt::ArgList &DriverArgs,
93 llvm::opt::ArgStringList &CC1Args)
const override;
96 llvm::opt::ArgStringList &CC1Args)
const override;
98 llvm::opt::ArgStringList &CC1Args)
const override;
106 Tool *buildLinker()
const override;
107 Tool *buildAssembler()
const override;
114 std::string GccLibDir;
117 std::string SubdirName;
118 std::string TripleDirName;
119 mutable std::unique_ptr<tools::gcc::Preprocessor>
Preprocessor;
120 mutable std::unique_ptr<tools::gcc::Compiler> Compiler;
121 mutable std::unique_ptr<tools::ARM64XObjcopy> Objcopy;
122 void findGccLibDir(
const llvm::Triple &LiteralTriple);
124 bool NativeLLVMSupport;
Simple wrapper for toolchain detector with costly initialization.
Engages in a tight little dance with the lexer to efficiently preprocess tokens.
Compilation - A set of tasks to perform for a single driver invocation.
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
SmallVector< InputInfo, 4 > InputInfoList
The JSON file list parser is used to communicate input to InstallAPI.
Represents a bound architecture for offload / multiple architecture compilation.