You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Bootstrap] Do not pass -Ddispatch_DIR to the Yams CMake build (#3363)
With the version-bump of Yams in swiftlang/swift#36366, Yams `4.0.2` now actually expresses the dependency on Dispatch in its CMake config.
With the current behavior of passing `-Ddispatch_DIR` to its CMake build, we have the following problem on Linux:
- `swift`'s `build-script` installs Dispatch into a just-built toolchain which we use to build SwiftPM, which will contain, among other things, the Dispatch `.swiftmodule`.
- The compiler workspace checkout of `swift-corelibs-libdispatch` also contains a copy of the Dispatch `.swiftmodule`.
Both of these will be found, leading to build failures like:
```
/home/buildnode/jenkins/workspace/swift-PR-Linux/branch-main/swift-nightly-install/usr/lib/swift/dispatch/module.modulemap:1:8: error: redefinition of module 'Dispatch'
19:37:47 module Dispatch {
19:37:47 ^
19:37:47 /home/buildnode/jenkins/workspace/swift-PR-Linux/branch-main/swift-corelibs-libdispatch/dispatch/module.modulemap:1:8: note: previously defined here
19:37:47 module Dispatch {
19:37:47 ^
19:37:47
```
We also cannot put off building `libDispatch` until SwiftPM is built, because the `libDispatch` dylib is required to link SwiftPM.
Not passing `-Ddispatch_DIR` to Yams' CMake build causes it to successfully locate the Dispatch package in the just-built toolchain on its own.
(cherry picked from commit 6af862d)
0 commit comments