From owner-freebsd-arch@FreeBSD.ORG Tue Mar 20 17:16:47 2012 Return-Path: Delivered-To: arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A3F731065674; Tue, 20 Mar 2012 17:16:47 +0000 (UTC) (envelope-from kabaev@gmail.com) Received: from mail-gx0-f182.google.com (mail-gx0-f182.google.com [209.85.161.182]) by mx1.freebsd.org (Postfix) with ESMTP id 422078FC1D; Tue, 20 Mar 2012 17:16:46 +0000 (UTC) Received: by ggnk4 with SMTP id k4so353652ggn.13 for ; Tue, 20 Mar 2012 10:16:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:in-reply-to:references:x-mailer :mime-version:content-type; bh=ZVvyUKt7btMo1FkRmNVtd+SqNmCi3aL0R6xA8mtYYNc=; b=YBNR186RG7cv0JW1JCFKrawUJpIzvuhJJVmQsEODnj6AZhAUL7Nl+CQ89GRP85lMoC PpF0SsKunze4i3k0rCHdV7FWLBthtnBzPtUGTRnyKVFtKtQBfqF3tCRMgQ13mH8snUH+ 9Ohx1h9Aea5eTugnKfsZEsVbNkFWp62lXejLLQMV0TR9JHB2nhnPnEF5xqriEokpWGz7 97Kb2Ep58KPM4jzY/jWVWzGUoU2HT2fuvSWhydj3+hnkfyOK+v4jYLH/C9JcaWbudLAn ScsBVULHYCK46WS43uhMIOAuHgjrxwQERrHypUwcaT85FES7CGboY6ZSrMcFeOZLdlSn Bn7Q== Received: by 10.224.208.130 with SMTP id gc2mr1826847qab.73.1332263800253; Tue, 20 Mar 2012 10:16:40 -0700 (PDT) Received: from kan.dyndns.org (c-24-63-226-98.hsd1.ma.comcast.net. [24.63.226.98]) by mx.google.com with ESMTPS id j17sm3610531qaj.9.2012.03.20.10.16.38 (version=SSLv3 cipher=OTHER); Tue, 20 Mar 2012 10:16:38 -0700 (PDT) Date: Tue, 20 Mar 2012 13:16:23 -0400 From: Alexander Kabaev To: David Chisnall Message-ID: <20120320131623.4264c11e@kan.dyndns.org> In-Reply-To: <47F86CED-DE0E-47A0-93E8-93D35E89F9F3@FreeBSD.org> References: <47F86CED-DE0E-47A0-93E8-93D35E89F9F3@FreeBSD.org> X-Mailer: Claws Mail 3.8.0 (GTK+ 2.24.6; amd64-portbld-freebsd10.0) Mime-Version: 1.0 Content-Type: multipart/signed; micalg=PGP-SHA1; boundary="Sig_/s4Wk/AWoRN8gJ11nWofT9m="; protocol="application/pgp-signature" Cc: arch@FreeBSD.org Subject: Re: C++ ABI library switching X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Mar 2012 17:16:47 -0000 --Sig_/s4Wk/AWoRN8gJ11nWofT9m= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Sun, 18 Mar 2012 18:50:38 +0000 David Chisnall wrote: > Hello the list, >=20 > I am currently working on making it possible to switch C++ ABI > library. We currently ship one of these in FreeBSD 9.0 (libsupc++), > and will hopefully ship two (libsupc++ and libcxxrt) in 9.1 and one > (libstdc++) in 10. >=20 > Currently, libc++ dynamically links to libcxxrt, libstdc++ statically > links to libsupc++. I would like to make us build libsupc++ as a .so > and link libstdc++.so with -Wl,-f,libsupc++.so.1. This makes it an > auxiliary filter so, if libsupc++.so.1 exists, it will be used in > place of the internal version. This preserves ABI compatibility and > allows us to switch between libcxxrt and libsupc++ with a libmap.conf > entry, making it easy for users of 9.1 to test the libstdc++ and > libcxxrt combination. >=20 > With this done, it's then possible to link both libstdc++ and libc++ > into the same program, making the transition from libstdc++ to libc++ > relatively painless (everything still needs recompiling, but it > doesn't all need recompiling at the same time). For 10.0, we can > then ship a COMPAT version of libstdc++ that is linked against > libcxxrt by default. >=20 > Any objections / suggestions of better approaches? >=20 > David_______________________________________________ We did discuss this approach though other channels and use of the filter was selected specifically because it is less intrusive of all considered alternatives. Unless someone else raises objections soon, I'd say go ahead. --=20 Alexander Kabaev --Sig_/s4Wk/AWoRN8gJ11nWofT9m= Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (FreeBSD) iD8DBQFPaLtyQ6z1jMm+XZYRAu50AKC/Yr5ivdkk53jFxi0BCTTxUZ+FzwCfa5G+ lx2UZ4Vxqvmu32K0TEf4vFk= =3zMa -----END PGP SIGNATURE----- --Sig_/s4Wk/AWoRN8gJ11nWofT9m=--