diff options
author | Maxime Ripard <maxime.ripard@free-electrons.com> | 2013-05-29 10:36:57 +0200 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2013-06-28 22:02:44 +0200 |
commit | f1c092da8ba4d03125387a337ab45c9b5a1315dc (patch) | |
tree | 02bdcd2a5e84cb6e39f7e824804007b5ebea9211 /package/python3/python3-007-change-pyconfig-h-location.patch | |
parent | fc034397fc5c85115a7cc29b8dcc6738a1f8cdc3 (diff) | |
download | buildroot-novena-f1c092da8ba4d03125387a337ab45c9b5a1315dc.tar.gz buildroot-novena-f1c092da8ba4d03125387a337ab45c9b5a1315dc.zip |
python3: Port python2 patches to reduce the interpreter size
Some of the python2 patches were left behind when doing the python3
package. This was because the python build system can now autodetect
what packages can be built in the system.
However, some of these patches are actually useful to reduce drastically
the size of the interpreter.
This patch ports the relevant patches to the python3 package, and adds a
new patch to remove the idle3 IDE as well from the interpreter.
Fixes #5696
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'package/python3/python3-007-change-pyconfig-h-location.patch')
-rw-r--r-- | package/python3/python3-007-change-pyconfig-h-location.patch | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/package/python3/python3-007-change-pyconfig-h-location.patch b/package/python3/python3-007-change-pyconfig-h-location.patch new file mode 100644 index 000000000..8d45daef4 --- /dev/null +++ b/package/python3/python3-007-change-pyconfig-h-location.patch @@ -0,0 +1,76 @@ +Change the location of pyconfig.h + +The Python interpreter has a really strange behaviour: at *runtime*, +it reads a Makefile and a header file named pyconfig.h to get some +information about the configuration. + +The Makefile is located in usr/lib/python3.3/config-3.3m, which is fine +since this location is kept on the target. + +However, by default, the pyconfig.h is installed in +usr/include/python3.3m, but we completely remove the usr/include +directory for the target. Since making an exception just for +pyconfig.h is annoying, this patch also installs pyconfig.h to +usr/lib/python3.3/config-3.3m, and modifies the sysconfig module so that it +looks in this location instead of usr/include. + +The pyconfig.h is still kept in usr/include/python3.3m, because it is +needed in the $(STAGING_DIR) when building third-party Python +extensions that contain C code. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> + +--- + Lib/distutils/sysconfig.py | 3 ++- + Lib/sysconfig.py | 2 +- + Makefile.pre.in | 3 ++- + 3 files changed, 5 insertions(+), 3 deletions(-) + +Index: Python-3.3.0/Lib/distutils/sysconfig.py +=================================================================== +--- Python-3.3.0.orig/Lib/distutils/sysconfig.py ++++ Python-3.3.0/Lib/distutils/sysconfig.py +@@ -239,7 +239,8 @@ + else: + inc_dir = _sys_home or project_base + else: +- inc_dir = get_python_inc(plat_specific=1) ++ lib_dir = get_python_lib(plat_specific=1, standard_lib=1) ++ inc_dir = os.path.join(lib_dir, "config") + if get_python_version() < '2.2': + config_h = 'config.h' + else: +Index: Python-3.3.0/Lib/sysconfig.py +=================================================================== +--- Python-3.3.0.orig/Lib/sysconfig.py ++++ Python-3.3.0/Lib/sysconfig.py +@@ -467,7 +467,7 @@ + else: + inc_dir = _sys_home or _PROJECT_BASE + else: +- inc_dir = get_path('platinclude') ++ inc_dir = os.path.join(get_path('stdlib'), "config") + return os.path.join(inc_dir, 'pyconfig.h') + + +Index: Python-3.3.0/Makefile.pre.in +=================================================================== +--- Python-3.3.0.orig/Makefile.pre.in ++++ Python-3.3.0/Makefile.pre.in +@@ -1123,7 +1123,6 @@ + echo $(INSTALL_DATA) $$i $(INCLUDEPY); \ + $(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY); \ + done +- $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h + + # Install the library and miscellaneous stuff needed for extending/embedding + # This goes into $(exec_prefix) +@@ -1157,6 +1156,8 @@ + $(INSTALL_DATA) Modules/python.o $(DESTDIR)$(LIBPL)/python.o + $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in + $(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile ++ $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(LIBPL)/pyconfig.h ++ $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h + $(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup + $(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local + $(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config |