[OE-core] [PATCH 2/3] boost: Fix link problems with caffe and Movidius SDK

Jason Wessel jason.wessel at windriver.com
Wed Mar 14 18:55:24 UTC 2018


I can't seem to find where cmake's python checker magically decides the name of the shared object, but I did find an override, so you can drop the patch.   I had even gone so far as to simply make a zero length file instead of the symlink, and everything still built and run.  It is just some cmake detection which is broken.  The ubuntu/debian systems where this code is heavily tested all provide a link for the libboost_python.so which explains why this never turned up previously.  They don't get the option to pick python2 or python3 for boost, they always get both for now.

The override to build with python boost for cmake and caffe is as follows:

cmake -DBoost_PYTHON_LIBRARY_DEBUG=/usr/lib64/libboost_python3.so \
    -DBoost_PYTHON_LIBRARY_RELEASE=/usr/lib64/libboost_python3.so \
    -DBLAS=Open \
    ..


Cheers,
Jason.


On 03/14/2018 09:55 AM, Jason Wessel wrote:
> Perhaps a bug in the cmake detect which is part of boost, because I am not using python2 for caffe.
>
> I used the path of least resistance because as far as I could tell boost only let you build one or the other and in my case it was the python3 boost api. In the end caffe was working and all the python3 tests with the Movidius SDK pass (which use python3).
>
> Jason.
>
> On 03/14/2018 09:50 AM, Burton, Ross wrote:
>> I thought that boost_python was the py2 binary, and boost_python3 was the py3 one?  Is this not a bug in caffe?
>>
>> On 13 March 2018 at 03:08, Jason Wessel <jason.wessel at windriver.com <mailto:jason.wessel at windriver.com>> wrote:
>>
>>     When using an image built with the Yocto Project which has a compiler
>>     and all the required libraries, projects such as caffe for the
>>     Movidius SDK which use python3 and boost fail to build because they
>>     look for libboost_python.so.  The error that cmake returns doesn't
>>     even point to the fact that this is why the configuration fails.
>>
>>     Example showing the problem with the missing symlink:
>>     ================
>>       git clone https://github.com/weiliu89/caffe.git <https://github.com/weiliu89/caffe.git>
>>       cd caffe
>>       mkdir build
>>       cd build
>>       cmake -DBLAS=Open ..
>>
>>     -- Configuring done
>>     CMake Error at CMakeLists.txt:85 (add_dependencies):
>>       The dependency target "pycaffe" of target "pytest" does not exist.
>>     ================
>>
>>     Conditionally creating the link when building python3 support into
>>     boost is all that is needed.
>>
>>     Signed-off-by: Jason Wessel <jason.wessel at windriver.com <mailto:jason.wessel at windriver.com>>
>>     ---
>>      meta/recipes-support/boost/boost.inc | 3 +++
>>      1 file changed, 3 insertions(+)
>>
>>     diff --git a/meta/recipes-support/boost/boost.inc b/meta/recipes-support/boost/boost.inc
>>     index 0461ec6..c53edf7 100644
>>     --- a/meta/recipes-support/boost/boost.inc
>>     +++ b/meta/recipes-support/boost/boost.inc
>>     @@ -195,6 +195,9 @@ do_install() {
>>                     fi
>>             done
>>
>>     +       if [ -e ${D}${libdir}/libboost_python3.so ]; then
>>     +               ln -s libboost_python3.so ${D}${libdir}/libboost_python.so
>>     +       fi
>>      }
>>
>>      BBCLASSEXTEND = "native nativesdk"
>>     --
>>     2.7.4
>>
>>     --
>>     _______________________________________________
>>     Openembedded-core mailing list
>>     Openembedded-core at lists.openembedded.org <mailto:Openembedded-core at lists.openembedded.org>
>>     http://lists.openembedded.org/mailman/listinfo/openembedded-core <http://lists.openembedded.org/mailman/listinfo/openembedded-core>
>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180314/d6e2a534/attachment-0002.html>


More information about the Openembedded-core mailing list