-
Notifications
You must be signed in to change notification settings - Fork 1.4k
[Bootstrap] Do not pass -Ddispatch_DIR
to the Yams CMake build
#3363
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
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
@neonichu, any problems this can cause that I am not aware of? |
Sounds reasonable to me, let's just do a full toolchain build to be sure. |
@swift-ci please test |
@swift-ci please smoke test |
We should wait for both |
artemcm
added a commit
to artemcm/swift-driver
that referenced
this pull request
Mar 16, 2021
…build [Change analagous to: swiftlang/swift-package-manager#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 swift-driver, 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.
CodaFi
pushed a commit
to CodaFi/swift-driver
that referenced
this pull request
Mar 22, 2021
…build [Change analagous to: swiftlang/swift-package-manager#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 swift-driver, 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.
shahmishal
pushed a commit
to swiftlang/swift-driver
that referenced
this pull request
Apr 21, 2021
…build [Change analagous to: swiftlang/swift-package-manager#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 swift-driver, 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 a76b464)
shahmishal
pushed a commit
that referenced
this pull request
Apr 21, 2021
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)
shahmishal
added a commit
that referenced
this pull request
Apr 25, 2021
#3363) (#3423) * [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) * Fix invalid assumptions leading to unit test failures on Apple Silicon. (#3328) rdar://75113176 (cherry picked from commit 3ff6f8b) * Disable `testExplicitSwiftPackageBuild` on Apple Silicon because it relies on compiler fixes from later compiler versions, on this platform. Co-authored-by: Artem Chikin <[email protected]> Co-authored-by: Anders Bertelrud <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
'sbuild-script
installs Dispatch into a just-built toolchain which we use to build SwiftPM, which will contain, among other things, the Dispatch.swiftmodule
.swift-corelibs-libdispatch
also contains a copy of the Dispatch.swiftmodule
.Both of these will be found, leading to build failures like:
We also cannot put off building
libDispatch
until SwiftPM is built, because thelibDispatch
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.