On Thursday, November 14, 2013, Phil Blundell wrote: > Boost::thread uses functions from boost::atomic but doesn't actually > link with libboost_atomic. This works fine on platforms where > BOOST_ATOMIC_FLAG_LOCK_FREE is true but will lead to undefined > symbol references otherwise. Fix this by applying a patch from > the upstream bug tracker to add the missing library linkage.
Is it fixed in 1.55? Then we might apply this to Dora and upgrade master to 1.55 > > Signed-off-by: Phil Blundell <p...@pbcl.net <javascript:;>> > --- > meta/recipes-support/boost/boost_1.54.0.bb | 1 + > .../files/boost-1.54.0-thread-link_atomic.patch | 59 > ++++++++++++++++++++++ > 2 files changed, 60 insertions(+) > create mode 100644 > meta/recipes-support/boost/files/boost-1.54.0-thread-link_atomic.patch > > diff --git > a/meta/recipes-support/boost/boost_1.54.0.bbb/meta/recipes-support/boost/ > boost_1.54.0.bb > index 3cf88fa..9e7a60a 100644 > --- a/meta/recipes-support/boost/boost_1.54.0.bb > +++ b/meta/recipes-support/boost/boost_1.54.0.bb > @@ -3,4 +3,5 @@ include boost.inc > > SRC_URI += "file://arm-intrinsics.patch \ > file://glibc.patch \ > + file://boost-1.54.0-thread-link_atomic.patch \ > " > diff --git > a/meta/recipes-support/boost/files/boost-1.54.0-thread-link_atomic.patch > b/meta/recipes-support/boost/files/boost-1.54.0-thread-link_atomic.patch > new file mode 100644 > index 0000000..d39d0a9 > --- /dev/null > +++ > b/meta/recipes-support/boost/files/boost-1.54.0-thread-link_atomic.patch > @@ -0,0 +1,59 @@ > +Link boost_thread with boost_atomic to avoid undefined references to > +boost::atomic::detail::lock_pool::get_lock_for(). > + > +From https://svn.boost.org/trac/boost/ticket/9041 > + > +Phil Blundell <p...@pbcl.net <javascript:;>> > +Upstream-Status: Backport > + > +diff -Nurp > boost_1_54_0/libs/thread/build/has_atomic_flag_lockfree_test.cpp > boost_1_54_0.pm/libs/thread/build/has_atomic_flag_lockfree_test.cpp > +--- boost_1_54_0/libs/thread/build/has_atomic_flag_lockfree_test.cpp > 1970-01-01 01:00:00.000000000 +0100 > ++++ boost_1_54_0.pm/libs/thread/build/has_atomic_flag_lockfree_test.cpp > 2013-08-23 19:51:52.706329968 +0200 > +@@ -0,0 +1,14 @@ > ++// Copyright (c) 2013, Petr Machata, Red Hat Inc. > ++// > ++// Use modification and distribution are subject to the boost Software > ++// License, Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt). > ++ > ++#include "../../../boost/atomic.hpp" > ++#include "../../../boost/static_assert.hpp" > ++ > ++int > ++main(int argc, char *argv[]) > ++{ > ++ BOOST_STATIC_ASSERT(BOOST_ATOMIC_FLAG_LOCK_FREE); > ++ return 0; > ++} > +diff -Nurp boost_1_54_0/libs/thread/build/Jamfile.v2 > boost_1_54_0.pm/libs/thread/build/Jamfile.v2 > +--- boost_1_54_0/libs/thread/build/Jamfile.v2 2013-06-15 > 12:35:45.000000000 +0200 > ++++ boost_1_54_0.pm/libs/thread/build/Jamfile.v2 2013-08-23 > 19:52:30.018613408 +0200 > +@@ -36,6 +36,7 @@ import os ; > + import feature ; > + import indirect ; > + import path ; > ++import configure ; > + > + project boost/thread > + : source-location ../src > +@@ -140,6 +141,8 @@ local rule default_threadapi ( ) > + feature.feature threadapi : pthread win32 : propagated ; > + feature.set-default threadapi : [ default_threadapi ] ; > + > ++exe has_atomic_flag_lockfree : > ../build/has_atomic_flag_lockfree_test.cpp ; > ++ > + rule tag ( name : type ? : property-set ) > + { > + local result = $(name) ; > +@@ -248,6 +251,12 @@ rule requirements ( properties * ) > + { > + local result ; > + > ++ if ! [ configure.builds has_atomic_flag_lockfree > ++ : $(properties) : "lockfree boost::atomic_flag" ] > ++ { > ++ result += <library>/boost/atomic//boost_atomic ; > ++ } > ++ > + if <threadapi>pthread in $(properties) > + { > + result += <define>BOOST_THREAD_POSIX ; > -- > 1.8.4.rc3 > > > > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org <javascript:;> > http://lists.openembedded.org/mailman/listinfo/openembedded-core >
_______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core