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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
|
From 572c2c84ea8df4af55eab0536b72ca7fd91b3d93 Mon Sep 17 00:00:00 2001
From: Brian Heim <brian@lovelocaldesign.com>
Date: Sun, 12 Mar 2017 10:57:35 -0400
Subject: [PATCH 1/2] boost.thread: patch for gcc 6.2 ICE
See #2473 for history. This is a small patch to basic_thread_pool.hpp
that resolves an internal compiler error generated by gcc 6.2 and 6.3.
---
.../boost/boost/thread/executors/basic_thread_pool.hpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/external_libraries/boost/boost/thread/executors/basic_thread_pool.hpp b/external_libraries/boost/boost/thread/executors/basic_thread_pool.hpp
index e0d4df2c7..6122ecdb2 100644
--- a/external_libraries/boost/boost/thread/executors/basic_thread_pool.hpp
+++ b/external_libraries/boost/boost/thread/executors/basic_thread_pool.hpp
@@ -137,7 +137,13 @@ namespace executors
for (unsigned i = 0; i < thread_count; ++i)
{
#if 1
+ // fix for gcc 6.2 ICE - see github.com/supercollider/supercollider/pull/2473
+# ifndef __MINGW32__
thread th (&basic_thread_pool::worker_thread, this);
+# else
+ auto worker = [=](){ this->worker_thread(); };
+ thread th (worker);
+# endif
threads.push_back(thread_t(boost::move(th)));
#else
threads.push_back(thread_t(&basic_thread_pool::worker_thread, this)); // do not compile
--
2.11.0
From 482944c3d646e31eed0022a0ebb260b814c895fe Mon Sep 17 00:00:00 2001
From: Brian Heim <brian@lovelocaldesign.com>
Date: Sun, 12 Mar 2017 11:01:01 -0400
Subject: [PATCH 2/2] Reapply boost.chrono changes from a826536, 19dab0c
The two commits above inlined several functions in boost.chrono.
This commit reapplies those changes.
---
.../chrono/detail/inlined/mac/process_cpu_clocks.hpp | 16 ++++++++--------
.../chrono/detail/inlined/posix/process_cpu_clocks.hpp | 16 ++++++++--------
.../boost/chrono/detail/inlined/posix/thread_clock.hpp | 4 ++--
3 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/external_libraries/boost/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp b/external_libraries/boost/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp
index 6e55b0f2f..0f3ca46e0 100644
--- a/external_libraries/boost/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp
+++ b/external_libraries/boost/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp
@@ -46,7 +46,7 @@ namespace boost
}
- process_real_cpu_clock::time_point process_real_cpu_clock::now() BOOST_NOEXCEPT
+ inline process_real_cpu_clock::time_point process_real_cpu_clock::now() BOOST_NOEXCEPT
{
#if 1
tms tm;
@@ -87,7 +87,7 @@ namespace boost
}
#if !defined BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING
- process_real_cpu_clock::time_point process_real_cpu_clock::now(system::error_code & ec)
+ inline process_real_cpu_clock::time_point process_real_cpu_clock::now(system::error_code & ec)
{
#if 1
@@ -165,7 +165,7 @@ namespace boost
#endif
#if !defined BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING
- process_user_cpu_clock::time_point process_user_cpu_clock::now(system::error_code & ec)
+ inline process_user_cpu_clock::time_point process_user_cpu_clock::now(system::error_code & ec)
{
tms tm;
clock_t c = ::times(&tm);
@@ -204,7 +204,7 @@ namespace boost
}
#endif
- process_user_cpu_clock::time_point process_user_cpu_clock::now() BOOST_NOEXCEPT
+ inline process_user_cpu_clock::time_point process_user_cpu_clock::now() BOOST_NOEXCEPT
{
tms tm;
clock_t c = ::times(&tm);
@@ -225,7 +225,7 @@ namespace boost
}
return time_point();
}
- process_system_cpu_clock::time_point process_system_cpu_clock::now() BOOST_NOEXCEPT
+ inline process_system_cpu_clock::time_point process_system_cpu_clock::now() BOOST_NOEXCEPT
{
tms tm;
clock_t c = ::times(&tm);
@@ -248,7 +248,7 @@ namespace boost
}
#if !defined BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING
- process_system_cpu_clock::time_point process_system_cpu_clock::now(system::error_code & ec)
+ inline process_system_cpu_clock::time_point process_system_cpu_clock::now(system::error_code & ec)
{
tms tm;
clock_t c = ::times(&tm);
@@ -287,7 +287,7 @@ namespace boost
}
#endif
- process_cpu_clock::time_point process_cpu_clock::now() BOOST_NOEXCEPT
+ inline process_cpu_clock::time_point process_cpu_clock::now() BOOST_NOEXCEPT
{
tms tm;
clock_t c = ::times(&tm);
@@ -312,7 +312,7 @@ namespace boost
}
#if !defined BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING
- process_cpu_clock::time_point process_cpu_clock::now(system::error_code & ec)
+ inline process_cpu_clock::time_point process_cpu_clock::now(system::error_code & ec)
{
tms tm;
diff --git a/external_libraries/boost/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp b/external_libraries/boost/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp
index feecc8679..a687e6c32 100644
--- a/external_libraries/boost/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp
+++ b/external_libraries/boost/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp
@@ -41,7 +41,7 @@ namespace chrono_detail
}
}
-process_real_cpu_clock::time_point process_real_cpu_clock::now() BOOST_NOEXCEPT
+inline process_real_cpu_clock::time_point process_real_cpu_clock::now() BOOST_NOEXCEPT
{
tms tm;
clock_t c = ::times( &tm );
@@ -65,7 +65,7 @@ process_real_cpu_clock::time_point process_real_cpu_clock::now() BOOST_NOEXCEPT
}
#if !defined BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING
-process_real_cpu_clock::time_point process_real_cpu_clock::now(
+inline process_real_cpu_clock::time_point process_real_cpu_clock::now(
system::error_code & ec)
{
@@ -118,7 +118,7 @@ process_real_cpu_clock::time_point process_real_cpu_clock::now(
}
#endif
-process_user_cpu_clock::time_point process_user_cpu_clock::now() BOOST_NOEXCEPT
+inline process_user_cpu_clock::time_point process_user_cpu_clock::now() BOOST_NOEXCEPT
{
tms tm;
clock_t c = ::times( &tm );
@@ -142,7 +142,7 @@ process_user_cpu_clock::time_point process_user_cpu_clock::now() BOOST_NOEXCEPT
}
#if !defined BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING
-process_user_cpu_clock::time_point process_user_cpu_clock::now(
+inline process_user_cpu_clock::time_point process_user_cpu_clock::now(
system::error_code & ec)
{
tms tm;
@@ -194,7 +194,7 @@ process_user_cpu_clock::time_point process_user_cpu_clock::now(
}
#endif
-process_system_cpu_clock::time_point process_system_cpu_clock::now() BOOST_NOEXCEPT
+inline process_system_cpu_clock::time_point process_system_cpu_clock::now() BOOST_NOEXCEPT
{
tms tm;
clock_t c = ::times( &tm );
@@ -219,7 +219,7 @@ process_system_cpu_clock::time_point process_system_cpu_clock::now() BOOST_NOEXC
}
#if !defined BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING
-process_system_cpu_clock::time_point process_system_cpu_clock::now(
+inline process_system_cpu_clock::time_point process_system_cpu_clock::now(
system::error_code & ec)
{
tms tm;
@@ -271,7 +271,7 @@ process_system_cpu_clock::time_point process_system_cpu_clock::now(
}
#endif
-process_cpu_clock::time_point process_cpu_clock::now() BOOST_NOEXCEPT
+inline process_cpu_clock::time_point process_cpu_clock::now() BOOST_NOEXCEPT
{
tms tm;
clock_t c = ::times( &tm );
@@ -299,7 +299,7 @@ process_cpu_clock::time_point process_cpu_clock::now() BOOST_NOEXCEPT
}
#if !defined BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING
-process_cpu_clock::time_point process_cpu_clock::now(
+inline process_cpu_clock::time_point process_cpu_clock::now(
system::error_code & ec )
{
tms tm;
diff --git a/external_libraries/boost/boost/chrono/detail/inlined/posix/thread_clock.hpp b/external_libraries/boost/boost/chrono/detail/inlined/posix/thread_clock.hpp
index a42b3c8a1..84d5f6514 100644
--- a/external_libraries/boost/boost/chrono/detail/inlined/posix/thread_clock.hpp
+++ b/external_libraries/boost/boost/chrono/detail/inlined/posix/thread_clock.hpp
@@ -23,7 +23,7 @@
namespace boost { namespace chrono {
- thread_clock::time_point thread_clock::now( ) BOOST_NOEXCEPT
+ inline thread_clock::time_point thread_clock::now( ) BOOST_NOEXCEPT
{
struct timespec ts;
#if defined CLOCK_THREAD_CPUTIME_ID
@@ -49,7 +49,7 @@ namespace boost { namespace chrono {
}
#if !defined BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING
- thread_clock::time_point thread_clock::now( system::error_code & ec )
+ inline thread_clock::time_point thread_clock::now( system::error_code & ec )
{
struct timespec ts;
#if defined CLOCK_THREAD_CPUTIME_ID
--
2.11.0
|