Boost logo

Boost :

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-
> gnueabi/usr/
> 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.
>
http://www.boost.org/doc/libs/1_36_0/libs/python/doc/building.html

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,

   gcc.compile.c++ bin.v2/libs/python/build/gcc-target/release/threading-multi/list.o
  
       "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
ng-multi/list.o" "libs/python/src/list.cpp"
   
   In file included from ./boost/python/detail/prefix.hpp:13:0,
                    from ./boost/python/list.hpp:8,
                    from libs/python/src/list.cpp:5:
   ./boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: No such file or directory
   compilation terminated.
   ...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?

- Ben


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk