gh-132026: Ensure _MIPS_SIM has defined _ABI identifiers for comparison #132027
+14
−12
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.
When building C code on a MIPS architecture,
_MIPS_SIM
is used to determine architecture specifics. The value is expected to match either_ABIO32
,_ABIN32
or_ABI64
.In
gcc
config/mips/mips.h these values are defined as compilerbuiltin_define
inside of a switch/case. That means, mips64el and mips64 architectures know about_ABI64
but don't know about_ABIO32
and_ABIN32
. In turn, when CPython tries to use them in comparison, they may be undefined identifiers.In default compiler behavior, the undefined identifier will be evaluated as zero, and it will not match
_MIPS_SIM
. However, the issues pop up when-Wundef
(or, even worse,-Werror=undef
) compiler flag is enabled. Then suddenly it's visible as a warning or error.