Bug 187958 - devel/boost-libs: gcc-atomic.hpp:961:64: error: no matching constructor for initialization of 'storage_type' (aka 'boost::atomics::detail::storage128_type')
Summary: devel/boost-libs: gcc-atomic.hpp:961:64: error: no matching constructor for i...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: FreeBSD Office Team
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-03-26 14:50 UTC by O. Hartmann
Modified: 2014-04-08 09:06 UTC (History)
0 users

See Also:


Attachments
boost-libs_clang.diff (5.24 KB, patch)
2014-04-03 20:53 UTC, marius
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description O. Hartmann 2014-03-26 14:50:01 UTC
devel/boost-libs fails to compile and update on FreeBSD 9.2-STABLE with CLANG 3.4!

[...]
In file included from ./boost/atomic/detail/platform.hpp:22:
./boost/atomic/detail/gcc-atomic.hpp:961:64: error: no matching constructor for initialization of 'storage_type' (aka 'boost::atomics::detail::storage128_type')
    explicit base_atomic(value_type const& v) BOOST_NOEXCEPT : v_(0)
                                                               ^  ~
./boost/atomic/detail/gcc-atomic.hpp:932:28: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'int' to 'const boost::atomics::detail::storage128_type' for 1st argument
struct BOOST_ALIGNMENT(16) storage128_type

How-To-Repeat: Try to update your FBSD 9.2-STABLE system with CLANG 3.4 the system's compiler.
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2014-03-26 14:50:07 UTC
Responsible Changed
From-To: freebsd-ports-bugs->office

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 marius 2014-04-03 20:53:36 UTC
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
Comment 3 Baptiste Daroussin freebsd_committer freebsd_triage 2014-04-03 20:56:53 UTC
On Thu, Apr 03, 2014 at 09:53:36PM +0200, Marius Strobl wrote:
> 
> 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
> 


Approved

Bapt
Comment 4 dfilter service freebsd_committer freebsd_triage 2014-04-08 08:36:05 UTC
Author: marius
Date: Tue Apr  8 07:36:00 2014
New Revision: 350582
URL: http://svnweb.freebsd.org/changeset/ports/350582
QAT: https://qat.redports.org/buildarchive/r350582/

Log:
  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
  Approved by:	bapt (mentor)
  Sponsored by:	Bally Wulff Games & Entertainment GmbH

Added:
  head/devel/boost-libs/files/patch-boost__atomic__detail__cas128strong.hpp   (contents, props changed)
  head/devel/boost-libs/files/patch-boost__atomic__detail__gcc-atomic.hpp   (contents, props changed)
Modified:
  head/devel/boost-libs/Makefile

Modified: head/devel/boost-libs/Makefile
==============================================================================
--- head/devel/boost-libs/Makefile	Tue Apr  8 07:28:47 2014	(r350581)
+++ head/devel/boost-libs/Makefile	Tue Apr  8 07:36:00 2014	(r350582)
@@ -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

Added: head/devel/boost-libs/files/patch-boost__atomic__detail__cas128strong.hpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/boost-libs/files/patch-boost__atomic__detail__cas128strong.hpp	Tue Apr  8 07:36:00 2014	(r350582)
@@ -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));
+ 

Added: head/devel/boost-libs/files/patch-boost__atomic__detail__gcc-atomic.hpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/boost-libs/files/patch-boost__atomic__detail__gcc-atomic.hpp	Tue Apr  8 07:36:00 2014	(r350582)
@@ -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,
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 5 Marius Strobl freebsd_committer freebsd_triage 2014-04-08 09:06:01 UTC
State Changed
From-To: open->closed

close