boost: fixing boost-1.55.0 for gcc-5 (#2822)
boost-1.55.0 requires patching when compiling with gcc-5. See these threads: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197594 https://svn.boost.org/trac/boost/ticket/10125 Fixes #2821.
This commit is contained in:
parent
cd511791d1
commit
1128922b44
51
var/spack/repos/builtin/packages/boost/boost_10125.patch
Normal file
51
var/spack/repos/builtin/packages/boost/boost_10125.patch
Normal file
@ -0,0 +1,51 @@
|
||||
--- a/boost/thread/pthread/once.hpp
|
||||
+++ b/boost/thread/pthread/once.hpp
|
||||
@@ -42,7 +42,7 @@ namespace boost
|
||||
}
|
||||
|
||||
#ifdef BOOST_THREAD_PROVIDES_ONCE_CXX11
|
||||
-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
+#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
||||
template<typename Function, class ...ArgTypes>
|
||||
inline void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args);
|
||||
#else
|
||||
@@ -65,7 +65,7 @@ namespace boost
|
||||
private:
|
||||
volatile thread_detail::uintmax_atomic_t epoch;
|
||||
|
||||
-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
+#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
||||
template<typename Function, class ...ArgTypes>
|
||||
friend void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args);
|
||||
#else
|
||||
@@ -118,7 +118,7 @@ namespace boost
|
||||
// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2444.html
|
||||
|
||||
|
||||
-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
+#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
||||
|
||||
|
||||
template<typename Function, class ...ArgTypes>
|
||||
--- a/boost/thread/pthread/once_atomic.hpp
|
||||
+++ b/boost/thread/pthread/once_atomic.hpp
|
||||
@@ -115,7 +115,7 @@ namespace boost
|
||||
#endif
|
||||
|
||||
|
||||
-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
+#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
||||
|
||||
template<typename Function, class ...ArgTypes>
|
||||
inline void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args)
|
||||
--- a/boost/thread/win32/once.hpp
|
||||
+++ b/boost/thread/win32/once.hpp
|
||||
@@ -227,7 +227,7 @@ namespace boost
|
||||
}
|
||||
}
|
||||
|
||||
-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
+#if !defined BOOST_NO_CXX11_VARIADIC_TEMPLATES && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
||||
//#if defined(BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNTION_PTR)
|
||||
inline void call_once(once_flag& flag, void (*f)())
|
||||
{
|
@ -130,6 +130,9 @@ class Boost(Package):
|
||||
# Patch fix from https://svn.boost.org/trac/boost/ticket/11856
|
||||
patch('boost_11856.patch', when='@1.60.0%gcc@4.4.7')
|
||||
|
||||
# Patch fix from https://svn.boost.org/trac/boost/ticket/10125
|
||||
patch('boost_10125.patch', when='@1.55.0%gcc@5.0:5.9')
|
||||
|
||||
def url_for_version(self, version):
|
||||
"""
|
||||
Handle Boost's weird URLs,
|
||||
|
Loading…
Reference in New Issue
Block a user