[PATCH] D136315: [clang][Darwin] Try to guess the SDK root with xcrun when unspecified
Caleb Zulawski via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 19 16:47:03 PST 2023
calebzulawski added a comment.
@jryans thanks.
I've confirmed that this is specifically a bug with `darwin` targets (not `macos`) not respecting platform versions when an SDK is present, I can even reproduce this with clang provided with Xcode.
The following patch, for example, completely resolves all test errors for me:
diff
diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp
index 03c28c14a0ec..a177a1d289b4 100644
--- a/clang/lib/Driver/ToolChains/Darwin.cpp
+++ b/clang/lib/Driver/ToolChains/Darwin.cpp
@@ -2141,13 +2141,14 @@ void Darwin::AddDeploymentTarget(DerivedArgList &Args) const {
else
SDKName = "iphoneos";
break;
- case llvm::Triple::OSType::Darwin:
case llvm::Triple::OSType::MacOSX:
SDKName = "macosx";
break;
case llvm::Triple::OSType::DriverKit:
SDKName = "driverkit";
break;
+ case llvm::Triple::OSType::Darwin:
+ break;
default:
llvm_unreachable("unknown kind of Darwin platform");
}
diff --git a/clang/test/Driver/darwin-ld-platform-version-macos.c b/clang/test/Driver/darwin-ld-platform-version-macos.c
index 355df8dfc1bc..5e50d84df6da 100644
--- a/clang/test/Driver/darwin-ld-platform-version-macos.c
+++ b/clang/test/Driver/darwin-ld-platform-version-macos.c
@@ -41,9 +41,6 @@
// ARM64_NEW_1: "-platform_version" "macos" "11.1.0" "10.14"
// ARM64_OLD: "-macosx_version_min" "11.0.0"
-// RUN: %clang -target x86_64-apple-macos10.13 -mlinker-version=520 \
-// RUN: -### %t.o 2>&1 \
-// RUN: | FileCheck --check-prefix=NOSDK %s
// RUN: %clang -target x86_64-apple-darwin17 -mlinker-version=520 \
// RUN: -### %t.o 2>&1 \
// RUN: | FileCheck --check-prefix=NOSDK %s
diff --git a/clang/test/Driver/darwin-sdk-detect.c b/clang/test/Driver/darwin-sdk-detect.c
index dff4def0568a..c5b270c526bd 100644
--- a/clang/test/Driver/darwin-sdk-detect.c
+++ b/clang/test/Driver/darwin-sdk-detect.c
@@ -3,7 +3,7 @@
// Check that we default to running `xcrun --show-sdk-path` if there is no
// SDKROOT defined in the environment.
//
-// RUN: env -u SDKROOT %clang -target x86_64-apple-darwin -c %s -### 2> %t.log
+// RUN: env -u SDKROOT %clang -target x86_64-apple-macos -c %s -### 2> %t.log
// RUN: FileCheck --check-prefix=CHECK-XC < %t.log %s
//
// CHECK-XC: clang
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D136315/new/
https://reviews.llvm.org/D136315
More information about the cfe-commits
mailing list