Skip to content

Commit 5904da1

Browse files
authored
Merge pull request #84440 from owenv/owenv/6.2-rpath
[6.2]Update OS versions requiring stdlib OS rpaths
2 parents 295b5c6 + 8c51b89 commit 5904da1

File tree

4 files changed

+29
-15
lines changed

4 files changed

+29
-15
lines changed

lib/Basic/Platform.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,23 +117,32 @@ bool swift::tripleRequiresRPathForSwiftLibrariesInOS(
117117
// macOS versions before 10.14.4 don't have Swift in the OS
118118
// (the linker still uses an rpath-based install name until 10.15).
119119
// macOS versions before 12.0 don't have _Concurrency in the OS.
120-
return triple.isMacOSXVersionLT(12, 0);
120+
// macOS versions before 26.0 don't have Span in stdlib.
121+
return triple.isMacOSXVersionLT(26, 0);
121122
}
122123

123124
if (triple.isiOS()) {
124125
// iOS versions before 12.2 don't have Swift in the OS.
125126
// iOS versions before 15.0 don't have _Concurrency in the OS.
126-
return triple.isOSVersionLT(15, 0);
127+
// iOS versions before 26.0 don't have Span in stdlib.
128+
return triple.isOSVersionLT(26, 0);
127129
}
128130

129131
if (triple.isWatchOS()) {
130132
// watchOS versions before 5.2 don't have Swift in the OS.
131133
// watchOS versions before 8.0 don't have _Concurrency in the OS.
132-
return triple.isOSVersionLT(8, 0);
134+
// watchOS versions before 26.0 don't have Span in stdlib.
135+
return triple.isOSVersionLT(26, 0);
136+
}
137+
138+
if (triple.isTvOS()) {
139+
// tvOS versions before 26.0 don't have Span in stdlib.
140+
return triple.isOSVersionLT(26, 0);
133141
}
134142

135143
if (triple.isXROS()) {
136-
return triple.isOSVersionLT(1, 0);
144+
// visionOS versions before 26.0 don't have Span in stdlib.
145+
return triple.isOSVersionLT(26, 0);
137146
}
138147

139148
// Other platforms don't have Swift installed as part of the OS by default.

test/Driver/linker-rpath.swift

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,37 @@
88
// RUN: %swiftc_driver_plain -driver-print-jobs -target x86_64-apple-macosx10.14.4 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
99
// RUN: %swiftc_driver_plain -driver-print-jobs -target x86_64-apple-macosx10.15 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
1010
// RUN: %swiftc_driver_plain -driver-print-jobs -target x86_64-apple-macosx11.0 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
11-
// RUN: %swiftc_driver_plain -driver-print-jobs -target x86_64-apple-macosx12.0 %S/../Inputs/empty.swift | %FileCheck -check-prefix NO-RPATH %s
11+
// RUN: %swiftc_driver_plain -driver-print-jobs -target x86_64-apple-macosx12.0 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
12+
// RUN: %swiftc_driver_plain -driver-print-jobs -target x86_64-apple-macosx26.0 %S/../Inputs/empty.swift | %FileCheck -check-prefix NO-RPATH %s
1213

1314
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-ios12 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
1415
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-ios12.1 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
1516
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-ios12.2 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
1617
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-ios13 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
1718
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-ios14 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
18-
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-ios15 %S/../Inputs/empty.swift | %FileCheck -check-prefix NO-RPATH %s
19+
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-ios15 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
20+
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-ios26 %S/../Inputs/empty.swift | %FileCheck -check-prefix NO-RPATH %s
1921

2022
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-ios13.1-macabi %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
2123
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-ios14-macabi %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
22-
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-ios15-macabi %S/../Inputs/empty.swift | %FileCheck -check-prefix NO-RPATH %s
24+
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-ios15-macabi %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
25+
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-ios26-macabi %S/../Inputs/empty.swift | %FileCheck -check-prefix NO-RPATH %s
2326

2427
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-tvos12 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
2528
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-tvos12.1 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
2629
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-tvos12.2 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
2730
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-tvos13 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
2831
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-tvos14 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
29-
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-tvos15 %S/../Inputs/empty.swift | %FileCheck -check-prefix NO-RPATH %s
32+
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-tvos15 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
33+
// RUN: %swiftc_driver_plain -driver-print-jobs -target arm64-apple-tvos26 %S/../Inputs/empty.swift | %FileCheck -check-prefix NO-RPATH %s
3034

3135
// RUN: %swiftc_driver_plain -driver-print-jobs -target armv7k-apple-watchos5 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
3236
// RUN: %swiftc_driver_plain -driver-print-jobs -target armv7k-apple-watchos5.1 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
3337
// RUN: %swiftc_driver_plain -driver-print-jobs -target armv7k-apple-watchos5.2 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
3438
// RUN: %swiftc_driver_plain -driver-print-jobs -target armv7k-apple-watchos6 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
3539
// RUN: %swiftc_driver_plain -driver-print-jobs -target armv7k-apple-watchos7 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
36-
// RUN: %swiftc_driver_plain -driver-print-jobs -target armv7k-apple-watchos8 %S/../Inputs/empty.swift | %FileCheck -check-prefix NO-RPATH %s
40+
// RUN: %swiftc_driver_plain -driver-print-jobs -target armv7k-apple-watchos8 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
41+
// RUN: %swiftc_driver_plain -driver-print-jobs -target armv7k-apple-watchos26 %S/../Inputs/empty.swift | %FileCheck -check-prefix NO-RPATH %s
3742

