Compiling 3.13.1 fails when /usr/local/include/pyconfig.h is outdated
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Compiling Python 3.13.1 with
$ ./configure --with-lto --enable-shared --without-static-libpython --prefix=/root/chroot-n/python --disable-ipv6 --enable-optimizations CFLAGS='--sysroot=/root/chroot-n -Ichr/include -Wl,--dynamic-linker=/chr/lib/ld-linux-x86-64.so.2'
$ make
prints
make profile-gen-stamp
make[1]: Entering directory '/src/chroot/Python-3.13.1'
Building with support for profile generation:
make build_all CFLAGS_NODIST=" -fprofile-generate" LDFLAGS_NODIST=" -fprofile-generate" LIBS="-ldl "
make[2]: Entering directory '/src/chroot/Python-3.13.1'
gcc -DUSE_ZLIB_CRC32 -I/usr/local/include -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall --sysroot=/root/chroot-n -Ichr/include -Wl,--dynamic-linker=/chr/lib/ld-linux-x86-64.so.2 -fno-semantic-interposition -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-generate -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -fPIC -fPIC -c ./Modules/binascii.c -o Modules/binascii.o
In file included from ./Include/Python.h:79,
from ./Modules/binascii.c:60:
./Include/unicodeobject.h:61:9: warning: "Py_USING_UNICODE" redefined
61 | #define Py_USING_UNICODE
| ^~~~~~~~~~~~~~~~
In file included from ./Include/Python.h:14:
/usr/local/include/pyconfig.h:994:9: note: this is the location of the previous definition
994 | #define Py_USING_UNICODE 1
| ^~~~~~~~~~~~~~~~
./Include/unicodeobject.h:67:9: warning: "Py_UNICODE_SIZE" redefined
67 | #define Py_UNICODE_SIZE SIZEOF_WCHAR_T
| ^~~~~~~~~~~~~~~
/usr/local/include/pyconfig.h:991:9: note: this is the location of the previous definition
991 | #define Py_UNICODE_SIZE 2
| ^~~~~~~~~~~~~~~
/usr/local/include/pyconfig.h:982:25: error: two or more data types in declaration specifiers
982 | #define PY_UNICODE_TYPE unsigned short
| ^~~~~~~~
./Include/cpython/unicodeobject.h:9:37: note: in expansion of macro ‘PY_UNICODE_TYPE’
9 | Py_DEPRECATED(3.13) typedef wchar_t PY_UNICODE_TYPE;
| ^~~~~~~~~~~~~~~
/usr/local/include/pyconfig.h:982:34: error: two or more data types in declaration specifiers
982 | #define PY_UNICODE_TYPE unsigned short
| ^~~~~
./Include/cpython/unicodeobject.h:9:37: note: in expansion of macro ‘PY_UNICODE_TYPE’
9 | Py_DEPRECATED(3.13) typedef wchar_t PY_UNICODE_TYPE;
| ^~~~~~~~~~~~~~~
In file included from ./Include/unicodeobject.h:1014:
./Include/cpython/unicodeobject.h:9:1: warning: useless type name in empty declaration
9 | Py_DEPRECATED(3.13) typedef wchar_t PY_UNICODE_TYPE;
| ^~~~~~~~~~~~~
make[2]: *** [Makefile:3346: Modules/binascii.o] Error 1
make[2]: Leaving directory '/src/chroot/Python-3.13.1'
make[1]: *** [Makefile:883: profile-gen-stamp] Error 2
make[1]: Leaving directory '/src/chroot/Python-3.13.1'
make: *** [Makefile:895: profile-run-stamp] Error 2
My /usr/local/include/pyconfig.h is from 2016! After removing it, the compilation progresses.
- Building Python should not depend on /usr/local/include/pyconfig.h or /usr/include/pyconfig.h, installed from previous Python versions.
Linked PRs
- gh-134019
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par reproduire les commandes configure et make, puis examinez le Makefile généré et la chaîne d’inclusion via Include/Python.h, Include/unicodeobject.h et Include/cpython/unicodeobject.h. Vérifiez comment /usr/local/include/pyconfig.h est sélectionné lors de la compilation de Modules/binascii.c. C’est terminé lorsque la compilation de Python ne dépend plus de fichiers pyconfig.h système obsolètes.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- build-system
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 25/100