LINUX.ORG.RU

Проблема со сборкой Python3 для МСВС 3.0

 ,


0

1

Профиль ПО: gcc

/usr/bin/gcc-4.1.2 --version
gcc-4.1.2 (GCC) 4.1.2 20080704 (MCBC-3.0 4.1.2-53)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Python3:

Python-3.5.10

Версия ядра:

Linux 2.4.32-vniins42

Выхлоп сборки:

gcc -pthread -shared     -o libpython3.8.so Modules/getbuildinfo.o Parser/acceler.o Parser/grammar1.o Parser/listnode.o Parser/node.o Parser/parser.o Parser/token.o  Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o Objects/abstract.o Objects/accu.o Objects/boolobject.o Objects/bytes_methods.o Objects/bytearrayobject.o Objects/bytesobject.o Objects/call.o Objects/capsule.o Objects/cellobject.o Objects/classobject.o Objects/codeobject.o Objects/complexobject.o Objects/descrobject.o Objects/enumobject.o Objects/exceptions.o Objects/genobject.o Objects/fileobject.o Objects/floatobject.o Objects/frameobject.o Objects/funcobject.o Objects/interpreteridobject.o Objects/iterobject.o Objects/listobject.o Objects/longobject.o Objects/dictobject.o Objects/odictobject.o Objects/memoryobject.o Objects/methodobject.o Objects/moduleobject.o Objects/namespaceobject.o Objects/object.o Objects/obmalloc.o Objects/picklebufobject.o Objects/rangeobject.o Objects/setobject.o Objects/sliceobject.o Objects/structseq.o Objects/tupleobject.o Objects/typeobject.o Objects/unicodeobject.o Objects/unicodectype.o Objects/weakrefobject.o Python/_warnings.o Python/Python-ast.o Python/asdl.o Python/ast.o Python/ast_opt.o Python/ast_unparse.o Python/bltinmodule.o Python/ceval.o Python/codecs.o Python/compile.o Python/context.o Python/dynamic_annotations.o Python/errors.o Python/frozenmain.o Python/future.o Python/getargs.o Python/getcompiler.o Python/getcopyright.o Python/getplatform.o Python/getversion.o Python/graminit.o Python/hamt.o Python/import.o Python/importdl.o Python/initconfig.o Python/marshal.o Python/modsupport.o Python/mysnprintf.o Python/mystrtoul.o Python/pathconfig.o Python/peephole.o Python/preconfig.o Python/pyarena.o Python/pyctype.o Python/pyfpe.o Python/pyhash.o Python/pylifecycle.o Python/pymath.o Python/pystate.o Python/pythonrun.o Python/pytime.o Python/bootstrap_hash.o Python/structmember.o Python/symtable.o Python/sysmodule.o Python/thread.o Python/traceback.o Python/getopt.o Python/pystrcmp.o Python/pystrtod.o Python/pystrhex.o Python/dtoa.o Python/formatter_unicode.o Python/fileutils.o Python/dynload_shlib.o    Modules/config.o Modules/getpath.o Modules/main.o Modules/gcmodule.o Modules/posixmodule.o  Modules/errnomodule.o  Modules/pwdmodule.o  Modules/_sre.o  Modules/_codecsmodule.o  Modules/_weakref.o  Modules/_functoolsmodule.o  Modules/_operator.o  Modules/_collectionsmodule.o  Modules/_abc.o  Modules/itertoolsmodule.o  Modules/atexitmodule.o  Modules/signalmodule.o  Modules/_stat.o  Modules/timemodule.o  Modules/_threadmodule.o  Modules/_localemodule.o  Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o  Modules/faulthandler.o  Modules/_tracemalloc.o Modules/hashtable.o  Modules/symtablemodule.o  Modules/xxsubtype.o Python/frozen.o   -lcrypt -lintl -lpthread -ldl  -lutil -lrt -lm  -lm; \
        fi
