| 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 <thomas.petazzoni@free-electrons.com> |
| |
| --- |
| Makefile.pre.in | 6 +++--- |
| setup.py | 3 +++ |
| 2 files changed, 6 insertions(+), 3 deletions(-) |
| |
| Index: Python-2.7.2/Makefile.pre.in |
| =================================================================== |
| --- Python-2.7.2.orig/Makefile.pre.in |
| +++ Python-2.7.2/Makefile.pre.in |
| @@ -411,8 +411,8 @@ |
| # Build the shared modules |
| sharedmods: $(BUILDPYTHON) |
| @case $$MAKEFLAGS in \ |
| - *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py -q build;; \ |
| - *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py build;; \ |
| + *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" CONFIG_ARGS="$(CONFIG_ARGS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py -q build;; \ |
| + *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" CONFIG_ARGS="$(CONFIG_ARGS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py build;; \ |
| esac |
| |
| # Build static library |
| @@ -1044,7 +1044,7 @@ |
| # Install the dynamically loadable modules |
| # This goes into $(exec_prefix) |
| sharedinstall: sharedmods |
| - $(RUNSHARED) CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py install \ |
| + $(RUNSHARED) CROSS_COMPILING=@CROSS_COMPILING@ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" CONFIG_ARGS="$(CONFIG_ARGS)" $(PYTHON_FOR_BUILD) -E $(srcdir)/setup.py install \ |
| --prefix=$(prefix) \ |
| --install-scripts=$(BINDIR) \ |
| --install-platlib=$(DESTSHARED) \ |
| Index: Python-2.7.2/setup.py |
| =================================================================== |
| --- Python-2.7.2.orig/setup.py |
| +++ Python-2.7.2/setup.py |
| @@ -20,6 +20,9 @@ |
| # Were we compiled --with-pydebug or with #define Py_DEBUG? |
| COMPILED_WITH_PYDEBUG = hasattr(sys, 'gettotalrefcount') |
| |
| +sysconfig.get_config_vars() |
| +sysconfig._CONFIG_VARS.update(os.environ) |
| + |
| # This global variable is used to hold the list of modules to be disabled. |
| try: |
| disabled_module_list = sysconfig.get_config_var("DISABLED_EXTENSIONS").split(" ") |