bpo-41111: Build limited C API without Py_TRACE_REFS macro. by shihai1991 · Pull Request #25180 · python/cpython
Thanks, I merged your fix.
Without this fix, xxlimited failed to build on the AMD64 Arch Linux TraceRefs 3.x buildbot. Example:
gcc -pthread -fPIC -Wno-unused-result -Wsign-compare -g -Og -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include -I. -I/usr/local/include -I/buildbot/buildarea/3.x.pablogsal-arch-x86_64/build/Include -I/buildbot/buildarea/3.x.pablogsal-arch-x86_64/build -c /buildbot/buildarea/3.x.pablogsal-arch-x86_64/build/Modules/xxlimited_35.c -o build/temp.linux-x86_64-3.10-pydebug/buildbot/buildarea/3.x.pablogsal-arch-x86_64/build/Modules/xxlimited_35.o
In file included from ./Include/Python.h:87,
from /buildbot/buildarea/3.x.pablogsal-arch-x86_64/build/Modules/xxlimited_35.c:10:
./Include/object.h:61:4: error: #error Py_LIMITED_API is incompatible with Py_TRACE_REFS
61 | # error Py_LIMITED_API is incompatible with Py_TRACE_REFS
| ^~~~~
https://buildbot.python.org/all/#/builders/484/builds/525
But it's not treated as an error: the compilation is displayed as a success. Moreover, test_xxlimited is simply skipped if xxlimited is missing.
This change should fix it.