Make sure setup.py reads the correct CONFIG_ARGS The setup.py script that builds and installs all the Python modules shipped with the interpreter looks at the CONFIG_ARGS variable stored in the "sysconfig" module to look at the ./configure options and adjust its behaviour accordingly. Unfortunately, when cross-compiling, the value of CONFIG_ARGS returned by the sysconfig are the one passed to the ./configure script of the *host* Python and not the one we're currently building for the target. In order to avoid that, we re-initialize the values in the sysconfig module by re-reading the environment at the beginning of the setup.py script, and we make sure that the CONFIG_ARGS variable is actually part of the environment of setup.py. See the beginning of http://article.gmane.org/gmane.comp.python.devel/99772 for the inspiration. Signed-off-by: Thomas Petazzoni --- Makefile.pre.in | 4 +++- setup.py | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) Index: Python-3.3.0/setup.py =================================================================== --- Python-3.3.0.orig/setup.py +++ Python-3.3.0/setup.py @@ -30,6 +30,9 @@ # Were we compiled --with-pydebug or with #define Py_DEBUG? COMPILED_WITH_PYDEBUG = ('--with-pydebug' in sysconfig.get_config_var("CONFIG_ARGS")) +sysconfig.get_config_vars() +sysconfig._CONFIG_VARS.update(os.environ) + # This global variable is used to hold the list of modules to be disabled. disabled_module_list = [] Index: Python-3.3.0/Makefile.pre.in =================================================================== --- Python-3.3.0.orig/Makefile.pre.in +++ Python-3.3.0/Makefile.pre.in @@ -478,6 +478,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt case $$MAKEFLAGS in *s*) quiet=-q; esac; \ $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ + CONFIG_ARGS="$(CONFIG_ARGS)" \ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build # Build static library @@ -1183,7 +1184,8 @@ # Install the dynamically loadable modules # This goes into $(exec_prefix) sharedinstall: sharedmods - $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ + $(RUNSHARED) CONFIG_ARGS="$(CONFIG_ARGS)" \ + $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ --prefix=$(prefix) \ --install-scripts=$(BINDIR) \ --install-platlib=$(DESTSHARED) \