@@ -966,11 +966,14 @@ MachO::MachO(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
966
966
getProgramPaths ().push_back (getDriver ().Dir );
967
967
}
968
968
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), SYCLInstallation(D, Triple, Args) {}
973
+
969
974
// / Darwin - Darwin tool chain for i386 and x86_64.
970
975
Darwin::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),
973
- SYCLInstallation(D, Triple, Args) {}
976
+ : AppleMachO(D, Triple, Args), TargetInitialized(false ) {}
974
977
975
978
types::ID MachO::LookupTypeForExtension (StringRef Ext) const {
976
979
types::ID Ty = ToolChain::LookupTypeForExtension (Ext);
@@ -1019,18 +1022,18 @@ bool Darwin::hasBlocksRuntime() const {
1019
1022
}
1020
1023
}
1021
1024
1022
- void Darwin ::AddCudaIncludeArgs (const ArgList &DriverArgs,
1023
- ArgStringList &CC1Args) const {
1025
+ void AppleMachO ::AddCudaIncludeArgs (const ArgList &DriverArgs,
1026
+ ArgStringList &CC1Args) const {
1024
1027
CudaInstallation->AddCudaIncludeArgs (DriverArgs, CC1Args);
1025
1028
}
1026
1029
1027
- void Darwin ::AddHIPIncludeArgs (const ArgList &DriverArgs,
1028
- ArgStringList &CC1Args) const {
1030
+ void AppleMachO ::AddHIPIncludeArgs (const ArgList &DriverArgs,
1031
+ ArgStringList &CC1Args) const {
1029
1032
RocmInstallation->AddHIPIncludeArgs (DriverArgs, CC1Args);
1030
1033
}
1031
1034
1032
- void Darwin ::addSYCLIncludeArgs (const ArgList &DriverArgs,
1033
- ArgStringList &CC1Args) const {
1035
+ void AppleMachO ::addSYCLIncludeArgs (const ArgList &DriverArgs,
1036
+ ArgStringList &CC1Args) const {
1034
1037
SYCLInstallation->addSYCLIncludeArgs (DriverArgs, CC1Args);
1035
1038
}
1036
1039
@@ -1125,6 +1128,8 @@ VersionTuple MachO::getLinkerVersion(const llvm::opt::ArgList &Args) const {
1125
1128
1126
1129
Darwin::~Darwin () {}
1127
1130
1131
+ AppleMachO::~AppleMachO () {}
1132
+
1128
1133
MachO::~MachO () {}
1129
1134
1130
1135
std::string Darwin::ComputeEffectiveClangTriple (const ArgList &Args,
@@ -2488,7 +2493,7 @@ static void AppendPlatformPrefix(SmallString<128> &Path,
2488
2493
// Returns the effective sysroot from either -isysroot or --sysroot, plus the
2489
2494
// platform prefix (if any).
2490
2495
llvm::SmallString<128 >
2491
- DarwinClang ::GetEffectiveSysroot (const llvm::opt::ArgList &DriverArgs) const {
2496
+ AppleMachO ::GetEffectiveSysroot (const llvm::opt::ArgList &DriverArgs) const {
2492
2497
llvm::SmallString<128 > Path (" /" );
2493
2498
if (DriverArgs.hasArg (options::OPT_isysroot))
2494
2499
Path = DriverArgs.getLastArgValue (options::OPT_isysroot);
@@ -2501,8 +2506,9 @@ DarwinClang::GetEffectiveSysroot(const llvm::opt::ArgList &DriverArgs) const {
2501
2506
return Path;
2502
2507
}
2503
2508
2504
- void DarwinClang::AddClangSystemIncludeArgs (const llvm::opt::ArgList &DriverArgs,
2505
- llvm::opt::ArgStringList &CC1Args) const {
2509
+ void AppleMachO::AddClangSystemIncludeArgs (
2510
+ const llvm::opt::ArgList &DriverArgs,
2511
+ llvm::opt::ArgStringList &CC1Args) const {
2506
2512
const Driver &D = getDriver ();
2507
2513
2508
2514
llvm::SmallString<128 > Sysroot = GetEffectiveSysroot (DriverArgs);
@@ -2580,7 +2586,7 @@ bool DarwinClang::AddGnuCPlusPlusIncludePaths(const llvm::opt::ArgList &DriverAr
2580
2586
return getVFS ().exists (Base);
2581
2587
}
2582
2588
2583
- void DarwinClang ::AddClangCXXStdlibIncludeArgs (
2589
+ void AppleMachO ::AddClangCXXStdlibIncludeArgs (
2584
2590
const llvm::opt::ArgList &DriverArgs,
2585
2591
llvm::opt::ArgStringList &CC1Args) const {
2586
2592
// The implementation from a base class will pass through the -stdlib to
@@ -2637,55 +2643,60 @@ void DarwinClang::AddClangCXXStdlibIncludeArgs(
2637
2643
}
2638
2644
2639
2645
case ToolChain::CST_Libstdcxx:
2640
- llvm::SmallString<128 > UsrIncludeCxx = Sysroot;
2641
- llvm::sys::path::append (UsrIncludeCxx, " usr" , " include" , " c++" );
2642
-
2643
- llvm::Triple::ArchType arch = getTriple ().getArch ();
2644
- bool IsBaseFound = true ;
2645
- switch (arch) {
2646
- default : break ;
2647
-
2648
- case llvm::Triple::x86:
2649
- case llvm::Triple::x86_64:
2650
- IsBaseFound = AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx,
2651
- " 4.2.1" ,
2652
- " i686-apple-darwin10" ,
2653
- arch == llvm::Triple::x86_64 ? " x86_64" : " " );
2654
- IsBaseFound |= AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx,
2655
- " 4.0.0" , " i686-apple-darwin8" ,
2656
- " " );
2657
- break ;
2646
+ AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args);
2647
+ break ;
2648
+ }
2649
+ }
2658
2650
2659
- case llvm::Triple::arm:
2660
- case llvm::Triple::thumb:
2661
- IsBaseFound = AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx,
2662
- " 4.2.1" ,
2663
- " arm-apple-darwin10" ,
2664
- " v7" );
2665
- IsBaseFound |= AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx,
2666
- " 4.2.1" ,
2667
- " arm-apple-darwin10" ,
2668
- " v6" );
2669
- break ;
2651
+ void AppleMachO::AddGnuCPlusPlusIncludePaths (
2652
+ const llvm::opt::ArgList &DriverArgs,
2653
+ llvm::opt::ArgStringList &CC1Args) const {}
2670
2654
2671
- case llvm::Triple::aarch64:
2672
- IsBaseFound = AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx,
2673
- " 4.2.1" ,
2674
- " arm64-apple-darwin10" ,
2675
- " " );
2676
- break ;
2677
- }
2655
+ void DarwinClang::AddGnuCPlusPlusIncludePaths (
2656
+ const llvm::opt::ArgList &DriverArgs,
2657
+ llvm::opt::ArgStringList &CC1Args) const {
2658
+ llvm::SmallString<128 > UsrIncludeCxx = GetEffectiveSysroot (DriverArgs);
2659
+ llvm::sys::path::append (UsrIncludeCxx, " usr" , " include" , " c++" );
2678
2660
2679
- if (!IsBaseFound) {
2680
- getDriver ().Diag (diag::warn_drv_libstdcxx_not_found);
2681
- }
2661
+ llvm::Triple::ArchType arch = getTriple ().getArch ();
2662
+ bool IsBaseFound = true ;
2663
+ switch (arch) {
2664
+ default :
2665
+ break ;
2682
2666
2667
+ case llvm::Triple::x86:
2668
+ case llvm::Triple::x86_64:
2669
+ IsBaseFound = AddGnuCPlusPlusIncludePaths (
2670
+ DriverArgs, CC1Args, UsrIncludeCxx, " 4.2.1" , " i686-apple-darwin10" ,
2671
+ arch == llvm::Triple::x86_64 ? " x86_64" : " " );
2672
+ IsBaseFound |= AddGnuCPlusPlusIncludePaths (
2673
+ DriverArgs, CC1Args, UsrIncludeCxx, " 4.0.0" , " i686-apple-darwin8" , " " );
2674
+ break ;
2675
+
2676
+ case llvm::Triple::arm:
2677
+ case llvm::Triple::thumb:
2678
+ IsBaseFound =
2679
+ AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx, " 4.2.1" ,
2680
+ " arm-apple-darwin10" , " v7" );
2681
+ IsBaseFound |=
2682
+ AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx, " 4.2.1" ,
2683
+ " arm-apple-darwin10" , " v6" );
2684
+ break ;
2685
+
2686
+ case llvm::Triple::aarch64:
2687
+ IsBaseFound =
2688
+ AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx, " 4.2.1" ,
2689
+ " arm64-apple-darwin10" , " " );
2683
2690
break ;
2684
2691
}
2692
+
2693
+ if (!IsBaseFound) {
2694
+ getDriver ().Diag (diag::warn_drv_libstdcxx_not_found);
2695
+ }
2685
2696
}
2686
2697
2687
- void DarwinClang ::AddCXXStdlibLibArgs (const ArgList &Args,
2688
- ArgStringList &CmdArgs) const {
2698
+ void AppleMachO ::AddCXXStdlibLibArgs (const ArgList &Args,
2699
+ ArgStringList &CmdArgs) const {
2689
2700
CXXStdlibType Type = GetCXXStdlibType (Args);
2690
2701
2691
2702
switch (Type) {
@@ -3621,7 +3632,7 @@ SanitizerMask Darwin::getSupportedSanitizers() const {
3621
3632
return Res;
3622
3633
}
3623
3634
3624
- void Darwin ::printVerboseInfo (raw_ostream &OS) const {
3635
+ void AppleMachO ::printVerboseInfo (raw_ostream &OS) const {
3625
3636
CudaInstallation->print (OS);
3626
3637
RocmInstallation->print (OS);
3627
3638
}
0 commit comments