mirror of
https://git.yoctoproject.org/poky
synced 2026-02-06 00:38:45 +01:00
The move of libcrypto to /lib instead of /usr/lib has broken the _hashlib module compilation. There were also a number of other failing modules which should have been building correctly. This turned out partly to be the /lib issue but also due to a number of native paths creeping into compiler commandlines. These changes add in /lib as part of the searh directory and remove a number of host contamination issues within setup.py. Post release we should really further go through this file and just delete large sections of it as its hard to be sure what strange paths python is injecting as search paths. This patch also fixes issues where re-execution of the compile task would corrupt the Makefile in various ways, again leading to puzzling paths within the configuration. (From OE-Core rev: 20e2761e1da1cb5dcd267e161f2a6b6a429e9f39) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
139 lines
6.3 KiB
Diff
139 lines
6.3 KiB
Diff
Upstream-Status: Inappropriate [embedded specific]
|
|
|
|
# We need to ensure our host tools get run during build, not the freshly
|
|
# built cross-tools (this will not work), so we introduce HOSTPYTHON and HOSTPGEN.
|
|
# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de>
|
|
|
|
Index: Python-2.7.2/Makefile.pre.in
|
|
===================================================================
|
|
--- Python-2.7.2.orig/Makefile.pre.in
|
|
+++ Python-2.7.2/Makefile.pre.in
|
|
@@ -182,6 +182,7 @@ UNICODE_OBJS= @UNICODE_OBJS@
|
|
|
|
PYTHON= python$(EXE)
|
|
BUILDPYTHON= python$(BUILDEXE)
|
|
+HOSTPYTHON= $(BUILDPYTHON)
|
|
|
|
# The task to run while instrument when building the profile-opt target
|
|
PROFILE_TASK= $(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck
|
|
@@ -214,7 +215,7 @@ LIBFFI_INCLUDEDIR= @LIBFFI_INCLUDEDIR@
|
|
##########################################################################
|
|
# Parser
|
|
PGEN= Parser/pgen$(EXE)
|
|
-
|
|
+HOSTPGEN= $(PGEN)$(EXE)
|
|
POBJS= \
|
|
Parser/acceler.o \
|
|
Parser/grammar1.o \
|
|
@@ -401,14 +402,14 @@ $(BUILDPYTHON): Modules/python.o $(LIBRA
|
|
$(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
|
|
|
|
platform: $(BUILDPYTHON)
|
|
- $(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from sysconfig import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
|
|
+ $(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
|
|
|
|
|
|
# Build the shared modules
|
|
sharedmods: $(BUILDPYTHON)
|
|
@case $$MAKEFLAGS in \
|
|
- *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
|
|
- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
|
|
+ *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py -q build;; \
|
|
+ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py build;; \
|
|
esac
|
|
|
|
# Build static library
|
|
@@ -542,7 +543,7 @@ Modules/python.o: $(srcdir)/Modules/pyth
|
|
$(GRAMMAR_H) $(GRAMMAR_C): Parser/pgen.stamp
|
|
Parser/pgen.stamp: $(PGEN) $(GRAMMAR_INPUT)
|
|
-@$(INSTALL) -d Include
|
|
- $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
|
|
+ $(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
|
|
-touch Parser/pgen.stamp
|
|
|
|
$(PGEN): $(PGENOBJS)
|
|
@@ -926,25 +927,25 @@ libinstall: build_all $(srcdir)/Lib/$(PL
|
|
done
|
|
$(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
|
|
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
|
- ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
|
|
+ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
|
|
-d $(LIBDEST) -f \
|
|
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
|
|
$(DESTDIR)$(LIBDEST)
|
|
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
|
- ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
|
+ $(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
|
-d $(LIBDEST) -f \
|
|
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
|
|
$(DESTDIR)$(LIBDEST)
|
|
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
|
- ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
|
|
+ $(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
|
|
-d $(LIBDEST)/site-packages -f \
|
|
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
|
|
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
|
- ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
|
+ $(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
|
|
-d $(LIBDEST)/site-packages -f \
|
|
-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
|
|
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
|
|
- ./$(BUILDPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
|
|
+ $(HOSTPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
|
|
|
|
# Create the PLATDIR source directory, if one wasn't distributed..
|
|
$(srcdir)/Lib/$(PLATDIR):
|
|
@@ -1049,7 +1050,7 @@ libainstall: all python-config
|
|
# Install the dynamically loadable modules
|
|
# This goes into $(exec_prefix)
|
|
sharedinstall: sharedmods
|
|
- $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
|
|
+ $(RUNSHARED) $(HOSTPYTHON) -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
|
|
@@ -313,6 +313,7 @@ class PyBuildExt(build_ext):
|
|
self.failed.append(ext.name)
|
|
self.announce('*** WARNING: renaming "%s" since importing it'
|
|
' failed: %s' % (ext.name, why), level=3)
|
|
+ return
|
|
assert not self.inplace
|
|
basename, tail = os.path.splitext(ext_filename)
|
|
newname = basename + "_failed" + tail
|
|
@@ -369,8 +370,8 @@ class PyBuildExt(build_ext):
|
|
|
|
def detect_modules(self):
|
|
# Ensure that /usr/local is always used
|
|
- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
|
- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
|
+ #add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
|
+ #add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
|
self.add_multiarch_paths()
|
|
|
|
# Add paths specified in the environment variables LDFLAGS and
|
|
@@ -475,6 +476,9 @@ class PyBuildExt(build_ext):
|
|
|
|
# XXX Omitted modules: gl, pure, dl, SGI-specific modules
|
|
|
|
+ lib_dirs = [ os.getenv("STAGING_LIBDIR"), os.getenv("STAGING_BASELIBDIR") ]
|
|
+ inc_dirs = [ os.getenv("STAGING_INCDIR") ]
|
|
+
|
|
#
|
|
# The following modules are all pretty straightforward, and compile
|
|
# on pretty much any POSIXish platform.
|
|
@@ -677,8 +681,8 @@ class PyBuildExt(build_ext):
|
|
elif curses_library:
|
|
readline_libs.append(curses_library)
|
|
elif self.compiler.find_library_file(lib_dirs +
|
|
- ['/usr/lib/termcap'],
|
|
- 'termcap'):
|
|
+ ['/usr/lib/termcap'],
|
|
+ 'termcap'):
|
|
readline_libs.append('termcap')
|
|
exts.append( Extension('readline', ['readline.c'],
|
|
library_dirs=['/usr/lib/termcap'],
|