Skip to content

Commit be5d4b3

Browse files
authored
Merge pull request #85600 from nkcsgexi/159408187
OriginallyDefinedIn: always use 1.0 as the starting platform version for $ld$previous directives
2 parents 2334140 + db1b398 commit be5d4b3

File tree

6 files changed

+93
-96
lines changed

6 files changed

+93
-96
lines changed

lib/IRGen/TBDGen.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -305,14 +305,11 @@ getInnermostIntroVersion(ArrayRef<Decl *> DeclStack, PlatformKind Platform) {
305305

306306
/// Using the introducing version of a symbol as the start version to redirect
307307
/// linkage path isn't sufficient. This is because the executable can be deployed
308-
/// to OS versions that were before the symbol was introduced. When that happens,
309-
/// strictly using the introductory version can lead to NOT redirecting.
308+
/// to OS versions that were before the symbol was introduced.
310309
static llvm::VersionTuple calculateLdPreviousVersionStart(ASTContext &ctx,
311310
llvm::VersionTuple introVer) {
312-
auto minDep = ctx.LangOpts.getMinPlatformVersion();
313-
if (minDep < introVer)
314-
return llvm::VersionTuple(1, 0);
315-
return introVer;
311+
// We can do this because currently because we don't support multiple moves.
312+
return llvm::VersionTuple(1, 0);
316313
}
317314

318315
void TBDGenVisitor::addLinkerDirectiveSymbolsLdPrevious(

test/IRGen/backward_deploy_nominal.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public struct Fridge<Contents> {}
1919
// CHECK-SHIM-DAG: @"$ss6FridgeVMn" =
2020

2121
// The home module also has linker directives.
22-
// CHECK-DAG: @"\01$ld$previous$libswiftCompatibility59.dylib$$1$13.0$14.0$_$ss6FridgeVMn$" =
22+
// CHECK-DAG: @"\01$ld$previous$libswiftCompatibility59.dylib$$1$1.0$14.0$_$ss6FridgeVMn$" =
2323
// ALSO-NOT: $ld$hide$
2424

2525
// The compatibility shim does not have any linker directives.

test/IRGen/original-defined-attr-linker-directives-fail.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ public struct Entity {
1515
public func removeEntity(_ e: Entity) {}
1616
}
1717

18-
// CHECK-SYMBOLS: $ld$previous$/System/OriginalModule.dylib$$1$10.8$10.10$_$s14OriginalModule6EntityVMn$
19-
// CHECK-SYMBOLS: $ld$previous$/System/OriginalModule.dylib$$1$10.8$10.10$_$s14OriginalModule6EntityV03addC0yyACF$
20-
// CHECK-SYMBOLS: $ld$previous$/System/OriginalModule.dylib$$1$10.8$10.10$_$s14OriginalModule6EntityVN$
21-
// CHECK-SYMBOLS: $ld$previous$/System/OriginalModule.dylib$$1$10.8$10.10$_$s14OriginalModule6EntityVMa$
22-
// CHECK-SYMBOLS: $ld$previous$/System/OriginalModule.dylib$$1$10.8$10.10$_$s14OriginalModule6EntityV06removeC0yyACF$
18+
// CHECK-SYMBOLS: $ld$previous$/System/OriginalModule.dylib$$1$1.0$10.10$_$s14OriginalModule6EntityVMn$
19+
// CHECK-SYMBOLS: $ld$previous$/System/OriginalModule.dylib$$1$1.0$10.10$_$s14OriginalModule6EntityV03addC0yyACF$
20+
// CHECK-SYMBOLS: $ld$previous$/System/OriginalModule.dylib$$1$1.0$10.10$_$s14OriginalModule6EntityVN$
21+
// CHECK-SYMBOLS: $ld$previous$/System/OriginalModule.dylib$$1$1.0$10.10$_$s14OriginalModule6EntityVMa$
22+
// CHECK-SYMBOLS: $ld$previous$/System/OriginalModule.dylib$$1$1.0$10.10$_$s14OriginalModule6EntityV06removeC0yyACF$
2323

2424
// CHECK-SYMBOLS-LOW-TARGET: $ld$previous$/System/OriginalModule.dylib$$1$1.0$10.10$_$s14OriginalModule6EntityVMn$
2525
// CHECK-SYMBOLS-LOW-TARGET: $ld$previous$/System/OriginalModule.dylib$$1$1.0$10.10$_$s14OriginalModule6EntityV03addC0yyACF$

test/TBD/linker-directives-ld-previous-macos.swift

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,24 @@
1313
// RUN: %target-swift-frontend -target x86_64-apple-ios13.1-macabi -typecheck %S/Inputs/linker-directive.swift -emit-tbd -emit-tbd-path %t/linker_directives_macabi.tbd -previous-module-installname-map-file %S/Inputs/install-name-map-toasterkit.json -tbd-install_name toasterkit
1414
// R/UN: %llvm-nm %t/linker_directives_macabi.tbd | %FileCheck -check-prefixes=CHECK,CHECK-MACCATALYST %s --implicit-check-not "System/Previous/macOS"
1515

16-
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$10.2$13.0$_$s10ToasterKit5toastyyF$
17-
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$10.2$13.0$_$s10ToasterKit7VehicleV4moveyyF$
18-
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$10.2$13.0$_$s10ToasterKit7VehicleVMa$
19-
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$10.2$13.0$_$s10ToasterKit7VehicleVMn$
20-
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$10.2$13.0$_$s10ToasterKit7VehicleVN$
21-
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$10.2$18.0$_$s10ToasterKit14movedPriorTo26yyF
22-
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$10.2$26.0$_$s10ToasterKit16movedInVersion26yyF$
23-
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$10.2$26.0$_$s10ToasterKit26movedInVersionsMappingTo26yyF$
24-
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$10.2$27.0$_$s10ToasterKit26movedInVersionsMappingTo27yyF$
16+
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$1.0$13.0$_$s10ToasterKit5toastyyF$
17+
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$1.0$13.0$_$s10ToasterKit7VehicleV4moveyyF$
18+
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$1.0$13.0$_$s10ToasterKit7VehicleVMa$
19+
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$1.0$13.0$_$s10ToasterKit7VehicleVMn$
20+
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$1.0$13.0$_$s10ToasterKit7VehicleVN$
21+
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$1.0$18.0$_$s10ToasterKit14movedPriorTo26yyF
22+
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$1.0$26.0$_$s10ToasterKit16movedInVersion26yyF$
23+
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$1.0$26.0$_$s10ToasterKit26movedInVersionsMappingTo26yyF$
24+
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$1.0$27.0$_$s10ToasterKit26movedInVersionsMappingTo27yyF$
2525

26-
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$10.8$10.15$_$s10ToasterKit5toastyyF$
27-
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$10.8$10.15$_$s10ToasterKit7VehicleV4moveyyF$
28-
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$10.8$10.15$_$s10ToasterKit7VehicleVMa$
29-
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$10.8$10.15$_$s10ToasterKit7VehicleVMn$
30-
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$10.8$10.15$_$s10ToasterKit7VehicleVN$
31-
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$10.8$15.0$_$s10ToasterKit14movedPriorTo26yyF$
32-
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$10.8$26.0$_$s10ToasterKit16movedInVersion26yyF$
33-
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$10.8$26.0$_$s10ToasterKit26movedInVersionsMappingTo26yyF$
34-
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$10.8$27.0$_$s10ToasterKit26movedInVersionsMappingTo27yyF$
26+
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$1.0$10.15$_$s10ToasterKit5toastyyF$
27+
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$1.0$10.15$_$s10ToasterKit7VehicleV4moveyyF$
28+
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$1.0$10.15$_$s10ToasterKit7VehicleVMa$
29+
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$1.0$10.15$_$s10ToasterKit7VehicleVMn$
30+
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$1.0$10.15$_$s10ToasterKit7VehicleVN$
31+
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$1.0$15.0$_$s10ToasterKit14movedPriorTo26yyF$
32+
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$1.0$26.0$_$s10ToasterKit16movedInVersion26yyF$
33+
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$1.0$26.0$_$s10ToasterKit26movedInVersionsMappingTo26yyF$
34+
// CHECK-MAC: D $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$1.0$27.0$_$s10ToasterKit26movedInVersionsMappingTo27yyF$
3535

3636
// CHECK-NOT: $_$s10ToasterKit7VehicleV32originallyDefinedInCurrentModuleyyF

test/abi/macOS/arm64/stdlib.swift

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,39 +1057,39 @@ Added: _$ss18EnumeratedSequenceVyxGSKsSkRzrlMc
10571057
Added: __swift_stdlib_CreateIndirectTaggedPointerString
10581058

10591059
// Span backward deployment
1060-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss11MutableSpanVMa$
1061-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss11MutableSpanVMn$
1062-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss11MutableSpanVsRi_zrlE6_countSivg$
1063-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss11MutableSpanVsRi_zrlE8_pointerSvSgvg$
1064-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss14MutableRawSpanV6_countSivg$
1065-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss14MutableRawSpanV8_pointerSvSgvg$
1066-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss14MutableRawSpanVMa$
1067-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss14MutableRawSpanVMn$
1068-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss14MutableRawSpanVN$
1069-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss10OutputSpanVMa$
1070-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss10OutputSpanVMn$
1071-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss10OutputSpanVsRi_zrlE6_countSivM$
1072-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss10OutputSpanVsRi_zrlE6_countSivg$
1073-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss10OutputSpanVsRi_zrlE6_countSivs$
1074-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss10OutputSpanVsRi_zrlE8_pointerSvSgvg$
1075-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss10OutputSpanVsRi_zrlE8capacitySivg$
1076-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss13OutputRawSpanV6_countSivM$
1077-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss13OutputRawSpanV6_countSivg$
1078-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss13OutputRawSpanV6_countSivs$
1079-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss13OutputRawSpanV8_pointerSvSgvg$
1080-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss13OutputRawSpanV8capacitySivg$
1081-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss13OutputRawSpanVMa$
1082-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss13OutputRawSpanVMn$
1083-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss13OutputRawSpanVN$
1084-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss4SpanVMa$
1085-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss4SpanVMn$
1086-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss4SpanVsRi_zrlE6_countSivg$
1087-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss4SpanVsRi_zrlE8_pointerSVSgvg$
1088-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss7RawSpanV6_countSivg$
1089-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss7RawSpanV8_pointerSVSgvg$
1090-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss7RawSpanVMa$
1091-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss7RawSpanVMn$
1092-
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$10.14$26.0$_$ss7RawSpanVN$
1060+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss11MutableSpanVMa$
1061+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss11MutableSpanVMn$
1062+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss11MutableSpanVsRi_zrlE6_countSivg$
1063+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss11MutableSpanVsRi_zrlE8_pointerSvSgvg$
1064+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss14MutableRawSpanV6_countSivg$
1065+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss14MutableRawSpanV8_pointerSvSgvg$
1066+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss14MutableRawSpanVMa$
1067+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss14MutableRawSpanVMn$
1068+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss14MutableRawSpanVN$
1069+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss10OutputSpanVMa$
1070+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss10OutputSpanVMn$
1071+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss10OutputSpanVsRi_zrlE6_countSivM$
1072+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss10OutputSpanVsRi_zrlE6_countSivg$
1073+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss10OutputSpanVsRi_zrlE6_countSivs$
1074+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss10OutputSpanVsRi_zrlE8_pointerSvSgvg$
1075+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss10OutputSpanVsRi_zrlE8capacitySivg$
1076+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss13OutputRawSpanV6_countSivM$
1077+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss13OutputRawSpanV6_countSivg$
1078+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss13OutputRawSpanV6_countSivs$
1079+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss13OutputRawSpanV8_pointerSvSgvg$
1080+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss13OutputRawSpanV8capacitySivg$
1081+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss13OutputRawSpanVMa$
1082+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss13OutputRawSpanVMn$
1083+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss13OutputRawSpanVN$
1084+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss4SpanVMa$
1085+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss4SpanVMn$
1086+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss4SpanVsRi_zrlE6_countSivg$
1087+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss4SpanVsRi_zrlE8_pointerSVSgvg$
1088+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss7RawSpanV6_countSivg$
1089+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss7RawSpanV8_pointerSVSgvg$
1090+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss7RawSpanVMa$
1091+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss7RawSpanVMn$
1092+
Added: $ld$previous$@rpath/libswiftCompatibilitySpan.dylib$$1$1.0$26.0$_$ss7RawSpanVN$
10931093

10941094
// Duration.nanoseconds(_:)
10951095
Added: _$ss8DurationV11nanosecondsyABSdFZ

0 commit comments

Comments
 (0)