On 11/14/2013 10:53 PM, Khem Raj wrote:
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
Hi Khem,
Thanks, I will try it in dora.
// Robert
Signed-off-by: Phil Blundell <[email protected] <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 <[email protected] <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
[email protected] <javascript:;>
http://lists.openembedded.org/mailman/listinfo/openembedded-core
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core