@@ -966,10 +966,14 @@ MachO::MachO(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
966966 getProgramPaths ().push_back (getDriver ().Dir );
967967}
968968
969+ AppleMachO::AppleMachO (const Driver &D, const llvm::Triple &Triple,
970+ const ArgList &Args)
971+ : MachO(D, Triple, Args), CudaInstallation(D, Triple, Args),
972+ RocmInstallation(D, Triple, Args) {}
973+
969974// / Darwin - Darwin tool chain for i386 and x86_64.
970975Darwin::Darwin (const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
971- : MachO(D, Triple, Args), TargetInitialized(false ),
972- CudaInstallation(D, Triple, Args), RocmInstallation(D, Triple, Args) {}
976+ : AppleMachO(D, Triple, Args), TargetInitialized(false ) {}
973977
974978types::ID MachO::LookupTypeForExtension (StringRef Ext) const {
975979 types::ID Ty = ToolChain::LookupTypeForExtension (Ext);
@@ -1018,13 +1022,13 @@ bool Darwin::hasBlocksRuntime() const {
10181022 }
10191023}
10201024
1021- void Darwin ::AddCudaIncludeArgs (const ArgList &DriverArgs,
1022- ArgStringList &CC1Args) const {
1025+ void AppleMachO ::AddCudaIncludeArgs (const ArgList &DriverArgs,
1026+ ArgStringList &CC1Args) const {
10231027 CudaInstallation->AddCudaIncludeArgs (DriverArgs, CC1Args);
10241028}
10251029
1026- void Darwin ::AddHIPIncludeArgs (const ArgList &DriverArgs,
1027- ArgStringList &CC1Args) const {
1030+ void AppleMachO ::AddHIPIncludeArgs (const ArgList &DriverArgs,
1031+ ArgStringList &CC1Args) const {
10281032 RocmInstallation->AddHIPIncludeArgs (DriverArgs, CC1Args);
10291033}
10301034
@@ -2482,7 +2486,7 @@ static void AppendPlatformPrefix(SmallString<128> &Path,
24822486// Returns the effective sysroot from either -isysroot or --sysroot, plus the
24832487// platform prefix (if any).
24842488llvm::SmallString<128 >
2485- DarwinClang ::GetEffectiveSysroot (const llvm::opt::ArgList &DriverArgs) const {
2489+ AppleMachO ::GetEffectiveSysroot (const llvm::opt::ArgList &DriverArgs) const {
24862490 llvm::SmallString<128 > Path (" /" );
24872491 if (DriverArgs.hasArg (options::OPT_isysroot))
24882492 Path = DriverArgs.getLastArgValue (options::OPT_isysroot);
@@ -2495,8 +2499,9 @@ DarwinClang::GetEffectiveSysroot(const llvm::opt::ArgList &DriverArgs) const {
24952499 return Path;
24962500}
24972501
2498- void DarwinClang::AddClangSystemIncludeArgs (const llvm::opt::ArgList &DriverArgs,
2499- llvm::opt::ArgStringList &CC1Args) const {
2502+ void AppleMachO::AddClangSystemIncludeArgs (
2503+ const llvm::opt::ArgList &DriverArgs,
2504+ llvm::opt::ArgStringList &CC1Args) const {
25002505 const Driver &D = getDriver ();
25012506
25022507 llvm::SmallString<128 > Sysroot = GetEffectiveSysroot (DriverArgs);
@@ -2574,7 +2579,7 @@ bool DarwinClang::AddGnuCPlusPlusIncludePaths(const llvm::opt::ArgList &DriverAr
25742579 return getVFS ().exists (Base);
25752580}
25762581
2577- void DarwinClang ::AddClangCXXStdlibIncludeArgs (
2582+ void AppleMachO ::AddClangCXXStdlibIncludeArgs (
25782583 const llvm::opt::ArgList &DriverArgs,
25792584 llvm::opt::ArgStringList &CC1Args) const {
25802585 // The implementation from a base class will pass through the -stdlib to
@@ -2631,55 +2636,60 @@ void DarwinClang::AddClangCXXStdlibIncludeArgs(
26312636 }
26322637
26332638 case ToolChain::CST_Libstdcxx:
2634- llvm::SmallString<128 > UsrIncludeCxx = Sysroot;
2635- llvm::sys::path::append (UsrIncludeCxx, " usr" , " include" , " c++" );
2636-
2637- llvm::Triple::ArchType arch = getTriple ().getArch ();
2638- bool IsBaseFound = true ;
2639- switch (arch) {
2640- default : break ;
2641-
2642- case llvm::Triple::x86:
2643- case llvm::Triple::x86_64:
2644- IsBaseFound = AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx,
2645- " 4.2.1" ,
2646- " i686-apple-darwin10" ,
2647- arch == llvm::Triple::x86_64 ? " x86_64" : " " );
2648- IsBaseFound |= AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx,
2649- " 4.0.0" , " i686-apple-darwin8" ,
2650- " " );
2651- break ;
2639+ AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args);
2640+ break ;
2641+ }
2642+ }
26522643
2653- case llvm::Triple::arm:
2654- case llvm::Triple::thumb:
2655- IsBaseFound = AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx,
2656- " 4.2.1" ,
2657- " arm-apple-darwin10" ,
2658- " v7" );
2659- IsBaseFound |= AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx,
2660- " 4.2.1" ,
2661- " arm-apple-darwin10" ,
2662- " v6" );
2663- break ;
2644+ void AppleMachO::AddGnuCPlusPlusIncludePaths (
2645+ const llvm::opt::ArgList &DriverArgs,
2646+ llvm::opt::ArgStringList &CC1Args) const {}
26642647
2665- case llvm::Triple::aarch64:
2666- IsBaseFound = AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx,
2667- " 4.2.1" ,
2668- " arm64-apple-darwin10" ,
2669- " " );
2670- break ;
2671- }
2648+ void DarwinClang::AddGnuCPlusPlusIncludePaths (
2649+ const llvm::opt::ArgList &DriverArgs,
2650+ llvm::opt::ArgStringList &CC1Args) const {
2651+ llvm::SmallString<128 > UsrIncludeCxx = GetEffectiveSysroot (DriverArgs);
2652+ llvm::sys::path::append (UsrIncludeCxx, " usr" , " include" , " c++" );
26722653
2673- if (!IsBaseFound) {
2674- getDriver ().Diag (diag::warn_drv_libstdcxx_not_found);
2675- }
2654+ llvm::Triple::ArchType arch = getTriple ().getArch ();
2655+ bool IsBaseFound = true ;
2656+ switch (arch) {
2657+ default :
2658+ break ;
2659+
2660+ case llvm::Triple::x86:
2661+ case llvm::Triple::x86_64:
2662+ IsBaseFound = AddGnuCPlusPlusIncludePaths (
2663+ DriverArgs, CC1Args, UsrIncludeCxx, " 4.2.1" , " i686-apple-darwin10" ,
2664+ arch == llvm::Triple::x86_64 ? " x86_64" : " " );
2665+ IsBaseFound |= AddGnuCPlusPlusIncludePaths (
2666+ DriverArgs, CC1Args, UsrIncludeCxx, " 4.0.0" , " i686-apple-darwin8" , " " );
2667+ break ;
2668+
2669+ case llvm::Triple::arm:
2670+ case llvm::Triple::thumb:
2671+ IsBaseFound =
2672+ AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx, " 4.2.1" ,
2673+ " arm-apple-darwin10" , " v7" );
2674+ IsBaseFound |=
2675+ AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx, " 4.2.1" ,
2676+ " arm-apple-darwin10" , " v6" );
2677+ break ;
26762678
2679+ case llvm::Triple::aarch64:
2680+ IsBaseFound =
2681+ AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx, " 4.2.1" ,
2682+ " arm64-apple-darwin10" , " " );
26772683 break ;
26782684 }
2685+
2686+ if (!IsBaseFound) {
2687+ getDriver ().Diag (diag::warn_drv_libstdcxx_not_found);
2688+ }
26792689}
26802690
2681- void DarwinClang ::AddCXXStdlibLibArgs (const ArgList &Args,
2682- ArgStringList &CmdArgs) const {
2691+ void AppleMachO ::AddCXXStdlibLibArgs (const ArgList &Args,
2692+ ArgStringList &CmdArgs) const {
26832693 CXXStdlibType Type = GetCXXStdlibType (Args);
26842694
26852695 switch (Type) {
@@ -3615,7 +3625,7 @@ SanitizerMask Darwin::getSupportedSanitizers() const {
36153625 return Res;
36163626}
36173627
3618- void Darwin ::printVerboseInfo (raw_ostream &OS) const {
3628+ void AppleMachO ::printVerboseInfo (raw_ostream &OS) const {
36193629 CudaInstallation->print (OS);
36203630 RocmInstallation->print (OS);
36213631}
0 commit comments