New submission from Chi Hsuan Yen: Since issue23968 landed (changeset 5c77488830bc), cross compilation fails. It's not regression of a single revision but is caused by a combination of multiple changes. Here are my steps:
1. git clone https://github.com/yan12125/python3-android 2. comment `patch -p1 < "${FILESDIR}/cross-compile.patch"` from mk/python/prepare.sh 3. `make` This results in bash errors: mkdir ../Lib/plat-aarch64-linux-android if [ -n "aarch64-linux-android" ]; then \ cp ../Lib/plat-linux/regen ../Lib/plat-aarch64-linux-android/regen; \ else \ cp ../Lib/plat-generic/regen ../Lib/plat-aarch64-linux-android/regen; \ fi; \ export PATH; PATH="`pwd`:$PATH"; \ export PYTHONPATH; PYTHONPATH="`pwd`/Lib"; \ export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \ export EXE; EXE=""; \ export CC; CC="/home/yen/Projects/python3-android/clang-bin/cc"; \ if [ -n "aarch64-linux-android" ]; then export MULTIARCH; MULTIARCH=aarch64-linux-android; fi; \ export PYTHON_FOR_BUILD; \ if [ "x86_64-pc-linux-gnu" = "aarch64-unknown-linux-android" ]; then \ PYTHON_FOR_BUILD="python"; \ else \ PYTHON_FOR_BUILD="_PYTHON_PROJECT_BASE=/home/yen/Projects/python3-android/src/cpython/build-target _PYTHON_HOST_PLATFORM=linux-aarch64 PYTHONPATH=/home/yen/Projects/python3-android/src/cpython/build-target/build/lib.linux-aarch64-3.6:../Lib:../Lib/plat-aarch64-linux-android python3.6"; \ fi; \ export H2PY; H2PY="$PYTHON_FOR_BUILD /home/yen/Projects/python3-android/src/cpython/build-target/../Tools/scripts/h2py.py"; \ cd ../Lib/plat-aarch64-linux-android; ./regen + _PYTHON_PROJECT_BASE=/home/yen/Projects/python3-android/src/cpython/build-target _PYTHON_HOST_PLATFORM=linux-aarch64 PYTHONPATH=/home/yen/Projects/python3-android/src/cpython/build-target/build/lib.linux-aarch64-3.6:../Lib:../Lib/plat-aarch64-linux-android python3.6 /home/yen/Projects/python3-android/src/cpython/build-target/../Tools/scripts/h2py.py -i '(u_long)' /opt/android-ndk/platforms/android-21/arch-arm64/usr/include/sys/types.h /opt/android-ndk/platforms/android-21/arch-arm64/usr/include/netinet/in.h /opt/android-ndk/platforms/android-21/arch-arm64/usr/include/dlfcn.h ./regen: line 33: _PYTHON_PROJECT_BASE=/home/yen/Projects/python3-android/src/cpython/build-target: No such file or directory make[1]: *** [Makefile:1331: ../Lib/plat-aarch64-linux-android] Error 127 make[1]: Leaving directory '/home/yen/Projects/python3-android/src/cpython/build-target' make: *** [Makefile:36: python] Error 2 bash (I'm using 4.3.046) does not parse environment variables in quotation marks. For example the following script fails: FOO="BAR=1 ls" $FOO The attached patch makes regen work again. I see /usr/bin/env used everywhere in CPython, so I guess it's OK to use it in configure without loss of portability. Also added some people from issue14330, where $PYTHON_FOR_BUILD appeared for the first time. ---------- components: Cross-Build files: cross-compile.patch keywords: patch messages: 274998 nosy: Alex.Willmer, Chi Hsuan Yen, doko, eric.araujo, xdegaye priority: normal severity: normal status: open title: Cross compilation fails in regen type: compile error versions: Python 3.6, Python 3.7 Added file: http://bugs.python.org/file44462/cross-compile.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue28018> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com