Skip to content
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

Runtimes: attempt to embed a SxS manifest for swiftCore #79337

Merged
merged 1 commit into from
Feb 14, 2025

Conversation

compnerd
Copy link
Member

This will allow us to have multiple parallel installations of swiftCore with the same DLL name allowing us to side-step the ABI instability without resorting to SOVERSIONing.

@etcwilde
Copy link
Contributor

But also, what's wrong with SOVERSIONing?

@compnerd
Copy link
Member Author

But also, what's wrong with SOVERSIONing?

SOVERSIONING is done by changing the name of the module. If we are open to renaming swiftCore.dylib on each release (breaking binary compatibility), we can consider that. Otherwise, this is the better choice - it gives us the binary compatibility story and maintains parity with Darwin. Note that the library name change would also require further enhancements to the swift compiler to know about the library name (as the current macro metaprogramming is dependent on that).

@etcwilde
Copy link
Contributor

Otherwise, this is the better choice - it gives us the binary compatibility story and maintains parity with Darwin. Note that the library name change would also require further enhancements to the swift compiler to know about the library name (as the current macro metaprogramming is dependent on that).

We still have Linux to figure out (nicely) though, so we may still want a way to optionally SOVERSION the library on platforms that aren't ABI-stable. Unless you know of a way to get this behavior out of the Linux loader too?

@compnerd compnerd force-pushed the manifesting-destiny branch from a2f5472 to eb1a53b Compare February 13, 2025 02:25
This will allow us to have multiple parallel installations of swiftCore
with the same DLL name allowing us to side-step the ABI instability
without resorting to SOVERSIONing.
@compnerd compnerd force-pushed the manifesting-destiny branch from eb1a53b to 509c385 Compare February 13, 2025 05:59
@compnerd
Copy link
Member Author

@swift-ci please smoke test

@compnerd
Copy link
Member Author

@swift-ci please test Windows platform

@compnerd
Copy link
Member Author

@swift-ci please smoke test Linux platform

@compnerd compnerd merged commit d9b6a82 into swiftlang:main Feb 14, 2025
3 checks passed
@compnerd compnerd deleted the manifesting-destiny branch February 14, 2025 00:36
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.

2 participants