From owner-freebsd-office@FreeBSD.ORG Thu Apr 3 19:54:00 2014 Return-Path: Delivered-To: office@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BDB86BD9; Thu, 3 Apr 2014 19:54:00 +0000 (UTC) Received: from alchemy.franken.de (alchemy.franken.de [194.94.249.214]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "alchemy.franken.de", Issuer "alchemy.franken.de" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 5179A847; Thu, 3 Apr 2014 19:54:00 +0000 (UTC) Received: from alchemy.franken.de (localhost [127.0.0.1]) by alchemy.franken.de (8.14.7/8.14.7/ALCHEMY.FRANKEN.DE) with ESMTP id s33JraBl058962 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 3 Apr 2014 21:53:36 +0200 (CEST) (envelope-from marius@alchemy.franken.de) Received: (from marius@localhost) by alchemy.franken.de (8.14.7/8.14.7/Submit) id s33Jratf058949; Thu, 3 Apr 2014 21:53:36 +0200 (CEST) (envelope-from marius) Date: Thu, 3 Apr 2014 21:53:36 +0200 From: Marius Strobl To: office@freebsd.org, bapt@freebsd.org, beat@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: <20140403195336.GB86304@alchemy.franken.de> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="J/dobhs11T7y2rNN" Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Cc: bug-followup@freebsd.org X-BeenThere: freebsd-office@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Office applications on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Apr 2014 19:54:00 -0000 --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--