Сбой make при компиляции Python 2.6 из исходного кода (posixmodule.c)

Я пытаюсь скомпилировать Python 2.6.8 на Kubuntu 19.04.

Текущая версия системы - Python 2.7.16. См. Ниже сообщение об ошибке, которое я получаю во время make.

oguz@dikanka:~$ tar -xvzf Python-2.6.8.tgz
oguz@dikanka:~$ cd Python-2.6.8/


oguz@dikanka:~/Python-2.6.8$ ./configure
…
…

oguz@dikanka:~/Python-2.6.8$ make

…
…
gcc -pthread  -Xlinker -export-dynamic -o python \ 
               Modules/python.o \ 
               libpython2.6.a -lpthread -ldl  -lutil   -lm   
/usr/bin/ld: libpython2.6.a(posixmodule.o): in function `posix_tmpnam': 
/home/oguz/Python-2.6.8/./Modules/posixmodule.c:7261: warning: the use of `tmpnam_r' is dangerous, better use `
mkstemp' 
/usr/bin/ld: libpython2.6.a(posixmodule.o): in function `posix_tempnam': 
/home/oguz/Python-2.6.8/./Modules/posixmodule.c:7216: warning: the use of `tempnam' is dangerous, better use `m
kstemp' 
Segmentation fault (core dumped) 
make: *** [Makefile:414: sharedmods] Error 139 

Я обнаружил, что эта ошибка в Python очень похожа на мой случай, но это довольно старая ошибка: https://bugs.python.org/issue535545

Здесь он говорит, что posixmodule завершается сбоем, потому что ресурс.h не обнаружен должным образом программой configure Аналогичным образом, в моем случае строка HAVE_SYS_RESOURCE_H файла pyconfig.h закомментирована. Я также понял, что мои заголовки c lib не находятся в / usr / include / sys и / usr / include / bits. Вместо этого я могу найти их в следующих местах:

oguz@dikanka:/usr/include/linux$ find /usr/include -name resource.h
/usr/include/asm-generic/resource.h
/usr/include/linux/resource.h
/usr/include/x86_64-linux-gnu/asm/resource.h
/usr/include/x86_64-linux-gnu/bits/resource.h
/usr/include/x86_64-linux-gnu/sys/resource.h

Я пробовал символические ссылки на x86_64-linux-gnu / sys и x86_64-linux-gnu / bits, но проблема остается.

Есть идеи? Заранее спасибо!

0
задан 23 August 2019 в 16:40

1 ответ


просто необходимо изменить одну строку в Include/objimpl.h: замените, "долго удваивают макет" "двойным макетом".Приятного отдыха! --- a/Include/objimpl.h +++ b/Include/objimpl.h @@ -248,7 +248,7 @@ typedef union _gc_head { union _gc_head gc_prev; Py_ssize_t gc_refs; } gc; - long double dummy; / force worst-case alignment / + double dummy; / force worst-case alignment */ } PyGC_Head;
extern PyGC_Head *_PyGC_generation0;

0
ответ дан 23 October 2019 в 14:46

Другие вопросы по тегам:

Похожие вопросы: