@@ -966,10 +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) {}
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) {}
976
+ : AppleMachO(D, Triple, Args), TargetInitialized(false ) {}
973
977
974
978
types::ID MachO::LookupTypeForExtension (StringRef Ext) const {
975
979
types::ID Ty = ToolChain::LookupTypeForExtension (Ext);
@@ -1018,13 +1022,13 @@ bool Darwin::hasBlocksRuntime() const {
1018
1022
}
1019
1023
}
1020
1024
1021
- void Darwin ::AddCudaIncludeArgs (const ArgList &DriverArgs,
1022
- ArgStringList &CC1Args) const {
1025
+ void AppleMachO ::AddCudaIncludeArgs (const ArgList &DriverArgs,
1026
+ ArgStringList &CC1Args) const {
1023
1027
CudaInstallation->AddCudaIncludeArgs (DriverArgs, CC1Args);
1024
1028
}
1025
1029
1026
- void Darwin ::AddHIPIncludeArgs (const ArgList &DriverArgs,
1027
- ArgStringList &CC1Args) const {
1030
+ void AppleMachO ::AddHIPIncludeArgs (const ArgList &DriverArgs,
1031
+ ArgStringList &CC1Args) const {
1028
1032
RocmInstallation->AddHIPIncludeArgs (DriverArgs, CC1Args);
1029
1033
}
1030
1034
@@ -1119,6 +1123,8 @@ VersionTuple MachO::getLinkerVersion(const llvm::opt::ArgList &Args) const {
1119
1123
1120
1124
Darwin::~Darwin () {}
1121
1125
1126
+ AppleMachO::~AppleMachO () {}
1127
+
1122
1128
MachO::~MachO () {}
1123
1129
1124
1130
std::string Darwin::ComputeEffectiveClangTriple (const ArgList &Args,
@@ -2482,7 +2488,7 @@ static void AppendPlatformPrefix(SmallString<128> &Path,
2482
2488
// Returns the effective sysroot from either -isysroot or --sysroot, plus the
2483
2489
// platform prefix (if any).
2484
2490
llvm::SmallString<128 >
2485
- DarwinClang ::GetEffectiveSysroot (const llvm::opt::ArgList &DriverArgs) const {
2491
+ AppleMachO ::GetEffectiveSysroot (const llvm::opt::ArgList &DriverArgs) const {
2486
2492
llvm::SmallString<128 > Path (" /" );
2487
2493
if (DriverArgs.hasArg (options::OPT_isysroot))
2488
2494
Path = DriverArgs.getLastArgValue (options::OPT_isysroot);
@@ -2495,8 +2501,9 @@ DarwinClang::GetEffectiveSysroot(const llvm::opt::ArgList &DriverArgs) const {
2495
2501
return Path;
2496
2502
}
2497
2503
2498
- void DarwinClang::AddClangSystemIncludeArgs (const llvm::opt::ArgList &DriverArgs,
2499
- llvm::opt::ArgStringList &CC1Args) const {
2504
+ void AppleMachO::AddClangSystemIncludeArgs (
2505
+ const llvm::opt::ArgList &DriverArgs,
2506
+ llvm::opt::ArgStringList &CC1Args) const {
2500
2507
const Driver &D = getDriver ();
2501
2508
2502
2509
llvm::SmallString<128 > Sysroot = GetEffectiveSysroot (DriverArgs);
@@ -2574,7 +2581,7 @@ bool DarwinClang::AddGnuCPlusPlusIncludePaths(const llvm::opt::ArgList &DriverAr
2574
2581
return getVFS ().exists (Base);
2575
2582
}
2576
2583
2577
- void DarwinClang ::AddClangCXXStdlibIncludeArgs (
2584
+ void AppleMachO ::AddClangCXXStdlibIncludeArgs (
2578
2585
const llvm::opt::ArgList &DriverArgs,
2579
2586
llvm::opt::ArgStringList &CC1Args) const {
2580
2587
// The implementation from a base class will pass through the -stdlib to
@@ -2631,55 +2638,60 @@ void DarwinClang::AddClangCXXStdlibIncludeArgs(
2631
2638
}
2632
2639
2633
2640
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 ;
2641
+ AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args);
2642
+ break ;
2643
+ }
2644
+ }
2652
2645
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 ;
2646
+ void AppleMachO::AddGnuCPlusPlusIncludePaths (
2647
+ const llvm::opt::ArgList &DriverArgs,
2648
+ llvm::opt::ArgStringList &CC1Args) const {}
2664
2649
2665
- case llvm::Triple::aarch64:
2666
- IsBaseFound = AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx,
2667
- " 4.2.1" ,
2668
- " arm64-apple-darwin10" ,
2669
- " " );
2670
- break ;
2671
- }
2650
+ void DarwinClang::AddGnuCPlusPlusIncludePaths (
2651
+ const llvm::opt::ArgList &DriverArgs,
2652
+ llvm::opt::ArgStringList &CC1Args) const {
2653
+ llvm::SmallString<128 > UsrIncludeCxx = GetEffectiveSysroot (DriverArgs);
2654
+ llvm::sys::path::append (UsrIncludeCxx, " usr" , " include" , " c++" );
2672
2655
2673
- if (!IsBaseFound) {
2674
- getDriver ().Diag (diag::warn_drv_libstdcxx_not_found);
2675
- }
2656
+ llvm::Triple::ArchType arch = getTriple ().getArch ();
2657
+ bool IsBaseFound = true ;
2658
+ switch (arch) {
2659
+ default :
2660
+ break ;
2676
2661
2662
+ case llvm::Triple::x86:
2663
+ case llvm::Triple::x86_64:
2664
+ IsBaseFound = AddGnuCPlusPlusIncludePaths (
2665
+ DriverArgs, CC1Args, UsrIncludeCxx, " 4.2.1" , " i686-apple-darwin10" ,
2666
+ arch == llvm::Triple::x86_64 ? " x86_64" : " " );
2667
+ IsBaseFound |= AddGnuCPlusPlusIncludePaths (
2668
+ DriverArgs, CC1Args, UsrIncludeCxx, " 4.0.0" , " i686-apple-darwin8" , " " );
2669
+ break ;
2670
+
2671
+ case llvm::Triple::arm:
2672
+ case llvm::Triple::thumb:
2673
+ IsBaseFound =
2674
+ AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx, " 4.2.1" ,
2675
+ " arm-apple-darwin10" , " v7" );
2676
+ IsBaseFound |=
2677
+ AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx, " 4.2.1" ,
2678
+ " arm-apple-darwin10" , " v6" );
2679
+ break ;
2680
+
2681
+ case llvm::Triple::aarch64:
2682
+ IsBaseFound =
2683
+ AddGnuCPlusPlusIncludePaths (DriverArgs, CC1Args, UsrIncludeCxx, " 4.2.1" ,
2684
+ " arm64-apple-darwin10" , " " );
2677
2685
break ;
2678
2686
}
2687
+
2688
+ if (!IsBaseFound) {
2689
+ getDriver ().Diag (diag::warn_drv_libstdcxx_not_found);
2690
+ }
2679
2691
}
2680
2692
2681
- void DarwinClang ::AddCXXStdlibLibArgs (const ArgList &Args,
2682
- ArgStringList &CmdArgs) const {
2693
+ void AppleMachO ::AddCXXStdlibLibArgs (const ArgList &Args,
2694
+ ArgStringList &CmdArgs) const {
2683
2695
CXXStdlibType Type = GetCXXStdlibType (Args);
2684
2696
2685
2697
switch (Type) {
@@ -3615,7 +3627,7 @@ SanitizerMask Darwin::getSupportedSanitizers() const {
3615
3627
return Res;
3616
3628
}
3617
3629
3618
- void Darwin ::printVerboseInfo (raw_ostream &OS) const {
3630
+ void AppleMachO ::printVerboseInfo (raw_ostream &OS) const {
3619
3631
CudaInstallation->print (OS);
3620
3632
RocmInstallation->print (OS);
3621
3633
}
0 commit comments