@@ -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
@@ -1119,6 +1123,8 @@ VersionTuple MachO::getLinkerVersion(const llvm::opt::ArgList &Args) const {
11191123
11201124Darwin::~Darwin () {}
11211125
1126+ AppleMachO::~AppleMachO () {}
1127+
11221128MachO::~MachO () {}
11231129
11241130std::string Darwin::ComputeEffectiveClangTriple (const ArgList &Args,
@@ -2482,7 +2488,7 @@ static void AppendPlatformPrefix(SmallString<128> &Path,
24822488// Returns the effective sysroot from either -isysroot or --sysroot, plus the
24832489// platform prefix (if any).
24842490llvm::SmallString<128 >
2485- DarwinClang ::GetEffectiveSysroot (const llvm::opt::ArgList &DriverArgs) const {
2491+ AppleMachO ::GetEffectiveSysroot (const llvm::opt::ArgList &DriverArgs) const {
24862492 llvm::SmallString<128 > Path (" /" );
24872493 if (DriverArgs.hasArg (options::OPT_isysroot))
24882494 Path = DriverArgs.getLastArgValue (options::OPT_isysroot);
@@ -2495,8 +2501,9 @@ DarwinClang::GetEffectiveSysroot(const llvm::opt::ArgList &DriverArgs) const {
24952501 return Path;
24962502}
24972503
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 {
25002507 const Driver &D = getDriver ();
25012508
25022509 llvm::SmallString<128 > Sysroot = GetEffectiveSysroot (DriverArgs);
@@ -2574,7 +2581,7 @@ bool DarwinClang::AddGnuCPlusPlusIncludePaths(const llvm::opt::ArgList &DriverAr
25742581 return getVFS ().exists (Base);
25752582}
25762583
2577- void DarwinClang ::AddClangCXXStdlibIncludeArgs (
2584+ void AppleMachO ::AddClangCXXStdlibIncludeArgs (
25782585 const llvm::opt::ArgList &DriverArgs,
25792586 llvm::opt::ArgStringList &CC1Args) const {
25802587 // The implementation from a base class will pass through the -stdlib to
@@ -2631,55 +2638,60 @@ void DarwinClang::AddClangCXXStdlibIncludeArgs(
26312638 }
26322639
26332640 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+ }
26522645
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 {}
26642649
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++" );
26722655
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 ;
26762661
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" , " " );
26772685 break ;
26782686 }
2687+
2688+ if (!IsBaseFound) {
2689+ getDriver ().Diag (diag::warn_drv_libstdcxx_not_found);
2690+ }
26792691}
26802692
2681- void DarwinClang ::AddCXXStdlibLibArgs (const ArgList &Args,
2682- ArgStringList &CmdArgs) const {
2693+ void AppleMachO ::AddCXXStdlibLibArgs (const ArgList &Args,
2694+ ArgStringList &CmdArgs) const {
26832695 CXXStdlibType Type = GetCXXStdlibType (Args);
26842696
26852697 switch (Type) {
@@ -3615,7 +3627,7 @@ SanitizerMask Darwin::getSupportedSanitizers() const {
36153627 return Res;
36163628}
36173629
3618- void Darwin ::printVerboseInfo (raw_ostream &OS) const {
3630+ void AppleMachO ::printVerboseInfo (raw_ostream &OS) const {
36193631 CudaInstallation->print (OS);
36203632 RocmInstallation->print (OS);
36213633}
0 commit comments