[3.13] gh-132026: Ensure _MIPS_SIM has defined _ABI identifiers for comparison (GH-132027) #133092
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 built on a MIPS architecture,
_MIPS_SIM
is used to determinearchitecture 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 andmips64 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, theissues pop up when
-Wundef
(or, even worse,-Werror=undef
) compilerflag is enabled. Then suddenly it's visible as a warning or error.
(cherry picked from commit 6985e2e)
Co-authored-by: Valters Jansons sigv@users.noreply.github.com