-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
fix deduction of architecture and address-model #879
Conversation
Should be against develop. |
be0e2e3
to
49858d5
Compare
My understanding of what happened is this: originally conditional properties were evaluated only once, and so the composed features |
@anarthal please test whether this change fixes things. |
This still fails - now differently: https://drone.cpp.al/boostorg/mysql/647/18/3 |
I don't think this is a problem with address model deduction |
Actually, I think predef was not the issue, and this is the problem:
I suspect, you don't have 32bit OpenSSL installed. |
There's a file in build directory (in Boost it's BOOST_ROOT/bin.v2 by default) called config.log. That file contains output of the build commands that |
This is not the case, as everything passes if I re enable the explicit architecture feature specification. I implemented the explicit check I'm referring to to make inherently flawed builds like this fail instead of silently succeed ignoring my targets. Does going through the reproduction steps described in bfgroup/b2#368 work? |
I'm not in my PC right now, when I have the time I'll try to post the config log here. |
This is
The problem is again that |
This is actually very weird, because I see in the target paths that address-model=32 is being propagated to the check target. So, it should affect the build. I'm inclined to think that the problem isn't with deduction. |
address-model=32 is propagated (as it's explicitly specified), but maybe the architecture is not. |
I have a similar problem here locally: when I specify
in This isn't fixed by this PR; as far as I can see the behavior is the same. |
This is the beginning of the b2 output:
|
This is the abridged config.log output:
(more architecture checks elided)
|
The source of the problem is that module So, given the fact that conditional properties are evaluated one after another, whether you got correct config checks is up to pure random chance. Unless you have a multiconfig build, in which case you are sure to get incorrect config checks. Interestingly, it is only recently that conditional properties started to be evaluated repeatedly, until the property set "stabilizes". Before that they were only evaluated once, and so this random chance thing was unavoidable if you used deduced |
Fix bfgroup/b2#368