Initial Android support by o01eg · Pull Request #262 · python-cmake-buildsystem/python-cmake-buildsystem
I've tried qemu-arm emulator for armeabi-v7a and I suppose it doesn't work correctly because each check returns /system/bin/linker: No such file or directory.
I've found emulator/qemu/linux-x86_64/qemu-system-armel-headless in android folder, but it doesn't work either:
-- Checking SOABI - cpython-36m-invalid command-line parameter: /tmp/scratch/python-build/CMakeFiles/CMakeTmp/cmTC_6c348.
Hint: use '@foo' to launch a virtual device named 'foo'.
please use -help for more information
@jcfr It looks like there nothing could be used for CMAKE_CROSSCOMPILING_EMULATOR. Qemu for Android cannot execute binary files. Looks like other libraries also excludes TRY_RUN for android cross-compilation:
curl/curl#3292
I suppose it should be maintained manually like cmake/config-mingw/pyconfig.h
No, I found a way:
#!/bin/sh adb push "$1" /data/local/tmp/ 1>/dev/null 2>/dev/null adb shell /data/local/tmp/$(basename $1)
It requires to start up emulator with correct ABI, but latest Google emulator for ARM CPUs are 7.1.1 Android.
Now it configures but fails on compilation:
[ 1%] Building C object CMakeBuild/extensions/extension_array/CMakeFiles/extension_array.dir/tmp/scratch/Python-3.6.7/Modules/arraymodule.c.o
cd /tmp/scratch/python-build/CMakeBuild/extensions/extension_array && /mnt/new/o01eg/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=armv7-none-linux-androideabi16 --gcc-toolchain=/mnt/new/o01eg/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/mnt/new/o01eg/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dextension_array_EXPORTS -I/tmp/scratch/Python-3.6.7/Include -I/tmp/scratch/python-build/bin -I/tmp/scratch/Python-3.6.7/Python -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -Wall -Oz -DNDEBUG -fPIC -o CMakeFiles/extension_array.dir/tmp/scratch/Python-3.6.7/Modules/arraymodule.c.o -c /tmp/scratch/Python-3.6.7/Modules/arraymodule.c
[ 1%] Linking C shared library ../../../lib/python3.6/lib-dynload/array.so
cd /tmp/scratch/python-build/CMakeBuild/extensions/extension_array && /mnt/new/o01eg/android/cmake/3.10.2.4988404/bin/cmake -E cmake_link_script CMakeFiles/extension_array.dir/link.txt --verbose=1
/mnt/new/o01eg/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=armv7-none-linux-androideabi16 --gcc-toolchain=/mnt/new/o01eg/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/mnt/new/o01eg/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -Wall -Oz -DNDEBUG -Wl,--exclude-libs,libgcc_real.a -Wl,--exclude-libs,libatomic.a -static-libstdc++ -Wl,--build-id -Wl,--fatal-warnings -Wl,--exclude-libs,libunwind.a -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,array.so -o ../../../lib/python3.6/lib-dynload/array.so CMakeFiles/extension_array.dir/tmp/scratch/Python-3.6.7/Modules/arraymodule.c.o -latomic -lm
/tmp/scratch/Python-3.6.7/Modules/arraymodule.c:3033: error: undefined reference to 'PyModuleDef_Init'
/tmp/scratch/Python-3.6.7/Modules/clinic/arraymodule.c.h:463: error: undefined reference to '_PyArg_ParseTuple_SizeT'
/tmp/scratch/Python-3.6.7/Modules/arraymodule.c:0: error: undefined reference to 'PyErr_Format'
/tmp/scratch/Python-3.6.7/Modules/arraymodule.c:1937: error: undefined reference to 'PyType_IsSubtype'
/tmp/scratch/Python-3.6.7/Modules/arraymodule.c:1938: error: undefined reference to 'PyErr_Format'
/tmp/scratch/Python-3.6.7/Modules/arraymodule.c:0: error: undefined reference to 'PyErr_SetString'
/tmp/scratch/Python-3.6.7/Modules/arraymodule.c:2086: error: undefined reference to 'PyList_New'
Linker failure can be solved with checks for Clang compiler and option -DANDROID_ALLOW_UNDEFINED_SYMBOLS=On.
Now it fails on assembler
[ 19%] Building ASM object CMakeBuild/extensions/extension_ctypes/CMakeFiles/extension_ctypes.dir/tmp/scratch/Python-3.6.7/Modules/_ctypes/libffi/src/arm/sysv.S.o
cd /tmp/scratch/python-build/CMakeBuild/extensions/extension_ctypes && /mnt/new/o01eg/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -target armv7-none-linux-androideabi16 -gcc-toolchain /mnt/new/o01eg/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/mnt/new/o01eg/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dextension_ctypes_EXPORTS -I/tmp/scratch/Python-3.6.7/Include -I/tmp/scratch/python-build/bin -I/tmp/scratch/Python-3.6.7/Python -I/tmp/scratch/Python-3.6.7/Modules/_ctypes/libffi/src/arm -I/tmp/scratch/Python-3.6.7/Modules/_ctypes/libffi/include -I/tmp/scratch/python-cmake-buildsystem/cmake -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -Oz -DNDEBUG -fPIC -o CMakeFiles/extension_ctypes.dir/tmp/scratch/Python-3.6.7/Modules/_ctypes/libffi/src/arm/sysv.S.o -c /tmp/scratch/Python-3.6.7/Modules/_ctypes/libffi/src/arm/sysv.S
/tmp/scratch/Python-3.6.7/Modules/_ctypes/libffi/src/arm/sysv.S:363:2: error: invalid instruction, did you mean: fldmiax?
fldmiadgt ip, {d0-d7}
^
/tmp/scratch/Python-3.6.7/Modules/_ctypes/libffi/src/arm/sysv.S:399:2: error: invalid instruction
stmeqia r2, {r0, r1}
^
/tmp/scratch/Python-3.6.7/Modules/_ctypes/libffi/src/arm/sysv.S:412:2: error: invalid instruction, did you mean: fstmiax?
fstmiadeq r2, {d0-d3}
^
/tmp/sysv-89fdb2.s:263:2: error: invalid instruction
fstmfdd sp!, {d0-d7}
^
/tmp/sysv-89fdb2.s:313:2: error: invalid instruction, did you mean: fldmiax?
fldmiad sp, {d0-d1}
^
/tmp/sysv-89fdb2.s:316:2: error: invalid instruction, did you mean: fldmiax?
fldmiad sp, {d0-d3}
I have to disable extension -DENABLE_DECIMAL=Off -DENABLE_CTYPES=Off . Now I get error:
[ 57%] Linking C executable _freeze_importlib
cd /tmp/scratch/python-build/CMakeBuild/libpython && /mnt/new/o01eg/android/cmake/3.10.2.4988404/bin/cmake -E cmake_link_script CMakeFiles/_freeze_importlib.dir/link.txt --verbose=1
/mnt/new/o01eg/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=armv7-none-linux-androideabi16 --gcc-toolchain=/mnt/new/o01eg/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/mnt/new/o01eg/android/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -Wall -Oz -DNDEBUG -Wl,--exclude-libs,libgcc_real.a -Wl,--exclude-libs,libatomic.a -static-libstdc++ -Wl,--build-id -Wl,--fatal-warnings -Wl,--exclude-libs,libunwind.a -Qunused-arguments -Wl,--gc-sections CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Programs/_freeze_importlib.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/getbuildinfo.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Parser/myreadline.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Parser/parsetok.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Parser/tokenizer.c.o CMakeFiles/_freeze_importlib.dir/__/__/CMakeFiles/config.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/gcmodule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/main.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/getpath.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_codecsmodule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/errnomodule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/signalmodule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_sre.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/symtablemodule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_weakref.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/xxsubtype.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/zipimport.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/accu.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/bytesobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/namespaceobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/odictobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/abstract.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/boolobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/bytearrayobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/bytes_methods.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/capsule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/cellobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/classobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/codeobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/complexobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/descrobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/dictobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/enumobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/exceptions.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/fileobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/floatobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/frameobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/funcobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/genobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/iterobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/listobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/longobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/memoryobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/methodobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/moduleobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/object.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/obmalloc.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/rangeobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/setobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/sliceobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/structseq.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/tupleobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/typeobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/unicodectype.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/unicodeobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Objects/weakrefobject.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Parser/acceler.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Parser/bitset.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Parser/firstsets.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Parser/grammar1.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Parser/grammar.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Parser/listnode.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Parser/metagrammar.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Parser/node.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Parser/parser.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Parser/pgen.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/dynload_shlib.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/dynamic_annotations.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/fileutils.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/pyhash.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/pylifecycle.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/pystrhex.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/pystrtod.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/pytime.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/thread.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/asdl.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/ast.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/bltinmodule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/ceval.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/codecs.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/compile.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/dtoa.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/errors.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/formatter_unicode.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/future.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/getargs.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/getcompiler.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/getcopyright.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/getopt.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/getplatform.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/getversion.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/graminit.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/import.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/importdl.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/marshal.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/modsupport.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/mysnprintf.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/mystrtoul.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/peephole.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/pyarena.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/pyctype.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/pyfpe.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/pymath.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/pystate.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/pystrcmp.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/Python-ast.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/pythonrun.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/random.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/structmember.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/symtable.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/sysmodule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/traceback.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/_warnings.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Python/frozenmain.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_collectionsmodule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_datetimemodule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/timemodule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_io/_iomodule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_io/bufferedio.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_io/bytesio.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_io/fileio.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_io/iobase.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_io/stringio.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_io/textio.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_threadmodule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/atexitmodule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/faulthandler.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_opcode.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_pickle.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_stat.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/hashtable.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_tracemalloc.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/posixmodule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/pwdmodule.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/_posixsubprocess.c.o CMakeFiles/_freeze_importlib.dir/tmp/scratch/Python-3.6.7/Modules/socketmodule.c.o -o _freeze_importlib -ldl -latomic -lm
/tmp/scratch/Python-3.6.7/Python/fileutils.c:65: error: undefined reference to 'nl_langinfo'
/tmp/scratch/Python-3.6.7/Python/fileutils.c:1685: error: undefined reference to 'localeconv'
/tmp/scratch/Python-3.6.7/Python/pylifecycle.c:233: error: undefined reference to 'nl_langinfo'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
To fix localeconv error I have to set -DANDROID_PLATFORM=21 and disable HAVE_LANGINFO_H for android.
Now I stopped on error:
[ 62%] Generating /tmp/scratch/Python-3.6.7/Python/importlib_external.h, /tmp/scratch/Python-3.6.7/Python/importlib.h
cd /tmp/scratch/python-build/CMakeBuild/libpython && /tmp/adb-emu.sh /tmp/scratch/python-build/CMakeBuild/libpython/_freeze_importlib /tmp/scratch/Python-3.6.7/Lib/importlib/_bootstrap_external.py /tmp/scratch/Python-3.6.7/Python/importlib_external.h
I suppose it shouldn't be called from emulation.
I've managed to solve it by fix adb-emu.sh.
It is left last step:
[100%] Relocate _sysconfigdata_m_generic_.py and update pybuilddir.txt
cd /tmp/scratch/python-build/bin && /tmp/adb-emu.sh /tmp/scratch/python-build/bin/python -E -S -m sysconfig --generate-posix-vars
But at least I already get ./lib/libpython3.6m.a
I've disabled "Relocate sysconfigdata_m_generic_.py and update pybuilddir.txt" step and python successfully built.
Now it fails on install target:
-- Up-to-date: /tmp/scratch/python_install/lib/python3.6/xml/etree/cElementTree.py
-- Up-to-date: /tmp/scratch/python_install/lib/python3.6/xml/parsers/__init__.py
-- Up-to-date: /tmp/scratch/python_install/lib/python3.6/xml/parsers/expat.py
-- Up-to-date: /tmp/scratch/python_install/lib/python3.6/xml/sax/__init__.py
-- Up-to-date: /tmp/scratch/python_install/lib/python3.6/xml/sax/_exceptions.py
-- Up-to-date: /tmp/scratch/python_install/lib/python3.6/xml/sax/expatreader.py
-- Up-to-date: /tmp/scratch/python_install/lib/python3.6/xml/sax/handler.py
-- Up-to-date: /tmp/scratch/python_install/lib/python3.6/xml/sax/saxutils.py
-- Up-to-date: /tmp/scratch/python_install/lib/python3.6/xml/sax/xmlreader.py
-- Up-to-date: /tmp/scratch/python_install/lib/python3.6/xmlrpc/__init__.py
-- Up-to-date: /tmp/scratch/python_install/lib/python3.6/xmlrpc/client.py
-- Up-to-date: /tmp/scratch/python_install/lib/python3.6/xmlrpc/server.py
-- Up-to-date: /tmp/scratch/python_install/lib/python3.6/zipapp.py
-- Up-to-date: /tmp/scratch/python_install/lib/python3.6/zipfile.py
/tmp/scratch/python_install/bin/python: /tmp/scratch/python_install/bin/python: cannot execute binary file
/tmp/scratch/python_install/bin/python: /tmp/scratch/python_install/bin/python: cannot execute binary file
Thanks @o01eg for working on this and sharing your progress 🙏
Just done with a week long hackathon, I will be traveling for few days and then will head to an other week long hackathon ... this means that I may not have a lot of time to review your awesome work right away.
o01eg
mentioned this pull request
jcfr
mentioned this pull request
3 tasks