3843
// RPATH: bin/ld{{"? }}
3944
// RPATH-SAME: -rpath {{"?/usr/lib/swift(-.+)?"? }}
@@ -51,7 +56,7 @@
5156

5257
// ### Test with -no-toolchain-stdlib-rpath
5358
// RUN: %swiftc_driver_plain -driver-print-jobs -no-toolchain-stdlib-rpath -target x86_64-apple-macosx10.9 %S/../Inputs/empty.swift | %FileCheck -check-prefix RPATH %s
54-
// RUN: %swiftc_driver_plain -driver-print-jobs -no-toolchain-stdlib-rpath -target x86_64-apple-macosx12.0 %S/../Inputs/empty.swift | %FileCheck -check-prefix NO-RPATH %s
59+
// RUN: %swiftc_driver_plain -driver-print-jobs -no-toolchain-stdlib-rpath -target x86_64-apple-macosx26.0 %S/../Inputs/empty.swift | %FileCheck -check-prefix NO-RPATH %s
5560

5661
// TOOLCHAIN-RPATH: bin/ld{{"? }}
5762
// TOOLCHAIN-RPATH-SAME: -rpath garbage/[[PLATFORM]]{{ }}

test/Driver/print_target_info.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
// RUN: %swift_driver -print-target-info -target x86_64-apple-macosx10.15 -target-variant x86_64-apple-ios13.1-macabi | %FileCheck -check-prefix CHECK-PRE-CONCURRENCY-ZIPPERED %s
1212
// RUN: %target-swift-frontend -print-target-info -target x86_64-apple-macosx10.15 -target-variant x86_64-apple-ios13.1-macabi | %FileCheck -check-prefix CHECK-PRE-CONCURRENCY-ZIPPERED %s
1313

14-
// RUN: %swift_driver -print-target-info -target x86_64-apple-macosx12.0 -target-variant x86_64-apple-ios15-macabi | %FileCheck -check-prefix CHECK-ZIPPERED %s
15-
// RUN: %target-swift-frontend -print-target-info -target x86_64-apple-macosx12.0 -target-variant x86_64-apple-ios15-macabi | %FileCheck -check-prefix CHECK-ZIPPERED %s
14+
// RUN: %swift_driver -print-target-info -target x86_64-apple-macosx26.0 -target-variant x86_64-apple-ios26-macabi | %FileCheck -check-prefix CHECK-ZIPPERED %s
15+
// RUN: %target-swift-frontend -print-target-info -target x86_64-apple-macosx26.0 -target-variant x86_64-apple-ios26-macabi | %FileCheck -check-prefix CHECK-ZIPPERED %s
1616

1717
// RUN: %swift_driver -print-target-info -target x86_64-apple-ios12.0 | %FileCheck -check-prefix CHECK-IOS-SIM %s
1818

@@ -90,14 +90,14 @@
9090
// CHECK-PRE-CONCURRENCY-ZIPPERED: }
9191

9292
// CHECK-ZIPPERED: "target": {
93-
// CHECK-ZIPPERED: "triple": "x86_64-apple-macosx12.0"
93+
// CHECK-ZIPPERED: "triple": "x86_64-apple-macosx26.0"
9494
// CHECK-ZIPPERED: "unversionedTriple": "x86_64-apple-macosx"
9595
// CHECK-ZIPPERED: "moduleTriple": "x86_64-apple-macos"
9696
// CHECK-ZIPPERED: "librariesRequireRPath": false
9797
// CHECK-ZIPPERED: }
9898

9999
// CHECK-ZIPPERED: "targetVariant": {
100-
// CHECK-ZIPPERED: "triple": "x86_64-apple-ios15-macabi"
100+
// CHECK-ZIPPERED: "triple": "x86_64-apple-ios26-macabi"
101101
// CHECK-ZIPPERED: "unversionedTriple": "x86_64-apple-ios-macabi"
102102
// CHECK-ZIPPERED: "moduleTriple": "x86_64-apple-ios-macabi"
103103
// CHECK-ZIPPERED: "librariesRequireRPath": false

unittests/DependencyScan/PrintTarget.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ TEST_F(ScanTest, TestTargetInfoQuery) {
5252

5353
auto targetInfoStr = std::string(swift::c_string_utils::get_C_string(targetInfo.get()));
5454
EXPECT_NE(targetInfoStr.find("\"triple\": \"x86_64-apple-macosx12.0\""), std::string::npos);
55-
EXPECT_NE(targetInfoStr.find("\"librariesRequireRPath\": false"), std::string::npos);
55+
EXPECT_NE(targetInfoStr.find("\"librariesRequireRPath\": true"), std::string::npos);
5656

5757
std::string expectedRuntimeResourcePath = "\"runtimeResourcePath\": \"" + relativeLibPath.str().str() + "\"";
5858
// On windows, need to normalize the path back to "\\" separators

0 commit comments

Comments
 (0)