diff options
author | mrg <mrg@pkgsrc.org> | 2015-08-09 07:59:04 +0000 |
---|---|---|
committer | mrg <mrg@pkgsrc.org> | 2015-08-09 07:59:04 +0000 |
commit | 7c7a03968f92a0e1a9b93dd091ebd873312cc564 (patch) | |
tree | 19203cf8ea3ead47627bc7c20702daad5258c256 /meta-pkgs/boost | |
parent | 0684b5c4fbb1b436fab89b7e3542395b7068ddbc (diff) | |
download | pkgsrc-7c7a03968f92a0e1a9b93dd091ebd873312cc564.tar.gz |
some part of boost wants fence_before_store(), so implement it for sparc.
fixes the build of boost-libs on sparc64.
Diffstat (limited to 'meta-pkgs/boost')
-rw-r--r-- | meta-pkgs/boost/distinfo | 3 | ||||
-rw-r--r-- | meta-pkgs/boost/patches/patch-boost_atomic_detail_ops_gcc_sparc.hpp | 31 |
2 files changed, 33 insertions, 1 deletions
diff --git a/meta-pkgs/boost/distinfo b/meta-pkgs/boost/distinfo index c6db925f0f7..adb74a4d868 100644 --- a/meta-pkgs/boost/distinfo +++ b/meta-pkgs/boost/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.80 2015/04/25 19:02:06 tnn Exp $ +$NetBSD: distinfo,v 1.81 2015/08/09 07:59:04 mrg Exp $ SHA1 (boost_1_58_0.tar.bz2) = 2fc96c1651ac6fe9859b678b165bd78dc211e881 RMD160 (boost_1_58_0.tar.bz2) = efc78b2b1a5d33ed72fcfa6688564c2fcd56772a @@ -11,6 +11,7 @@ SHA1 (patch-ae) = ac2e4afcf243c2fee2394cfe3fe92f4890e9ab83 SHA1 (patch-ag) = 117eabbbbc26d04bb5e56df5ad92e55b5061c0f8 SHA1 (patch-aq) = 355a58864bf4d07617250d2587e0f7cf62a7b825 SHA1 (patch-ar) = 2fec2c51272cc4ee376e6538d8f1fd8561a7f0a3 +SHA1 (patch-boost_atomic_detail_ops_gcc_sparc.hpp) = a7dd240ff6f61368ae6a8500e7009021fa6cba71 SHA1 (patch-boost_config_posix__features.hpp) = c3e7187af35a2a25901b37388d3194e22d005323 SHA1 (patch-boost_config_stdlib_libcpp.hpp) = d243325d3aeb180e4ed7a1fd7d89782d832fa9fc SHA1 (patch-boost_config_stdlib_libstdcpp3.hpp) = 52ebedd5e80b3a8c257eccb28cd2db76cb1ca01e diff --git a/meta-pkgs/boost/patches/patch-boost_atomic_detail_ops_gcc_sparc.hpp b/meta-pkgs/boost/patches/patch-boost_atomic_detail_ops_gcc_sparc.hpp new file mode 100644 index 00000000000..fec59956c11 --- /dev/null +++ b/meta-pkgs/boost/patches/patch-boost_atomic_detail_ops_gcc_sparc.hpp @@ -0,0 +1,31 @@ +$NetBSD: patch-boost_atomic_detail_ops_gcc_sparc.hpp,v 1.1 2015/08/09 07:59:05 mrg Exp $ + +provide a fence_before_store() for sparc, which fixes the build. + +--- boost/atomic/detail/ops_gcc_sparc.hpp.orig 2015-08-09 05:20:41.000000000 +1000 ++++ boost/atomic/detail/ops_gcc_sparc.hpp 2015-08-08 17:54:11.000000000 +1000 +@@ -34,6 +34,12 @@ + + struct gcc_sparc_cas_base + { ++ static BOOST_FORCEINLINE void fence_before_store(memory_order order) BOOST_NOEXCEPT ++ { ++ if ((order & memory_order_release) != 0) ++ hardware_full_fence(); ++ } ++ + static BOOST_FORCEINLINE void fence_before(memory_order order) BOOST_NOEXCEPT + { + if (order == memory_order_seq_cst) +@@ -55,6 +61,11 @@ + if (order == memory_order_seq_cst) + __asm__ __volatile__ ("membar #Sync" ::: "memory"); + } ++ ++ static BOOST_FORCEINLINE void hardware_full_fence() BOOST_NOEXCEPT ++ { ++ __asm__ __volatile__ ("membar #Sync" ::: "memory"); ++ } + }; + + template< bool Signed > |