On Tue, 2011-05-03 at 18:40 +0200, Michael Lippautz wrote: > This patch fixes compilation/linking of python third-party extensions, i.e. > Extensions that ship with C code. > > Problem: > Python uses distutils(-native) to compile third-party extensions. distutils > uses its own sysconfig module to get the options for compiling and linking. > Since third-party extensions have to be linked against this libpython it > important that -L points into staging. This is not the case because > distutils.sysconfig uses a special Makefile that is shipped with python > determine the paths. The Makefile is the same that would be used on the > target to build third-party extensions. It therefore points into /usr/lib > instead of staging. > > Solution: > Stage a modified version of the Makefile where the paths (incdir, libdir) have > been replaced by ones that point into staging. > > Side-problem: > The recipe actually should not stage files itself in do_compile, but rather > handle everything that needs to be staged in do_install. This is currently not > possible because python compiles itself using distutils-native. Distutils on > the other hand does only allow to add a path, but not to substitute it, > requiring a staged Makefile and libpython.so before the actual python > compilation is triggered. > > The second step to solve this would be to either patch distutils, or split > python into python-initial and python. The -initial part could create the > Makefile and the library, while the main part focuses on the target. > > For further references see: > http://lists.linuxtogo.org/pipermail/openembedded-core/2011-May/001752.html > > Signed-off-by: Michael Lippautz <michael.lippa...@gmail.com> > Acked-by: Martin Jansa <martin.ja...@gmail.com> > --- > meta/recipes-devtools/python/python_2.6.6.bb | 41 > +++++++++++++++++--------- > 1 files changed, 27 insertions(+), 14 deletions(-)
Merged to master, thanks. Richard _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core