Home | History | Annotate | Download | only in ToolChains

Lines Matching defs:ToolChain

1 //===--- Gnu.cpp - Gnu Tool and ToolChain Implementations -------*- C++ -*-===//
24 #include "clang/Driver/ToolChain.h"
307 static bool getPIE(const ArgList &Args, const ToolChain &TC) {
319 static bool getStaticPIE(const ArgList &Args, const ToolChain &TC) {
387 // FIXME: The Linker class constructor takes a ToolChain and not a
391 const toolchains::Generic_ELF &ToolChain =
393 const Driver &D = ToolChain.getDriver();
397 const llvm::Triple::ArchType Arch = ToolChain.getArch();
398 const bool isAndroid = ToolChain.getTriple().isAndroid();
399 const bool IsIAMCU = ToolChain.getTriple().isOSIAMCU();
400 const bool IsVE = ToolChain.getTriple().isVE();
401 const bool IsPIE = getPIE(Args, ToolChain);
402 const bool IsStaticPIE = getStaticPIE(Args, ToolChain);
405 ToolChain.getTriple().hasEnvironment() ||
406 (ToolChain.getTriple().getVendor() != llvm::Triple::MipsTechnologies);
432 if (ToolChain.isNoExecStackDefault()) {
464 ToolChain.addExtraOpts(CmdArgs);
468 if (const char *LDMOption = getLDMOption(ToolChain.getTriple(), Args)) {
493 ToolChain.getDynamicLinker(Args)));
514 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath(crt1)));
516 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crti.o")));
525 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crt0.o")));
528 if (ToolChain.GetRuntimeLibType(Args) == ToolChain::RLT_CompilerRT &&
530 std::string crtbegin = ToolChain.getCompilerRT(Args, "crtbegin",
531 ToolChain::FT_Object);
532 if (ToolChain.getVFS().exists(crtbegin))
545 P = ToolChain.GetFilePath(crtbegin);
551 ToolChain.addFastMathRuntimeIfAvailable(Args, CmdArgs);
557 ToolChain.AddFilePathLibArgs(Args, CmdArgs);
561 addLTOOptions(ToolChain, Args, CmdArgs, Output, Inputs[0],
568 bool NeedsSanitizerDeps = addSanitizerRuntimes(ToolChain, Args, CmdArgs);
569 bool NeedsXRayDeps = addXRayRuntime(ToolChain, Args, CmdArgs);
570 addLinkerCompressDebugSectionsOption(ToolChain, Args, CmdArgs);
571 AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA);
577 if (ToolChain.ShouldLinkCXXStdlib(Args)) {
582 ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs);
597 linkSanitizerRuntimeDeps(ToolChain, CmdArgs);
600 linkXRayRuntimeDeps(ToolChain, CmdArgs);
611 if (addOpenMPRuntime(CmdArgs, ToolChain, Args, StaticOpenMP,
614 // OpenMP runtimes implies pthreads when using the GNU toolchain.
618 AddRunTimeLibs(ToolChain, D, CmdArgs, Args);
636 AddRunTimeLibs(ToolChain, D, CmdArgs, Args);
649 if (ToolChain.GetRuntimeLibType(Args) == ToolChain::RLT_CompilerRT &&
651 std::string crtend = ToolChain.getCompilerRT(Args, "crtend",
652 ToolChain::FT_Object);
653 if (ToolChain.getVFS().exists(crtend))
664 P = ToolChain.GetFilePath(crtend);
669 CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtn.o")));
675 const char *Exec = Args.MakeArgString(ToolChain.GetLinkerPath());
1023 // Check for Code Sourcery toolchain multilibs
1095 // Sort candidates. Toolchain that best meets the directories tree goes first.
1153 // Musl toolchain multilibs
1185 // CodeScape MTI toolchain v1.2 and early.
1257 // CodeScape IMG toolchain starting from v1.3.
1357 // CodeScape IMG toolchain v1.2 and early.
1379 // CodeScape IMG toolchain starting from v1.3.
1507 // Fallback to the regular toolchain-tree structure.
1597 // currently only support the set of multilibs like riscv-gnu-toolchain does.
1729 // GCC toolchain for IAMCU doesn't have crtbegin.o, so look for libgcc.a.
1936 // Try to respect gcc-config on Gentoo if --gcc-toolchain is not provided.
1938 // custom toolchain.
2358 // MCU toolchain is 32 bit only and its triple alias is TargetTriple
2484 // Android standalone toolchain could have multilibs for ARM and Thumb.
2488 // It should also work without multilibs in a simplified toolchain.
2667 : ToolChain(D, Triple, Args), GCCInstallation(D),
2687 return ToolChain::getTool(AC);
2775 void Generic_GCC::PushPPaths(ToolChain::path_list &PPaths) {
2801 // Sourcery CodeBench MIPS toolchain holds some libraries under
2813 // as part of the toolchain under <prefix>/<triple>/<libdir> rather than as
2890 case ToolChain::CST_Libcxx:
2894 case ToolChain::CST_Libstdcxx:
2922 // Android never uses the libc++ headers installed alongside the toolchain,
3046 // toolchain as they can mess up with the creation of a shared library.