aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-support/boost/files/boost-1.54.0-thread-link_atomic.patch
blob: 62af3d1aa3c43d866e134c13e30f822387c189ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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 <pb@pbcl.net>
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 ;