gcc -pthread -shared     -Wl,--no-as-needed -o libpython3.so -Wl,-hlibpython3.so libpython3.8.so
gcc -pthread     -Xlinker -export-dynamic -o python Programs/python.o -L. -lpython3.8 -lcrypt -lintl -lpthread -ldl  -lutil -lrt -lm   -lm
LD_LIBRARY_PATH=/home/user/local/Python-3.5.10:/home/user/local/clang/lib ./python -E -S -m sysconfig --generate-posix-vars ;\
        if test $? -ne 0 ; then \
                echo "generate-posix-vars failed" ; \
                rm -f ./pybuilddir.txt ; \
                exit 1 ; \
        fi
Fatal Python error: pyinit_main: can't initialize time
Python runtime state: core initialized
OSError: [Errno 22] Invalid argument

Current thread 0x00004000 (most recent call first):
<no Python frame>
generate-posix-vars failed
make: *** [pybuilddir.txt] Ошибка 1

Пробовал с новыми версиями GCC (4.7.0, 4.8.0), так же с другой версией Python 3.8.1, но проблема остаётся.
Как преодолеть ошибку и собрать Python3 ?

★★

LD_LIBRARY_PATH=/home/user/local/Python-3.5.10:/home/user/local/clang/lib ./python -E -S -m sysconfig –generate-posix-vars

Вы это сами запускаете?

Fatal Python error: pyinit_main: can’t initialize time

Предполагаю, что проблема в древнегреческой версии ядра.

ValdikSS ★★★★★ ()
Последнее исправление: ValdikSS (всего исправлений: 1)

Ты на работе это делаешь или просто вольные эксперименты? Напоминаю, что на сертифицированную ОС нельзя ставить несертифицированное ПО. Так, на всякий случай.

LongLiveUbuntu ★★★★★ ()
Ответ на: комментарий от LongLiveUbuntu

На работе, но ПО ставится не для работы, а для технологической проверки сопряженных устройств.
Погромисты не пишут для некро ОС.

TomBOY ★★ ()
Ответ на: комментарий от TomBOY

Так это уже установленный Python? Откуда вообще именно такая строка появилась, с LD_PRELOAD, вы как-то по-особому сконфигурировали?

Если в /home/user/local/Python-3.5.10 находится то, что вы собираете, то проблема однозначно в ядре: никто в здравом уме не тестирует на 2.6, ни то что на 2.4.

ValdikSS ★★★★★ ()
Последнее исправление: ValdikSS (всего исправлений: 1)

Можно попробовать собрать дебажный питон (флаги -g -O0 при сборке) и заставить его отложить корку (ulimit -c unlimited).

Binkledum ()
Ответ на: комментарий от Binkledum

Наврал я тебе. Найди, откуда берётся эта LD_LIBRARY_PATH. Самое простое, попробуй обнулить её перед сборкой (export LD_LIBRARY_PATH=). У тебя запускается свежесобранный python 3.8, но рантайм либы берутся из LD_LIBRARY_PATH, где у тебя python 3.5 и либы от него же.

Binkledum ()
Ответ на: комментарий от TomBOY

Можно попробовать запустить это через strace

LD_LIBRARY_PATH=/home/user/local/Python-3.5.10:/home/user/local/clang/lib strace  -ffo p ./python -E -S -m sysconfig –generate-posix-vars
дальше в p.<pid> смотреть где оно упало.

vel ★★★★★ ()
Ответ на: комментарий от vel

Может и в libc. Я предположил, что дело в ядре, потому что ошибка связана со временем, gettimeofday — единственная функция, которая инжектится ядром в юзерспейс через vDSO (на 2.6 и 3.x 32-бит, по крайней мере), и я точно помню, что поведение этой функции исторически менялось.

ValdikSS ★★★★★ ()
Ответ на: комментарий от Binkledum

питон

Смотрю, у вас в каждой руке по питону. Душите?

Владимир

anonymous ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.