Fix ABI detection for empty 'os.platform' #283
Merged
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
operator in bjam always returns true if its first argument has no elements[1]. This means that ifos.platform
is empty (not detected), the construction introduced in commit 9084161 sets ABI toaapcs
on all platforms whereos.platform
is empty, including, e.g. loongarch64, and breaks build there.This commit refactors the condition to use '=' operator, to make sure that when
os.platform
is empty we get the default ABI value, and thus fixes build on loongarch64.See also 819c2d6 for similar fix that was somehow lost in refactorings. This time a comment is added near the condition in hope that future edits will not reintroduce the issue.
[1] https://www.boost.org/doc/libs/1_83_0/tools/build/doc/html/index.html#jam.language.flow_of_control
Fixes: 9084161