41 const llvm::opt::ArgList &Args);
44 bool IsMathErrnoDefault()
const override;
45 bool IsObjCNonFragileABIDefault()
const override;
46 bool UseObjCMixedDispatch()
const override;
47 bool isPICDefault()
const override;
48 bool isPIEDefault(
const llvm::opt::ArgList &Args)
const override;
49 bool isPICDefaultForced()
const override;
50 bool hasBlocksRuntime()
const override;
51 bool SupportsProfiling()
const override;
52 bool HasNativeLLVMSupport()
const override;
53 unsigned GetDefaultDwarfVersion()
const override {
return 4; }
55 addClangTargetOptions(
const llvm::opt::ArgList &DriverArgs,
56 llvm::opt::ArgStringList &CC1Args,
58 RuntimeLibType GetDefaultRuntimeLibType()
const override;
59 CXXStdlibType GetCXXStdlibType(
const llvm::opt::ArgList &Args)
const override;
61 AddClangSystemIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
62 llvm::opt::ArgStringList &CC1Args)
const override;
63 void AddClangCXXStdlibIncludeArgs(
64 const llvm::opt::ArgList &DriverArgs,
65 llvm::opt::ArgStringList &CC1Args)
const override;
66 void AddCXXStdlibLibArgs(
const llvm::opt::ArgList &Args,
67 llvm::opt::ArgStringList &CmdArgs)
const override;
70 const char *getDefaultLinker()
const override;
72 CXXStdlibType GetDefaultCXXStdlibType()
const override {
76 Tool *buildLinker()
const override;
78 std::string getMultiarchTriple(
const Driver &D,
79 const llvm::Triple &TargetTriple,
80 StringRef SysRoot)
const override;
82 void addLibCxxIncludePaths(
const llvm::opt::ArgList &DriverArgs,
83 llvm::opt::ArgStringList &CC1Args)
const;
85 llvm::opt::ArgStringList &CC1Args)
const;
static bool addLibStdCXXIncludePaths(llvm::vfs::FileSystem &vfs, Twine IncludeDir, StringRef Triple, Twine IncludeSuffix, const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, bool DetectDebian=false)