Skip to content

Allow linking _Concurrency for WASI with Embedded Swift #1863

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 1 commit into from
Apr 7, 2025

Conversation

MaxDesiatov
Copy link
Contributor

Currently, when building packages for WASI with Embedded Swift, libraries such as libswift_Concurrency.a and libswift_ConcurrencyDefaultExecutor.a are not discoverable and require passing -Xlinker <swift-sdk-path>/usr/lib/swift/embedded/wasm32-unknown-wasip1 option manually. This path can be inferred by the driver, which simplifies build invocations for users significantly, while the rest of linkage options (-lswift_Concurrency etc) can be specified in toolset files.

@MaxDesiatov MaxDesiatov added the embedded Changes related to Embedded Swift label Apr 3, 2025
@MaxDesiatov
Copy link
Contributor Author

@swift-ci test

@MaxDesiatov MaxDesiatov enabled auto-merge (squash) April 3, 2025 18:20
@MaxDesiatov MaxDesiatov requested a review from artemcm April 3, 2025 18:20
@MaxDesiatov
Copy link
Contributor Author

@kateinoigakukun friendly ping

Copy link
Member

@kateinoigakukun kateinoigakukun left a comment

Choose a reason for hiding this comment

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

We will need to add the same logic to generic unix toolchain too later but the change itself seems good to me 👍

@MaxDesiatov MaxDesiatov merged commit 20ed137 into main Apr 7, 2025
3 checks passed
@MaxDesiatov MaxDesiatov deleted the maxd/embedded-link-path branch April 7, 2025 12:19
MaxDesiatov added a commit that referenced this pull request Apr 8, 2025
Currently, when building packages for WASI with Embedded Swift, libraries such as `libswift_Concurrency.a` and `libswift_ConcurrencyDefaultExecutor.a` are not discoverable and require passing `-Xlinker <swift-sdk-path>/usr/lib/swift/embedded/wasm32-unknown-wasip1` option manually. This path can be inferred by the driver, which simplifies build invocations for users significantly, while the rest of linkage options (`-lswift_Concurrency` etc) can be specified in toolset files.
MaxDesiatov added a commit that referenced this pull request Apr 11, 2025
Cherry-pick of #1863.

**Explanation**: Currently, when building packages for WASI with Embedded Swift, libraries such as `libswift_Concurrency.a` and `libswift_ConcurrencyDefaultExecutor.a` are not discoverable and require passing `-Xlinker <swift-sdk-path>/usr/lib/swift/embedded/wasm32-unknown-wasip1` option manually. This path can be inferred by the driver, which simplifies build invocations for users significantly, while the rest of linkage options (`-lswift_Concurrency` etc) can be specified in toolset files.
**Scope**: Limited to Embedded Swift for Wasm.
**Risk**: Low due to limited scope.
**Testing**: Added new automated test cases.
**Issue**: rdar://148820885
**Reviewer**: @kateinoigakukun
MaxDesiatov added a commit that referenced this pull request Jun 2, 2025
Cherry-pick of #1863.

**Explanation**: Currently, when building packages for WASI with Embedded Swift, libraries such as `libswift_Concurrency.a` and `libswift_ConcurrencyDefaultExecutor.a` are not discoverable and require passing `-Xlinker <swift-sdk-path>/usr/lib/swift/embedded/wasm32-unknown-wasip1` option manually. This path can be inferred by the driver, which simplifies build invocations for users significantly, while the rest of linkage options (`-lswift_Concurrency` etc) can be specified in toolset files.
**Scope**: Limited to Embedded Swift for Wasm.
**Risk**: Low due to limited scope.
**Testing**: Added new automated test cases.
**Issue**: rdar://148820885
**Reviewer**: @kateinoigakukun
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
embedded Changes related to Embedded Swift
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants