-
Notifications
You must be signed in to change notification settings - Fork 165
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
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 |
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
Synchronization
in the toolchain - this was due to the rpaths of the produced libraries. We previously applied-no-toolchain-stdlib-rpath
so that the rpath of the libraries in the build folder had no rpaths set. When the libraries are installed into the toolchain,$ORIGIN
was 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 linkSynchronization
it 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-rpath
argument so that the libraries in the build directory have rpaths pointing to the swift build folder. However, we also now setINSTALL_REMOVE_ENVIRONMENT_RPATH
toON
so that when copying to the installation folder, this path is replaced by$ORIGIN
instead of just appending the$ORIGIN
path 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: