-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[build-script] Begin putting in infrastructure for the multi-compiler stage swift build #38719
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
[build-script] Begin putting in infrastructure for the multi-compiler stage swift build #38719
Conversation
@swift-ci clean test |
Build failed |
Build failed |
f6b2c20
to
ed78f4e
Compare
@swift-ci test |
Build failed |
Build failed |
ed78f4e
to
aa44292
Compare
@swift-ci test |
Build failed |
Build failed |
…opt into using the just built swift toolchain.
…ions. This will let me introduce a stage generic swift implementation that adds a postfix '_stage2' to certain stage specific options. This ensures we can have a single swift build-script product implementation for both stage1 and stage2 compilers.
…stage compilers. The key thing here is that certain options (such as the stdlib deployment targets and what to build/test) now use stage_dependent_args meaning that when we us a stage2 compiler we will automagically look up the same argument name, but with '_stage2' as a postfix.
The option is specifically: SWIFT_RUN_TESTS_WITH_HOST_COMPILER. NOTE: We assume that swiftc is in the just built toolchain directory and all necessary tools are next to swiftc. I am using this to bring up tests for a stage2 swift stdlib build (and eventual libswift support).
aa44292
to
11ec4df
Compare
@swift-ci smoke test |
@swift-ci smoke test linux platform |
In this PR, I am introducing some new infrastructure to enable me to begin staging in the multi-compilerstage swift build-script product build. This will let us eventually have a stage1 build-script based on this and in the shorter-term be able to bootstrap libswift on platforms where we do not have a toolchain (important for Linux/windows where we do not have a toolchain on the bots).
The key thing here is that I have:
One last thing to note: even though this is adding support for a full stage 2 compiler, we will not actually typically use a full stage2 compilation. Instead most of the time we will do a stage2 compilation where we tell the compiler to just use the just built compiler to build a new stdlib/build libswift/relink swiftc.