| Summary: | boost: type error when including libs/python/src/numpy/dtype.cpp while compiling | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Lukas Bulwahn <lukas.bulwahn> | ||||
| Component: | devtools / tool chain | Assignee: | Ross Burton <ross.burton> | ||||
| Status: | RESOLVED DUPLICATE | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | Medium | CC: | alex.kanavin, meta.mr.watcher, meta.watcher, ross.burton | ||||
| Version: | unspecified | ||||||
| Target Milestone: | 2.3 M4 | ||||||
| Hardware: | All | ||||||
| OS: | Multiple | ||||||
| Whiteboard: | |||||||
| OS type for building Yocto: | --- | Type of Regression: | --- | ||||
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |||||
| Attachments: |
|
||||||
|
Description
Lukas Bulwahn
2017-03-14 13:30:20 UTC
Created attachment 3649 [details] Full compile log It seems the log at gist.github.com got truncated. I've reproduced the failure and attached the full log to this bug. The problem seems to be an usual leak of host environment to bitbake: > "i586-oe-linux-g++" "-m32" "-march=i586" "-Wl,-O1" "-Wl,--hash-style=gnu" "-Wl,--as-needed" "--sysroot=/home/rojkov/work/ros/build/tmp-glibc/work/i586-oe-linux/boost/1.63.0-r1/recipe-sysroot" -ftemplate-depth-128 -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/rojkov/work/ros/build/tmp-glibc/work/i586-oe-linux/boost/1.63.0-r1=/usr/src/debug/boost/1.63.0-r1 -fdebug-prefix-map=/home/rojkov/work/ros/build/tmp-glibc/work/i586-oe-linux/boost/1.63.0-r1/recipe-sysroot-native= -fdebug-prefix-map=/home/rojkov/work/ros/build/tmp-glibc/work/i586-oe-linux/boost/1.63.0-r1/recipe-sysroot= -fvisibility-inlines-hidden -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -DBOOST_ALL_NO_LIB=1 -DNDEBUG -I"." -I"/home/rojkov/work/ros/build/tmp-glibc/work/i586-oe-linux/boost/1.63.0-r1/recipe-sysroot/usr/include/python2.7" -I"/usr/lib64/python2.7/site-packages/numpy/core/include" -c -o "/home/rojkov/work/ros/build/tmp-glibc/work/i586-oe-linux/boost/1.63.0-r1/boost_1_63_0/i586-oe-linux/boost/bin.v2/libs/python/build/aca09349fdb84d131321425f6c3a38ed/numpy/dtype.o" "libs/python/src/numpy/dtype.cpp" For some reason the command includes the option > -I"/usr/lib64/python2.7/site-packages/numpy/core/include" and defining > --sysroot=/home/rojkov/work/ros/build/tmp-glibc/work/i586-oe-linux/boost/1.63.0-r1/recipe-sysroot doesn't seem to help to ignore it. As result libs/python/src/numpy/dtype.cpp gets compiled against the system python2-numpy. If python2-numpy is removed from the host then boost builds correctly. Boost seems to think that building in a prefix or dare I say it cross-compiling is stupid, so really doesn't handle this well. What's happening is that it's finding a python in $PATH and then hunting around for bits it can link against, finding some of numpy on your host, and then being surprised when it can't link against a numpy in the sysroot. This is basically a duplicate of #11104 although breaking differently. I just sent a patch to oe-core so that if python is enabled, it is told explicitly to build against the sysroot python3 and won't try anything else. This should stop it looking for host numpy... *** This bug has been marked as a duplicate of bug 11104 *** |