#include "Linux.h"
#include "Arch/ARM.h"
#include "Arch/LoongArch.h"
#include "Arch/Mips.h"
#include "Arch/PPC.h"
#include "Arch/RISCV.h"
#include "CommonArgs.h"
#include "clang/Config/config.h"
#include "clang/Driver/Distro.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
#include "llvm/Option/ArgList.h"
#include "llvm/ProfileData/InstrProf.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/ScopedPrinter.h"
#include "llvm/Support/VirtualFileSystem.h"
#include <system_error>
usingnamespaceclang::driver;
usingnamespaceclang::driver::toolchains;
usingnamespaceclang;
usingnamespacellvm::opt;
addPathIfExists;
std::string Linux::getMultiarchTriple(const Driver &D,
const llvm::Triple &TargetTriple,
StringRef SysRoot) const { … }
static StringRef getOSLibDir(const llvm::Triple &Triple, const ArgList &Args) { … }
Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
: … { … }
ToolChain::RuntimeLibType Linux::GetDefaultRuntimeLibType() const { … }
unsigned Linux::GetDefaultDwarfVersion() const { … }
ToolChain::CXXStdlibType Linux::GetDefaultCXXStdlibType() const { … }
bool Linux::HasNativeLLVMSupport() const { … }
Tool *Linux::buildLinker() const { … }
Tool *Linux::buildStaticLibTool() const { … }
Tool *Linux::buildAssembler() const { … }
std::string Linux::computeSysRoot() const { … }
std::string Linux::getDynamicLinker(const ArgList &Args) const { … }
void Linux::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
ArgStringList &CC1Args) const { … }
void Linux::addLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
llvm::opt::ArgStringList &CC1Args) const { … }
void Linux::AddCudaIncludeArgs(const ArgList &DriverArgs,
ArgStringList &CC1Args) const { … }
void Linux::AddHIPIncludeArgs(const ArgList &DriverArgs,
ArgStringList &CC1Args) const { … }
void Linux::AddHIPRuntimeLibArgs(const ArgList &Args,
ArgStringList &CmdArgs) const { … }
void Linux::AddIAMCUIncludeArgs(const ArgList &DriverArgs,
ArgStringList &CC1Args) const { … }
bool Linux::isPIEDefault(const llvm::opt::ArgList &Args) const { … }
bool Linux::IsAArch64OutlineAtomicsDefault(const ArgList &Args) const { … }
bool Linux::IsMathErrnoDefault() const { … }
SanitizerMask Linux::getSupportedSanitizers() const { … }
void Linux::addProfileRTLibs(const llvm::opt::ArgList &Args,
llvm::opt::ArgStringList &CmdArgs) const { … }
void Linux::addExtraOpts(llvm::opt::ArgStringList &CmdArgs) const { … }
const char *Linux::getDefaultLinker() const { … }