python-zstandard icon indicating copy to clipboard operation
python-zstandard copied to clipboard

add explicit <unistd.h> include

Open rathann opened this issue 2 years ago • 0 comments

This fixes the following compilation error with Python 3.13.0a1:

c-ext/backend_c.c:275:13: error: implicit declaration of function ‘sysconf’; did you mean ‘sscanf’? [-Werror=implicit-function-declaration]
  275 |     count = sysconf(_SC_NPROCESSORS_ONLN);
      |             ^~~~~~~
      |             sscanf

According to https://docs.python.org/3.13/whatsnew/3.13.html:

Python.h no longer includes the <unistd.h> standard header file. If needed, it should now be included explicitly. For example, it provides the functions: read(), write(), close(), isatty(), lseek(), getpid(), getcwd(), sysconf() and getpagesize(). As a consequence, _POSIX_SEMAPHORES and _POSIX_THREADS macros are no longer defined by Python.h. The HAVE_UNISTD_H and HAVE_PTHREAD_H macros defined by Python.h can be used to decide if <unistd.h> and <pthread.h> header files can be included.

See https://github.com/python/cpython/pull/108783 .

rathann avatar Nov 28 '23 07:11 rathann