From owner-svn-src-all@FreeBSD.ORG Thu Nov 6 09:37:16 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id ECEED5D3; Thu, 6 Nov 2014 09:37:16 +0000 (UTC) Received: from theravensnest.org (theraven.freebsd.your.org [216.14.102.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cloud.theravensnest.org", Issuer "StartCom Class 1 Primary Intermediate Server CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id BD617B8; Thu, 6 Nov 2014 09:37:16 +0000 (UTC) Received: from [192.168.0.106] (cpc14-cmbg15-2-0-cust307.5-4.cable.virginm.net [82.26.1.52]) (authenticated bits=0) by theravensnest.org (8.14.9/8.14.9) with ESMTP id sA69awro081944 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Thu, 6 Nov 2014 09:37:00 GMT (envelope-from theraven@FreeBSD.org) X-Authentication-Warning: theravensnest.org: Host cpc14-cmbg15-2-0-cust307.5-4.cable.virginm.net [82.26.1.52] claimed to be [192.168.0.106] Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: svn commit: r273382 - head/contrib/libcxxrt From: David Chisnall In-Reply-To: <7819250D-0FE0-44E6-86DA-718AEA2B261C@me.com> Date: Thu, 6 Nov 2014 09:36:52 +0000 Content-Transfer-Encoding: quoted-printable Message-Id: <9E81312A-E615-49C2-84C5-D4CF9EA96232@FreeBSD.org> References: <201410211252.s9LCq2R5053286@svn.freebsd.org> <7819250D-0FE0-44E6-86DA-718AEA2B261C@me.com> To: Rui Paulo X-Mailer: Apple Mail (2.1878.6) Cc: svn-src-head@freebsd.org, Baptiste Daroussin , src-committers@freebsd.org, svn-src-all@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Nov 2014 09:37:17 -0000 On 6 Nov 2014, at 01:04, Rui Paulo wrote: > I don't think the non-temporary fix was ever committed. What's the = problem? Is something else defining these methods? Yes, they're defined by libc++ too. The problem is that gcc 4.9 wants = to be able to throw bad_array_new_length exceptions when you do new = foo[x] and sizeof(foo) * x overflows. It does this by calling a support = function defined in the C++ runtime, but that means that the C++ runtime = must have the bad_array_new_length class defined there too. Having the = methods on those classes defined in libcxxrt and libc++ breaks things. The correct fix was to move a #endif in libc++ so that it didn't compile = those functions. There was some discussion about whether we needed to = support the case that old libc++ and new libcxxrt were used, but it's = probably not required. Bapt was going to check whether there were any = symbol versioning issues with code compiled against old libc++/libcxxrt = and dynamically linked against the new one. =20 David