-
Notifications
You must be signed in to change notification settings - Fork 19
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
Allow alternate bootstrap toolset #137
Conversation
Codecov Report
@@ Coverage Diff @@
## master #137 +/- ##
============================================
+ Coverage 84.61% 100.00% +15.38%
============================================
Files 2 2
Lines 13 16 +3
Branches 0 7 +7
============================================
+ Hits 11 16 +5
+ Misses 2 0 -2
Continue to review full report at Codecov.
|
6faf7b1
to
b90bf4c
Compare
Let's discuss this in #138: In short: IMO bootstrap can use any compiler and there is no need to force the use of the test compiler, but it could be useful to let library authors set a specific bootstrap toolset when required. I.e. use
Not fully sure here. The docu lists "Mingw-w64 8.1.0" and even without a PATH change a GCC-8 is found by the current jobs: https://github.com/boostorg/boost-ci/runs/5071617982?check_suite_focus=true
We do have redundant jobs on the different CIs already which IMO is a good thing as the environment might be slightly different and hence bugs may be caught with higher probability. Also if one CI isn't used (or can't be used anymore, see e.g. Travis) we have a fallback. |
Yes, it was picking up the compiler from a chocolatey directory, and it probably still will. I have trimmed this down just to providing the |
b90bf4c
to
6a1a7bf
Compare
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.
I'd add the (currently unused) matrix feature to the posix part as well, see the inline comment. Just so library authors can easily use it the same as you did in the Windows part. No need to add an element to the matrix there as the windows job serves as an example already on how to do it if anyone wants to.
The 2nd is minor I think. The current bootstrap seems to treat an empty --with-toolset=
the same as when not passed, but I'd rather be careful and the suggested change should make it clear, that it is optional. Speaking about that: Maybe add a comment to the top of the common_install.* files that this variable is optional and usually not required as the test and bootstrap toolsets can explicitly be different? Basically a summary of our discussion in case anyone wonders in the future.
a2bbf67
to
8f4534b
Compare
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.
Yes, it was picking up the compiler from a chocolatey directory, and it probably still will.
Oh interesting. I haven't found any other mention of a GCC in the software docu for the runners. Anyway per the way of least effort: Let's just keep it. We don't say we use mingw, the matrix says toolset: gcc
and we get a GCC 🤷 I mean for MinGW/Cygwin we have other jobs (on appveyor) or can extend these configs if we wanted to. For now I'd say "any gcc" is good enough ;-)
Added a suggestion for a better wording of the comment. IMO it is important to note that a) what happens when unset and b) that it doesn't need to be the same. Yes both is there implicitly but I'd say it very explicitly to avoid confusion.
Also note that currently this doesn't seem to be working. For the posix jobs B2_BOOTSTRAP_TOOLSET would need to be set by lib authors in a non-obvious way (hence my suggestion to set it from the matrix in the posix jobs even if that is currently unused) and for mingw it currently does nothing: https://github.com/boostorg/boost-ci/runs/5092859106?check_suite_focus=true
D:\a\boost-ci\boost-root>cmd /c bootstrap mingw
Building Boost.Build engine
...
###
### Using 'vc143' toolset.
So invokes bootstrap with "mingw" but still uses vc??? TBH I don't know why, it works locally for me.
Maybe it needs quoting? cmd /c "bootstrap %B2_BOOTSTRAP_TOOLSET%"
I'm really wondering if this is worth the effort... :-(
8f4534b
to
482c5a8
Compare
Co-authored-by: Alexander Grund <Flamefire@users.noreply.github.com>
Co-authored-by: Alexander Grund <Flamefire@users.noreply.github.com>
I think so, especially with it boiled down to what it is now, but up to you. Don't want it, I will delete it. |
I just don't want you to waste your time as this seems to cause unknown issues which seem hard to reproduce and to fix. I.e. the Windows GHA job with And as neither me nor you can reproduce that locally I would just leave it as-is (i.e. with "any compiler for bootstrap") instead of trying to figure out what happens here. At least until someone actually needs to use a different bootstrap toolset. Of course if you want to figure this out and manage to make it work I'm happy to approve/merge this (given that it doesn't change the default behavior or otherwise influences currently working jobs) |
Yeah, sounds good to me... it probably needs the c:\mingw64\usr\bin path I was adding before. |
Well if I run that locally it tries to use GCC right away and fails as it cannot find it as it should. So no idea what is different on GHA CI. Anyway: Postponed to later |
B2_BOOTSTRAP_TOOLSET
to allow expressing an alternate toolset for building boost build.This closes #138