From owner-freebsd-toolchain@FreeBSD.ORG Sun Jan 27 15:03:18 2013 Return-Path: Delivered-To: toolchain@FreeBSD.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 29F75F28; Sun, 27 Jan 2013 15:03:18 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) by mx1.freebsd.org (Postfix) with ESMTP id 7ADD7642; Sun, 27 Jan 2013 15:03:17 +0000 (UTC) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.14.6/8.14.6) with ESMTP id r0RF3Dbx025005; Sun, 27 Jan 2013 17:03:13 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.7.4 kib.kiev.ua r0RF3Dbx025005 Received: (from kostik@localhost) by tom.home (8.14.6/8.14.6/Submit) id r0RF3DNG025004; Sun, 27 Jan 2013 17:03:13 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sun, 27 Jan 2013 17:03:13 +0200 From: Konstantin Belousov To: David Chisnall Subject: Re: C++ runtime version patch for testing Message-ID: <20130127150313.GM2522@kib.kiev.ua> References: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="S/ANZfAJ/3KdLSz0" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on tom.home Cc: toolchain@FreeBSD.org X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 15:03:18 -0000 --S/ANZfAJ/3KdLSz0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Jan 27, 2013 at 01:28:44PM +0000, David Chisnall wrote: > Hi All, >=20 > Here is a patch that, I believe, should fix the symbol version mismatches= between the runtime and the STL implementation. I have run the exception = tests from libcxxrt with this patch applied and: >=20 > - libsupc++ & libstdc++ > - libcxxrt & libstdc++ > - libcxxrt & libc++ >=20 > All tests pass for me now. Please let me know if there are any problems = with this, otherwise I'll aim to commit it today or tomorrow with a 1-week = MFC. >=20 > David >=20 > Index: gnu/lib/libsupc++/Version.map > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gnu/lib/libsupc++/Version.map (revision 245840) > +++ gnu/lib/libsupc++/Version.map (working copy) > @@ -142,6 +142,28 @@ > _ZdaPvRKSt9nothrow_t; > _ZdlPv; > _ZdlPvRKSt9nothrow_t; > + extern "C++" { > + std::set_new_handler*; What are the symbols you assigning the version there ? I cannot find anything in the libstdc++.so export list which would match the line. > + std::set_terminate*; > + std::set_unexpected*; > + std::bad_alloc*; > + > + std::bad_alloc*; std::bad_alloc seems to be duplicated. Besides that, pristine libstdc++.so exports 'std::bad_alloc::what() const' at the GLIBCXX_3.4.9 namespace. You did this for the *::what()' from libcxxrt but not for the libsupc++. > + std::bad_cast*; > + std::exception*; > + > + "typeinfo for std::bad_alloc"; > + "typeinfo for std::bad_cast"; > + "typeinfo for std::exception"; > + > + "typeinfo name for std::bad_alloc"; > + "typeinfo name for std::bad_cast"; > + "typeinfo name for std::exception"; > + > + "vtable for std::bad_alloc"; > + "vtable for std::bad_cast"; > + "vtable for std::exception"; > + }; > }; > =20 > CXXABI_1.3.1 { > Index: lib/libcxxrt/Version.map > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- lib/libcxxrt/Version.map (revision 245840) > +++ lib/libcxxrt/Version.map (working copy) > @@ -209,18 +209,7 @@ > =20 > "std::type_info::type_info(std::type_info const&)"; > "std::type_info::type_info(std::type_info const&)"; > - "std::type_info::~type_info()"; > - "std::type_info::~type_info()"; > - "std::type_info::~type_info()"; > "std::type_info::operator=3D(std::type_info const&)"; [omitted] Do applications record the dependency on the libcxxrt directly, using the DT_NEEDED tag ? --S/ANZfAJ/3KdLSz0 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iQIcBAEBAgAGBQJRBUGwAAoJEJDCuSvBvK1BIQcQAJJYvqkp7yN1E6yMdJ9CZHOh wXz6k77UMxuaEuQ/d0sdqKkwnKwZocrhG1i5pGctJ+kzSVOTBRL+pJsxB2MA/fK7 85tpFn2GtSwT4CGFsEpu2Ij71sh6fz1hsGEEM2nWhkZwF2zG9VM83Q67YaiBj4ee 0SRh7/JMlQWMsKGgeOiz8hTQkNJug2eb5SteKNy4kBCDB/9JNQTpMb6DFPofwWSY YsqBmmHMmhRQhpnNuX+1LU+qXUqs07WX0qISX8bDTgcrfMLeU55uGE5KhKkRWHYT qkWikhiXSh3TzNE+iHK3YJJr7D/vnWHjY6S+bhCkY1JyjgEo5aWfUutCZQan4c3n rlHcAXeUAGHqDMPMtFouQTgL9PgF2fhUzdSFV/s9V5HhF1JHhuEB6fpMKsMgX8ZM AckE2bJhUvOfKY320iH0p9UdwqyGxoT0Jwe0P3P3iq/4INzWuu8wm+OaQrIAqSBF 0yiF0J+Px91owTlzCXbQEu3q00SDiFuaG9DXigkuIM4Uu1XKpnqAMAxPWf/tpi0E lb8WbvGQ/oWeIaCE1ThJfuAAn+9SnA2HwNzcS85JkXYnakHKoIISYA+D/6SZCfkP VaiV+JBgOBJvTq2LCiIp/JtNbXHUYA7JaWKToq3P+QgfZc5hNhHIrL2EIUyVCE+E 5IQyZl8xnoi1Ts5g6sEe =5a59 -----END PGP SIGNATURE----- --S/ANZfAJ/3KdLSz0--