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.