Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Apr 2014 20:00:00 GMT
From:      Marius Strobl <marius@alchemy.franken.de>
To:        office@FreeBSD.org
Subject:   Re: ports/187958: devel/boost-libs: gcc-atomic.hpp:961:64: error: no matching constructor for initialization of 'storage_type' (aka 'boost::atomics::detail::storage128_type')
Message-ID:  <201404032000.s33K002o044705@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/187958; it has been noted by GNATS.

From: Marius Strobl <marius@alchemy.franken.de>
To: office@freebsd.org, bapt@freebsd.org, beat@freebsd.org
Cc: bug-followup@freebsd.org
Subject: Re: ports/187958: devel/boost-libs: gcc-atomic.hpp:961:64: error: no
 matching constructor for initialization of 'storage_type' (aka
 'boost::atomics::detail::storage128_type')
Date: Thu, 3 Apr 2014 21:53:36 +0200

 --J/dobhs11T7y2rNN
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 
 Hi guys,
 
 could you please approve the attached patch to be committed?
 
 %%
 Pull in the following revisions from https://github.com/boostorg/, fixing
 compilation with clang 3.4:
 Commit: 6bb71fdd8f7cc346d90fb14beb38b7297fc1ffd9
 Fixed incorrect initialization of 128-bit values, when no native support for
 128-bit integers is available.
 Commit: e4bde20f2eec0a51be14533871d2123bd2ab9cf3
 More compilation fixes for the case when 128-bit integers are not supported.
 
 PR: 187958
 %%
 
 Marius
 
 
 --J/dobhs11T7y2rNN
 Content-Type: text/x-diff; charset=us-ascii
 Content-Disposition: attachment; filename="boost-libs_clang.diff"
 
 Index: Makefile
 ===================================================================
 --- Makefile	(revision 350030)
 +++ Makefile	(working copy)
 @@ -4,6 +4,8 @@
  PORTNAME=	boost-libs
  COMMENT=	Free portable C++ libraries (without Boost.Python)
  
 +PORTREVISION=	1
 +
  BUILD_DEPENDS+=	bjam:${PORTSDIR}/devel/boost-jam
  
  OPTIONS_DEFINE=	VERBOSE_BUILD DEBUG ICU OPTIMIZED_CFLAGS
 Index: files/patch-boost__atomic__detail__cas128strong.hpp
 ===================================================================
 --- files/patch-boost__atomic__detail__cas128strong.hpp	(revision 0)
 +++ files/patch-boost__atomic__detail__cas128strong.hpp	(working copy)
 @@ -0,0 +1,33 @@
 +--- boost/atomic/detail/cas128strong.hpp	2013-07-20 20:01:35.000000000 +0200
 ++++ boost/atomic/detail/cas128strong.hpp.orig	2014-04-03 16:34:19.000000000 +0200
 +@@ -196,15 +196,17 @@
 + 
 + public:
 +     BOOST_DEFAULTED_FUNCTION(base_atomic(void), {})
 +-    explicit base_atomic(value_type const& v) BOOST_NOEXCEPT : v_(0)
 ++    explicit base_atomic(value_type const& v) BOOST_NOEXCEPT
 +     {
 ++        memset(&v_, 0, sizeof(v_));
 +         memcpy(&v_, &v, sizeof(value_type));
 +     }
 + 
 +     void
 +     store(value_type const& value, memory_order order = memory_order_seq_cst) volatile BOOST_NOEXCEPT
 +     {
 +-        storage_type value_s = 0;
 ++        storage_type value_s;
 ++        memset(&value_s, 0, sizeof(value_s));
 +         memcpy(&value_s, &value, sizeof(value_type));
 +         platform_fence_before_store(order);
 +         platform_store128(value_s, &v_);
 +@@ -247,7 +249,9 @@
 +         memory_order success_order,
 +         memory_order failure_order) volatile BOOST_NOEXCEPT
 +     {
 +-        storage_type expected_s = 0, desired_s = 0;
 ++        storage_type expected_s, desired_s;
 ++        memset(&expected_s, 0, sizeof(expected_s));
 ++        memset(&desired_s, 0, sizeof(desired_s));
 +         memcpy(&expected_s, &expected, sizeof(value_type));
 +         memcpy(&desired_s, &desired, sizeof(value_type));
 + 
 
 Property changes on: files/patch-boost__atomic__detail__cas128strong.hpp
 ___________________________________________________________________
 Added: svn:mime-type
 ## -0,0 +1 ##
 +text/plain
 \ No newline at end of property
 Added: fbsd:nokeywords
 ## -0,0 +1 ##
 +yes
 \ No newline at end of property
 Added: svn:eol-style
 ## -0,0 +1 ##
 +native
 \ No newline at end of property
 Index: files/patch-boost__atomic__detail__gcc-atomic.hpp
 ===================================================================
 --- files/patch-boost__atomic__detail__gcc-atomic.hpp	(revision 0)
 +++ files/patch-boost__atomic__detail__gcc-atomic.hpp	(working copy)
 @@ -0,0 +1,53 @@
 +--- boost/atomic/detail/gcc-atomic.hpp	2013-07-20 20:01:35.000000000 +0200
 ++++ boost/atomic/detail/gcc-atomic.hpp	2014-04-03 18:03:30.000000000 +0200
 +@@ -958,14 +958,16 @@
 + 
 + public:
 +     BOOST_DEFAULTED_FUNCTION(base_atomic(void), {})
 +-    explicit base_atomic(value_type const& v) BOOST_NOEXCEPT : v_(0)
 ++    explicit base_atomic(value_type const& v) BOOST_NOEXCEPT
 +     {
 ++        memset(&v_, 0, sizeof(v_));
 +         memcpy(&v_, &v, sizeof(value_type));
 +     }
 + 
 +     void store(value_type const& v, memory_order order = memory_order_seq_cst) volatile BOOST_NOEXCEPT
 +     {
 +-        storage_type tmp = 0;
 ++        storage_type tmp;
 ++        memset(&tmp, 0, sizeof(tmp));
 +         memcpy(&tmp, &v, sizeof(value_type));
 +         __atomic_store_n(&v_, tmp, atomics::detail::convert_memory_order_to_gcc(order));
 +     }
 +@@ -980,7 +982,8 @@
 + 
 +     value_type exchange(value_type const& v, memory_order order = memory_order_seq_cst) volatile BOOST_NOEXCEPT
 +     {
 +-        storage_type tmp = 0;
 ++        storage_type tmp;
 ++        memset(&tmp, 0, sizeof(tmp));
 +         memcpy(&tmp, &v, sizeof(value_type));
 +         tmp = __atomic_exchange_n(&v_, tmp, atomics::detail::convert_memory_order_to_gcc(order));
 +         value_type res;
 +@@ -994,7 +997,9 @@
 +         memory_order success_order,
 +         memory_order failure_order) volatile BOOST_NOEXCEPT
 +     {
 +-        storage_type expected_s = 0, desired_s = 0;
 ++        storage_type expected_s, desired_s;
 ++        memset(&expected_s, 0, sizeof(expected_s));
 ++        memset(&desired_s, 0, sizeof(desired_s));
 +         memcpy(&expected_s, &expected, sizeof(value_type));
 +         memcpy(&desired_s, &desired, sizeof(value_type));
 +         const bool success = __atomic_compare_exchange_n(&v_, &expected_s, desired_s, false,
 +@@ -1010,7 +1015,9 @@
 +         memory_order success_order,
 +         memory_order failure_order) volatile BOOST_NOEXCEPT
 +     {
 +-        storage_type expected_s = 0, desired_s = 0;
 ++        storage_type expected_s, desired_s;
 ++        memset(&expected_s, 0, sizeof(expected_s));
 ++        memset(&desired_s, 0, sizeof(desired_s));
 +         memcpy(&expected_s, &expected, sizeof(value_type));
 +         memcpy(&desired_s, &desired, sizeof(value_type));
 +         const bool success = __atomic_compare_exchange_n(&v_, &expected_s, desired_s, true,
 
 Property changes on: files/patch-boost__atomic__detail__gcc-atomic.hpp
 ___________________________________________________________________
 Added: svn:mime-type
 ## -0,0 +1 ##
 +text/plain
 \ No newline at end of property
 Added: fbsd:nokeywords
 ## -0,0 +1 ##
 +yes
 \ No newline at end of property
 Added: svn:eol-style
 ## -0,0 +1 ##
 +native
 \ No newline at end of property
 
 --J/dobhs11T7y2rNN--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201404032000.s33K002o044705>