[issue45909] sysconfig --generate-posix-vars creates wrong file when cross compiling

2021-11-27 Thread Christian Heimes


Christian Heimes  added the comment:

I just realized that PYTHON_FOR_BUILD is far more complicated. Our WASM build 
system sets the env var to "$(pwd)/cpython/builddir/build/python". The 
configure script expects us to set several additional env vars.

The logic goes like this for cross compiling:

if PYTHON_FOR_BUILD is empty:
find Python interpreter with same version as PACKAGE_VERSION
set PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) 
_PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f 
pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib 
_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH) 
'$interp
else:
use user-supplied PYTHON_FOR_BUILD

Since we don't set any of the variables _PYTHON_PROJECT_BASE, 
_PYTHON_HOST_PLATFORM, and _PYTHON_SYSCONFIGDATA_NAME, we get wrong sysconfig 
data file.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45909] sysconfig --generate-posix-vars creates wrong file when cross compiling

2021-11-27 Thread Ethan Smith


Change by Ethan Smith :


--
nosy: +ethan smith

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue45909] sysconfig --generate-posix-vars creates wrong file when cross compiling

2021-11-27 Thread Christian Heimes


New submission from Christian Heimes :

"sysconfig --generate-posix-vars" creates pybuilddir.txt and a 
platform-specific sysconfig data file like 
build/lib.linux-x86_64-3.11/_sysconfigdata__linux_x86_64-linux-gnu.py

When creating a cross-compile build of Python, sysconfig mixes data from the 
cross compile build and the host build. It creates a pybuilddir.txt and 
build/lib directory with correct values (e.g. wasm32-unknown-emscripten) but 
sysconfigdata file with name values from the host Python PYTHON_FOR_BUILD (e.g 
x86_64-unknown-linux-gnu). 

$ cat pybuilddir.txt 
build/lib.wasm32-unknown-emscripten-3.11

$ ls build/lib.wasm32-unknown-emscripten-3.11/_sysconfigdata*   

build/lib.wasm32-unknown-emscripten-3.11/_sysconfigdata__linux_x86_64-linux-gnu.py

$ grep CC 
build/lib.wasm32-unknown-emscripten-3.11/_sysconfigdata__linux_x86_64-linux-gnu.py
 
 'CC': 'gcc',

$ grep ^CC Makefile
CC= emcc

--
components: Build, Cross-Build
messages: 407141
nosy: Alex.Willmer, christian.heimes
priority: normal
severity: normal
status: open
title: sysconfig --generate-posix-vars creates wrong file when cross compiling
type: behavior
versions: Python 3.11

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com