forked from OSchip/llvm-project
Revert r305678: [driver][macOS] Pick the system version for the
deployment target if the SDK is newer than the system This commit also reverts follow-up commits r305680 and r305685 that have buildbot fixes. The change in r305678 wasn't correct because it relied on `llvm::sys::getProcessTriple`, which uses a pre-configured OS version. We should lookup the actual macOS version of the system on which the compiler is running. llvm-svn: 305891
This commit is contained in:
parent
200b328972
commit
71d72135b0
|
@ -1118,27 +1118,6 @@ void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args,
|
|||
}
|
||||
}
|
||||
|
||||
/// Returns the most appropriate macOS target version for the current process.
|
||||
///
|
||||
/// If the macOS SDK version is the same or earlier than the system version,
|
||||
/// then the SDK version is returned. Otherwise the system version is returned.
|
||||
static std::string getSystemOrSDKMacOSVersion(StringRef MacOSSDKVersion) {
|
||||
unsigned Major, Minor, Micro;
|
||||
llvm::Triple SystemTriple(llvm::sys::getProcessTriple());
|
||||
if (!SystemTriple.isMacOSX())
|
||||
return MacOSSDKVersion;
|
||||
SystemTriple.getMacOSXVersion(Major, Minor, Micro);
|
||||
VersionTuple SystemVersion(Major, Minor, Micro);
|
||||
bool HadExtra;
|
||||
if (!Driver::GetReleaseVersion(MacOSSDKVersion, Major, Minor, Micro,
|
||||
HadExtra))
|
||||
return MacOSSDKVersion;
|
||||
VersionTuple SDKVersion(Major, Minor, Micro);
|
||||
if (SDKVersion > SystemVersion)
|
||||
return SystemVersion.getAsString();
|
||||
return MacOSSDKVersion;
|
||||
}
|
||||
|
||||
void Darwin::AddDeploymentTarget(DerivedArgList &Args) const {
|
||||
const OptTable &Opts = getDriver().getOpts();
|
||||
|
||||
|
@ -1231,7 +1210,7 @@ void Darwin::AddDeploymentTarget(DerivedArgList &Args) const {
|
|||
SDK.startswith("iPhoneSimulator"))
|
||||
iOSTarget = Version;
|
||||
else if (SDK.startswith("MacOSX"))
|
||||
OSXTarget = getSystemOrSDKMacOSVersion(Version);
|
||||
OSXTarget = Version;
|
||||
else if (SDK.startswith("WatchOS") ||
|
||||
SDK.startswith("WatchSimulator"))
|
||||
WatchOSTarget = Version;
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
// REQUIRES: system-darwin
|
||||
|
||||
// Ensure that we never pick a version that's based on the SDK that's newer than
|
||||
// the system version:
|
||||
// RUN: rm -rf %t/SDKs/MacOSX10.99.99.sdk
|
||||
// RUN: mkdir -p %t/SDKs/MacOSX10.99.99.sdk
|
||||
// RUN: %clang -target x86_64-apple-darwin -isysroot %t/SDKs/MacOSX10.99.99.sdk %s -### 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-MACOSX-SYSTEM-VERSION %s
|
||||
|
||||
// CHECK-MACOSX-SYSTEM-VERSION-NOT: 10.99.99"
|
Loading…
Reference in New Issue