Fix file cache test for 32-bit architectures If 64-bit file offsets are selected with _FILE_OFFSET_BITS on a 32-bit architecture, the default mmap() call takes a 64-bit off_t, but dlsym() returns a pointer to a function that takes a 32-bit off_t. . To fix it: . - always call original mmap64() if it is available, - use XSTRINGIFY(mmap) instead of "mmap". . The latter is needed, because some systems define mmap as a macro which expands to another identifier.
Improved C compatibility with GCC 14+ Python 3.11 does not have a tp_print member in PyTypeObject. The field at this position is called tp_vectorcall_offset and has type Py_ssize_t, hence the int-conversion compiler error with GCC 14+.