forked from OSchip/llvm-project
[driver][darwin] Don't use -platform_version flag by default (PR44813)
The code in llvmorg-10-init-12188-g25ce33a6e4f is a breaking change for users of older linkers who don't pass a version parameter, which prevents a drop-in clang upgrade. Old tools can't know about what future tools will do, so as a general principle the burden should be new tools to be compatible by default. Also, for comparison, none of the other tests of Version within AddLinkArgs add any new behaviors unless the version is explicitly specified. Therefore, this patch changes the -platform_version behavior from opt-out to opt-in. Patch by David Major! Differential revision: https://reviews.llvm.org/D74784
This commit is contained in:
parent
45abcd1df1
commit
5122e82870
|
@ -335,7 +335,7 @@ void darwin::Linker::AddLinkArgs(Compilation &C, const ArgList &Args,
|
|||
Args.AddAllArgs(CmdArgs, options::OPT_init);
|
||||
|
||||
// Add the deployment target.
|
||||
if (!Version[0] || Version[0] >= 520)
|
||||
if (Version[0] >= 520)
|
||||
MachOTC.addPlatformVersionArgs(Args, CmdArgs);
|
||||
else
|
||||
MachOTC.addMinVersionArgs(Args, CmdArgs);
|
||||
|
|
|
@ -1,9 +1,14 @@
|
|||
// RUN: touch %t.o
|
||||
|
||||
// RUN: %clang -target arm64-apple-ios12.3 -isysroot %S/Inputs/iPhoneOS13.0.sdk -mlinker-version=0 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=LINKER-OLD %s
|
||||
// RUN: %clang -target arm64-apple-ios12.3 -isysroot %S/Inputs/iPhoneOS13.0.sdk -mlinker-version=400 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=LINKER-OLD %s
|
||||
// RUN: %clang -target arm64-apple-ios12.3 -isysroot %S/Inputs/iPhoneOS13.0.sdk -mlinker-version=520 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck %s
|
||||
// RUN: | FileCheck --check-prefix=LINKER-NEW %s
|
||||
// RUN: %clang -target x86_64-apple-ios13-simulator -isysroot %S/Inputs/iPhoneOS13.0.sdk -mlinker-version=520 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SIMUL %s
|
||||
|
||||
// CHECK: "-platform_version" "ios" "12.3.0" "13.0"
|
||||
// LINKER-OLD: "-iphoneos_version_min" "12.3.0"
|
||||
// LINKER-NEW: "-platform_version" "ios" "12.3.0" "13.0"
|
||||
// SIMUL: "-platform_version" "ios-simulator" "13.0.0" "13.0"
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
// RUN: touch %t.o
|
||||
|
||||
// RUN: %clang -target x86_64-apple-macos10.13 -isysroot %S/Inputs/MacOSX10.14.sdk -mlinker-version=0 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck %s
|
||||
// RUN: | FileCheck --check-prefix=LINKER-OLD %s
|
||||
// RUN: %clang -target x86_64-apple-macos10.13 -isysroot %S/Inputs/MacOSX10.14.sdk -mlinker-version=400 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=LINKER-OLD %s
|
||||
// RUN: env SDKROOT=%S/Inputs/MacOSX10.14.sdk %clang -target x86_64-apple-macos10.13.0.1 -mlinker-version=520 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck %s
|
||||
// RUN: | FileCheck --check-prefix=LINKER-NEW %s
|
||||
|
||||
// CHECK: "-platform_version" "macos" "10.13.0" "10.14"
|
||||
// LINKER-OLD: "-macosx_version_min" "10.13.0"
|
||||
// LINKER-NEW: "-platform_version" "macos" "10.13.0" "10.14"
|
||||
|
||||
// RUN: %clang -target x86_64-apple-macos10.13 -mlinker-version=520 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=NOSDK %s
|
||||
|
|
|
@ -1,9 +1,14 @@
|
|||
// RUN: touch %t.o
|
||||
|
||||
// RUN: %clang -target arm64-apple-tvos12.3 -isysroot %S/Inputs/iPhoneOS13.0.sdk -mlinker-version=0 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=LINKER-OLD %s
|
||||
// RUN: %clang -target arm64-apple-tvos12.3 -isysroot %S/Inputs/iPhoneOS13.0.sdk -mlinker-version=400 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=LINKER-OLD %s
|
||||
// RUN: %clang -target arm64-apple-tvos12.3 -isysroot %S/Inputs/iPhoneOS13.0.sdk -mlinker-version=520 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck %s
|
||||
// RUN: | FileCheck --check-prefix=LINKER-NEW %s
|
||||
// RUN: %clang -target x86_64-apple-tvos13-simulator -isysroot %S/Inputs/iPhoneOS13.0.sdk -mlinker-version=520 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SIMUL %s
|
||||
|
||||
// CHECK: "-platform_version" "tvos" "12.3.0" "13.0"
|
||||
// LINKER-OLD: "-tvos_version_min" "12.3.0"
|
||||
// LINKER-NEW: "-platform_version" "tvos" "12.3.0" "13.0"
|
||||
// SIMUL: "-platform_version" "tvos-simulator" "13.0.0" "13.0"
|
||||
|
|
|
@ -1,9 +1,14 @@
|
|||
// RUN: touch %t.o
|
||||
|
||||
// RUN: %clang -target arm64_32-apple-watchos5.2 -isysroot %S/Inputs/WatchOS6.0.sdk -mlinker-version=0 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=LINKER-OLD %s
|
||||
// RUN: %clang -target arm64_32-apple-watchos5.2 -isysroot %S/Inputs/WatchOS6.0.sdk -mlinker-version=400 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=LINKER-OLD %s
|
||||
// RUN: %clang -target arm64_32-apple-watchos5.2 -isysroot %S/Inputs/WatchOS6.0.sdk -mlinker-version=520 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck %s
|
||||
// RUN: | FileCheck --check-prefix=LINKER-NEW %s
|
||||
// RUN: %clang -target x86_64-apple-watchos6-simulator -isysroot %S/Inputs/WatchOS6.0.sdk -mlinker-version=520 -### %t.o 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=SIMUL %s
|
||||
|
||||
// CHECK: "-platform_version" "watchos" "5.2.0" "6.0.0"
|
||||
// LINKER-OLD: "-watchos_version_min" "5.2.0"
|
||||
// LINKER-NEW: "-platform_version" "watchos" "5.2.0" "6.0.0"
|
||||
// SIMUL: "-platform_version" "watchos-simulator" "6.0.0" "6.0.0"
|
||||
|
|
Loading…
Reference in New Issue