-
Notifications
You must be signed in to change notification settings - Fork 214
Re-Add Synchronization Import on non-Darwin #742
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
Re-Add Synchronization Import on non-Darwin #742
Conversation
|
@swift-ci please test |
|
Full toolchain tests and a full toolchain build is running at swiftlang/swift#75321 |
parkera
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome, thanks so much for tracking this down.
|
@swift-ci please test |
1 similar comment
|
@swift-ci please test |
|
@swift-ci please test |
|
For now I had to remove the file that used Synchronization, so this PR actually becomes somewhat of a no-op in the short term. However, I am sure we will want Synchronization back soon. |
adafe0d to
911c5b8
Compare
Sounds good - I've rebased on |
|
@swift-ci please test |
Previously, we had issues with import
Synchronizationin the toolchain - this was due to the rpaths of the produced libraries. We previously applied-no-toolchain-stdlib-rpathso that the rpath of the libraries in the build folder had no rpaths set. When the libraries are installed into the toolchain,$ORIGINwas appended which is correct for the installed library. However, XCTest's tests link against these libraries directly in the build folder before they are installed. Loading the stdlib worked because XCTest's tests also link the stdlib and so the library was found in the cache, however since XCTest's tests do not linkSynchronizationit wasn't found in the cache and since the rpaths list was empty the library couldn't be found.Instead, we now remove the
-no-toolchain-stdlib-rpathargument so that the libraries in the build directory have rpaths pointing to the swift build folder. However, we also now setINSTALL_REMOVE_ENVIRONMENT_RPATHtoONso that when copying to the installation folder, this path is replaced by$ORIGINinstead of just appending the$ORIGINpath to the list so that the produced toolchain doesn't contain local rpaths.This should also resolve a related warning in the macro due to the lack of rpaths while loading the macro from the build folder to build FoundationEssentials itself: