Skip to content

TBDGen: Specify the correct macCatalyst platform ID in $ld$previous directives #72109

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 6, 2024

Conversation

tshortli
Copy link
Contributor

@tshortli tshortli commented Mar 6, 2024

Resolves rdar://123491072

Increase type safety by consistently using the `LinkerPlatformId` enum type,
instead of casting to/from `uint8_t` unnecessarily.

NFC.
@tshortli tshortli force-pushed the maccatalyst-ldprevious branch from 4014795 to f49dbb0 Compare March 6, 2024 03:06
@tshortli
Copy link
Contributor Author

tshortli commented Mar 6, 2024

@swift-ci please test


// CHECK-ZIPPERED: $ld$previous$/System/Previous/iOS/ToasterKit.dylib$$2$10.2$13.0$_$s10ToasterKit5toastyyF$
// CHECK-ZIPPERED: $ld$previous$/System/Previous/macOS/ToasterKit.dylib$$1$10.8$10.15$_$s10ToasterKit5toastyyF$
// CHECK-MACCATALYST: D $ld$previous$/System/Previous/macCatalyst/ToasterKit.dylib$$6$10.2$13.0$_$s10ToasterKit5toastyyF$
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm pretty sure the versions are wrong here and they need to be the iOS versions mapped from the SDKSettings. We should also test that 10.15/13.1 is the earliest version. i.e. something available in 10.14 and moved in 12.0 should make an $ld$previous$ of 13.1$15.0. And something available in 10.14 and moved in 10.15 shouldn't make an $ld$previous$ for Mac Catalyst at all.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

10.2 and 13 come directly from the iOS availability of the declaration (see https://github.com/apple/swift/blob/main/test/TBD/Inputs/linker-directive.swift). So I don't think a remapping is needed. I can see about flooring the versions at 13.1 though.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, I'd like to separate clamping the values to minimum OS versions and potentially skipping emission of directives out into a separate radar/PR. I agree it's the right thing to do but it's also applicable to all platforms and it's unclear to me whether the current behavior is concretely causing any issues. I think it should be treated as a separate bug fix from a scheduling and risk perspective.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh you're right, I saw "10.something" and got mixed up.

Copy link
Contributor

@nkcsgexi nkcsgexi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for fixing it, Allan!

@tshortli tshortli merged commit c17c19a into swiftlang:main Mar 6, 2024
@tshortli tshortli deleted the maccatalyst-ldprevious branch March 6, 2024 18:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants