<br><br>On Thursday, November 14, 2013, Phil Blundell  wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Boost::thread uses functions from boost::atomic but doesn&#39;t actually<br>

link with libboost_atomic.  This works fine on platforms where<br>
BOOST_ATOMIC_FLAG_LOCK_FREE is true but will lead to undefined<br>
symbol references otherwise.  Fix this by applying a patch from<br>
the upstream bug tracker to add the missing library linkage.</blockquote><div><br></div><div>Is it fixed in 1.55? Then we might apply this to Dora and upgrade master to 1.55 </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
Signed-off-by: Phil Blundell &lt;<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;pb@pbcl.net&#39;)">pb@pbcl.net</a>&gt;<br>
---<br>
 meta/recipes-support/boost/<a href="http://boost_1.54.0.bb" target="_blank">boost_1.54.0.bb</a>         |  1 +<br>
 .../files/boost-1.54.0-thread-link_atomic.patch    | 59 ++++++++++++++++++++++<br>
 2 files changed, 60 insertions(+)<br>
 create mode 100644 meta/recipes-support/boost/files/boost-1.54.0-thread-link_atomic.patch<br>
<br>
diff --git a/meta/recipes-support/boost/<a href="http://boost_1.54.0.bb" target="_blank">boost_1.54.0.bb</a> b/meta/recipes-support/boost/<a href="http://boost_1.54.0.bb" target="_blank">boost_1.54.0.bb</a><br>
index 3cf88fa..9e7a60a 100644<br>
--- a/meta/recipes-support/boost/<a href="http://boost_1.54.0.bb" target="_blank">boost_1.54.0.bb</a><br>
+++ b/meta/recipes-support/boost/<a href="http://boost_1.54.0.bb" target="_blank">boost_1.54.0.bb</a><br>
@@ -3,4 +3,5 @@ include boost.inc<br>
<br>
 SRC_URI += &quot;file://arm-intrinsics.patch \<br>
             file://glibc.patch \<br>
+            file://boost-1.54.0-thread-link_atomic.patch \<br>
            &quot;<br>
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<br>
new file mode 100644<br>
index 0000000..d39d0a9<br>
--- /dev/null<br>
+++ b/meta/recipes-support/boost/files/boost-1.54.0-thread-link_atomic.patch<br>
@@ -0,0 +1,59 @@<br>
+Link boost_thread with boost_atomic to avoid undefined references to<br>
+boost::atomic::detail::lock_pool::get_lock_for().<br>
+<br>
+From <a href="https://svn.boost.org/trac/boost/ticket/9041" target="_blank">https://svn.boost.org/trac/boost/ticket/9041</a><br>
+<br>
+Phil Blundell &lt;<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;pb@pbcl.net&#39;)">pb@pbcl.net</a>&gt;<br>
+Upstream-Status: Backport<br>
+<br>
+diff -Nurp boost_1_54_0/libs/thread/build/has_atomic_flag_lockfree_test.cpp <a href="http://boost_1_54_0.pm/libs/thread/build/has_atomic_flag_lockfree_test.cpp" target="_blank">boost_1_54_0.pm/libs/thread/build/has_atomic_flag_lockfree_test.cpp</a><br>

+--- boost_1_54_0/libs/thread/build/has_atomic_flag_lockfree_test.cpp   1970-01-01 01:00:00.000000000 +0100<br>
++++ <a href="http://boost_1_54_0.pm/libs/thread/build/has_atomic_flag_lockfree_test.cpp" target="_blank">boost_1_54_0.pm/libs/thread/build/has_atomic_flag_lockfree_test.cpp</a>        2013-08-23 19:51:52.706329968 +0200<br>

+@@ -0,0 +1,14 @@<br>
++// Copyright (c) 2013, Petr Machata, Red Hat Inc.<br>
++//<br>
++// Use modification and distribution are subject to the boost Software<br>
++// License, Version 1.0.  (See <a href="http://www.boost.org/LICENSE_1_0.txt" target="_blank">http://www.boost.org/LICENSE_1_0.txt</a>).<br>
++<br>
++#include &quot;../../../boost/atomic.hpp&quot;<br>
++#include &quot;../../../boost/static_assert.hpp&quot;<br>
++<br>
++int<br>
++main(int argc, char *argv[])<br>
++{<br>
++  BOOST_STATIC_ASSERT(BOOST_ATOMIC_FLAG_LOCK_FREE);<br>
++  return 0;<br>
++}<br>
+diff -Nurp boost_1_54_0/libs/thread/build/Jamfile.v2 <a href="http://boost_1_54_0.pm/libs/thread/build/Jamfile.v2" target="_blank">boost_1_54_0.pm/libs/thread/build/Jamfile.v2</a><br>
+--- boost_1_54_0/libs/thread/build/Jamfile.v2  2013-06-15 12:35:45.000000000 +0200<br>
++++ <a href="http://boost_1_54_0.pm/libs/thread/build/Jamfile.v2" target="_blank">boost_1_54_0.pm/libs/thread/build/Jamfile.v2</a>       2013-08-23 19:52:30.018613408 +0200<br>
+@@ -36,6 +36,7 @@ import os ;<br>
+ import feature ;<br>
+ import indirect ;<br>
+ import path ;<br>
++import configure ;<br>
+<br>
+ project boost/thread<br>
+     : source-location ../src<br>
+@@ -140,6 +141,8 @@ local rule default_threadapi ( )<br>
+ feature.feature threadapi : pthread win32 : propagated ;<br>
+ feature.set-default threadapi : [ default_threadapi ] ;<br>
+<br>
++exe has_atomic_flag_lockfree : ../build/has_atomic_flag_lockfree_test.cpp ;<br>
++<br>
+ rule tag ( name : type ? : property-set )<br>
+ {<br>
+     local result = $(name) ;<br>
+@@ -248,6 +251,12 @@ rule requirements ( properties * )<br>
+ {<br>
+     local result ;<br>
+<br>
++    if ! [ configure.builds has_atomic_flag_lockfree<br>
++         : $(properties) : &quot;lockfree boost::atomic_flag&quot; ]<br>
++    {<br>
++        result += &lt;library&gt;/boost/atomic//boost_atomic ;<br>
++    }<br>
++<br>
+     if &lt;threadapi&gt;pthread in $(properties)<br>
+     {<br>
+         result += &lt;define&gt;BOOST_THREAD_POSIX ;<br>
--<br>
1.8.4.rc3<br>
<br>
<br>
<br>
_______________________________________________<br>
Openembedded-core mailing list<br>
<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;Openembedded-core@lists.openembedded.org&#39;)">Openembedded-core@lists.openembedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" target="_blank">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a><br>
</blockquote>