Subject: Re: [boost] Packaging in cross-compiling environment
From: Ben Gamari (bgamari.foss_at_[hidden])
Date: 2010-12-25 11:26:18
Thank you very much for your quick response. I greatly appreciate it.
On Sat, 25 Dec 2010 10:42:15 +0300, Vladimir Prus <vladimir_at_[hidden]> wrote:
> First, you can use -sICU_PATH=/home/bgamari/OE/angstrom-dev/sysroots/armv7a-angstrom-linux-
> to specify where ICU is to be found and checked.
Ahh hah! Thanks. Problem solved. Are these options documented anywhere?
> > As indicated in the documentation, I have tried passing
> > target-os=linux/python=2.6 to bjam
> What documentation is that? Although I kinda understand what this syntax is telling Boost.Build,
> I am totally confused as to why you might want to do that.
Although I might be misunderstanding this as the link that I think is
supposed to clarify the vague comment seems to be broken.
> > but this does not appear to change bjam's
> > behavior at all. When the build process begins, bjam produces this cryptic hint,
> > error: No best alternative for /python_for_extensions
> > next alternative: required properties: <python>2.6 <target-os>linux
> > matched
> Please run with --debug-configuration. This should print absolute paths to user-config.jam,
> site-config.jam and project-config.jam that are being loaded. Examine them to make sure
> only your user-config.jam configures Python. Let me know if this hlps.
Ahh, it seems that bootstrap.sh autogenerates project-config.jam,
including a directive for the python configuration. This seems to be
overriding user-config.jam. As it turns out, a path-constant directive
for ICU_PATH is also present in this file. Is there some way to set the
configuration file precedence such that user-config overrides
project-config? It seems like this should be the case by default, if we
are going to automatically generate project-config in
bootstrap.sh. Otherwise packagers have to resort to sed'ing out lines
which don't reflect their desired configuration.
I commented out all but the correct 'using python' directive,
using python : 2.6 : /home/bgamari/OE/angstrom-dev/sysroots/armv7a-angstrom-linux-gnueabi/usr ;
and the build system seems to have the right idea,
notice: [python-cfg] Details of this Python configuration:
notice: [python-cfg] interpreter command: "/home/bgamari/OE/angstrom-dev/sysroots/armv7a-angstrom-linux-gnueabi/usr/bin/python2.6"
notice: [python-cfg] include path: "/home/bgamari/OE/angstrom-dev/sysroots/armv7a-angstrom-linux-gnueabi/usr/include/python2.6"
notice: [python-cfg] library path: "/home/bgamari/OE/angstrom-dev/sysroots/armv7a-angstrom-linux-gnueabi/usr/lib/python2.6/config" "/home/bgamari/OE/angstrom-dev/sysroots/armv7a-angstrom-linux-gnueabi/usr/lib"
yet the build still fails,
"arm-angstrom-linux-gnueabi-g++" "-march=armv7-a" "-mtune=cortex-a8" "-mfpu=neon" "-mfloat-abi=softfp" "-L/home/bgamari/OE/angstrom-dev/sysroots/armv7a-a
ngstrom-linux-gnueabi/usr/lib" "-Wl,-rpath-link,/home/bgamari/OE/angstrom-dev/sysroots/armv7a-angstrom-linux-gnueabi/usr/lib" "-Wl,-O1" "-Wl,--hash-style=gnu"
"-mthumb-interwork" "-mno-thumb" -ftemplate-depth-128 -isystem/home/bgamari/OE/angstrom-dev/sysroots/armv7a-angstrom-linux-gnueabi/usr/include -O3 -finline-fu
nctions -Wno-inline -Wall -pthread -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_PYTHON_SOURCE -DNDEBUG -I"." -c -o "bin.v2/libs/python/build/gcc-target/release/threadi
In file included from ./boost/python/detail/prefix.hpp:13:0,
./boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: No such file or directory
...failed gcc.compile.c++ bin.v2/libs/python/build/gcc-target/release/threading-multi/list.o...
It seems that the build system knows the correct include path, but for
some reason neglects to add it to the compiler command line. Any ideas?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk