-
Notifications
You must be signed in to change notification settings - Fork 10.5k
build: Further fixes for Cxx w/o stdlib. #65217
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
drodriguez
merged 1 commit into
swiftlang:main
from
drodriguez:isolated-stdlib-builds-2
Apr 17, 2023
Merged
build: Further fixes for Cxx w/o stdlib. #65217
drodriguez
merged 1 commit into
swiftlang:main
from
drodriguez:isolated-stdlib-builds-2
Apr 17, 2023
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
In swiftlang#65172 I tried to fix a problem when the Cxx module is enabled, but we are not building the stdlib. The fix work for `swiftCxx`, but failed to to realize that `swiftCxxStdlib` overlay is also built, which needs parts of the stdlib. The original swiftlang#65055 only built the Cxx module when `EXTRA_TOOLCHAIN_CONTENT` was set, but swiftlang#65122 changed so it was two independent checks. A more faithful fix will had been to nest the `if` as I am trying to do with this PR. Parts of swiftlang#65172 are still necessary to build in every case, though: the `swiftCxx` target is dependent on the Clang headers and the legacy layouts. Those two pieces are normally in place because of other targets in upstream builds, but fail to materialize when the stdlib is trying to be built with the host compiler. This one and swiftlang#65172 will need to be cherry-picked to 5.9 because swiftlang#65055 and swiftlang#65122 where cherry-picked, so 5.9 is having the same problems as `main`.
@swift-ci please test |
compnerd
approved these changes
Apr 16, 2023
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.
Whoops, I must've missed that I had moved it out of that condition.
@swift-ci please test macOS platform |
drodriguez
added a commit
to drodriguez/swift
that referenced
this pull request
Apr 17, 2023
In swiftlang#65172 I tried to fix a problem when the Cxx module is enabled, but we are not building the stdlib. The fix work for `swiftCxx`, but failed to to realize that `swiftCxxStdlib` overlay is also built, which needs parts of the stdlib. The original swiftlang#65055 only built the Cxx module when `EXTRA_TOOLCHAIN_CONTENT` was set, but swiftlang#65122 changed so it was two independent checks. A more faithful fix will had been to nest the `if` as I am trying to do with this PR. Parts of swiftlang#65172 are still necessary to build in every case, though: the `swiftCxx` target is dependent on the Clang headers and the legacy layouts. Those two pieces are normally in place because of other targets in upstream builds, but fail to materialize when the stdlib is trying to be built with the host compiler. This one and swiftlang#65172 will need to be cherry-picked to 5.9 because swiftlang#65055 and swiftlang#65122 where cherry-picked, so 5.9 is having the same problems as `main`. (cherry picked from commit ccf57da)
Thanks @drodriguez for fixing this! |
meg-gupta
pushed a commit
to meg-gupta/swift
that referenced
this pull request
Apr 18, 2023
In swiftlang#65172 I tried to fix a problem when the Cxx module is enabled, but we are not building the stdlib. The fix work for `swiftCxx`, but failed to to realize that `swiftCxxStdlib` overlay is also built, which needs parts of the stdlib. The original swiftlang#65055 only built the Cxx module when `EXTRA_TOOLCHAIN_CONTENT` was set, but swiftlang#65122 changed so it was two independent checks. A more faithful fix will had been to nest the `if` as I am trying to do with this PR. Parts of swiftlang#65172 are still necessary to build in every case, though: the `swiftCxx` target is dependent on the Clang headers and the legacy layouts. Those two pieces are normally in place because of other targets in upstream builds, but fail to materialize when the stdlib is trying to be built with the host compiler. This one and swiftlang#65172 will need to be cherry-picked to 5.9 because swiftlang#65055 and swiftlang#65122 where cherry-picked, so 5.9 is having the same problems as `main`.
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.
In #65172 I tried to fix a problem when the Cxx module is enabled, but we are not building the stdlib. The fix work for
swiftCxx
, but I failed to to realize thatswiftCxxStdlib
overlay is also built, which needs parts of the stdlib.The original #65055 only built the Cxx module when
EXTRA_TOOLCHAIN_CONTENT
was set, but #65122 changed so it was two independent checks. A more faithful fix will had been to nest theif
as I am trying to do with this PR. Parts of #65172 are still necessary to build in every case, though: theswiftCxx
target is dependent on the Clang headers and the legacy layouts. Those two pieces are normally in place because of other targets in upstream builds, but fail to materialize when the stdlib is trying to be built with the host compiler in isolation.This one and #65172 will need to be cherry-picked to 5.9 because #65055 and #65122 where cherry-picked, so 5.9 is having the same problems as
main
.