| Summary: | bitbake (recipe boost_1.44.b) gets confused with ~/user-config.jam | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Johannes König <koenig> |
| Component: | core | Assignee: | Saul Wold <sgw> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | Medium | CC: | meta.mr.watcher, meta.watcher, richard.purdie |
| Version: | 1.1 | ||
| Target Milestone: | 1.3 | ||
| Hardware: | All | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | --- | |
I found an obscure variable: BOOST_BUILD_USER_CONFIG, which I set to
BOOST_BUILD_USER_CONFIG=${S}/tools/build/v2/user-config.jam.
The --ignore-config ignores all configs!
That seems to have done the trick, I will push a patch for this soon
|
It seems that bitbake (or more precisely the boost_1.44.0.bb recipe) gets confused with an user-config.jam file in the users home directory. When trying to build core-image-sato (or zypper) the build aborts due to an error in the zypper package. I use poky-edison-6.0.1.tar.gz. Relevant part of the do_compile.log: build/tmp/sysroots/x86_64-linux/usr/libexec/core2-poky-linux/gcc/i586-poky-linux/4.6.3/ld: skipping incompatible build/tmp/sysroots/crownbay/usr/lib/libboost_signals-mt.so when searching for -lboost_signals-mt build/tmp/sysroots/x86_64-linux/usr/libexec/core2-poky-linux/gcc/i586-poky-linux/4.6.3/ld: skipping incompatible build/tmp/sysroots/crownbay/usr/lib/libboost_signals-mt.a when searching for -lboost_signals-mt build/tmp/sysroots/x86_64-linux/usr/libexec/core2-poky-linux/gcc/i586-poky-linux/4.6.3/ld: skipping incompatible build/tmp/sysroots/crownbay/usr/lib/libboost_signals-mt.so when searching for -lboost_signals-mt build/tmp/sysroots/x86_64-linux/usr/libexec/core2-poky-linux/gcc/i586-poky-linux/4.6.3/ld: skipping incompatible build/tmp/sysroots/crownbay/usr/lib/libboost_signals-mt.a when searching for -lboost_signals-mt build/tmp/sysroots/x86_64-linux/usr/libexec/core2-poky-linux/gcc/i586-poky-linux/4.6.3/ld: cannot find -lboost_signals-mt collect2: ld returned 1 exit status make[2]: *** [zypp/libzypp.so.810.1.0] Error 1 make[2]: Leaving directory `build/tmp/work/crownbay-poky-linux/libzypp-0.0-git1+15b6c52260bbc52b3d8e585e271b67e10cc7c433-r16/git' make[1]: *** [zypp/CMakeFiles/zypp.dir/all] Error 2 make[1]: Leaving directory `build/tmp/work/crownbay-poky-linux/libzypp-0.0-git1+15b6c52260bbc52b3d8e585e271b67e10cc7c433-r16/git' make: *** [all] Error 2 ERROR: oe_runmake failed ERROR: Function 'do_compile' failed (see build/tmp/work/crownbay-poky-linux/libzypp-0.0-git1+15b6c52260bbc52b3d8e585e271b67e10cc7c433-r16/temp/log.do_compile.31334 for further information) After removing the ~/user-config.jam file and recompiling zypper with bitbake -c cleanall libzypp boost zypper && bitbake zypper no more errors are reported. Content of the ~/user-config.jam file is: using gcc ; (Usually I have more options in my user-config.jam, but I can strip it down to the single line above to reproduce the error.) The problems seems to be in the invocation of bjam (the Boost.Build tool) in file meta/recipes-support/boost/boost-36.inc The recipe creates a user-config.jam (file boost-36.inc, function do_boostconfig) named ${S}/tools/build/v2/user-config.jam to define the cross compiler which shall be used by bjam in the do_compile step. But [1] states, that bjam looks for a user-config.jam first in $HOME and then in $BOOST_BUILD_PATH. It seems that the user-config.jam in $HOME is used instead of the one in ${S}/tools/build/v2/ (aka $BOOST_BUILD_PATH). Maybe it is a option to set the --ignore-config argument when invoking bjam and define the compiler property as an argument (see [2]). [1] http://www.boost.org/boost-build2/doc/html/bbv2/overview/configuration.html [2] http://www.boost.org/boost-build2/doc/html/bbv2/overview/invocation.html See also the discussion on the ML: http://www.mail-archive.com/yocto@yoctoproject.org/msg05708.html