Date: Mon, 21 Jan 2013 16:12:00 +0000 From: David Chisnall <theraven@FreeBSD.org> To: Konstantin Belousov <kostikbel@gmail.com> Cc: "toolchain@freebsd.org" <toolchain@FreeBSD.org>, Hongli Lai <hongli@phusion.nl>, Pedro Giffuni <pfg@FreeBSD.org> Subject: Re: standards/175453: Catching C++ std::bad_cast doesn't work in FreeBSD 9.1 Message-ID: <398F1CB4-D4B0-4C21-BA05-59DDE77C5DA6@FreeBSD.org> In-Reply-To: <20130121044912.GE2522@kib.kiev.ua> References: <201301201652.r0KGq0d1042817@red.freebsd.org> <20130121014745.GD2522@kib.kiev.ua> <1358741301.62974.YahooMailNeo@web162102.mail.bf1.yahoo.com> <20130121044912.GE2522@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
--Apple-Mail=_73AF96C3-09F4-403A-82C3-F033D08744E0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=koi8-r On 21 Jan 2013, at 04:49, Konstantin Belousov wrote: > Yes, quite possible. AFAIR, the 'catch' code compares the exception = classes > by the shared object ownership. It might get confused due to filter = providing > some symbols. >=20 > But I did not investigated the cause for real. The issue appears to be that the libstdc++ exports a few functions[1] = that libsupc++ exports, but with different symbol versions. = Unfortunately, these are things that set handlers that are then called = from libsupc++ / libcxxrt when, for example, an exception specification = violation is encountered. I'm not sure what the solution is here. Is there some = version-script-foo that we can do to say 'filter this symbol with this = version as if it were this one with this version'? We ideally want to = keep them with the current version in libcxxrt / libsupc++, but not = introduce linker errors. =20 David [1] std::set_new_handler(), std::set_terminate(), std::set_unexpected()= --Apple-Mail=_73AF96C3-09F4-403A-82C3-F033D08744E0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.18 (Darwin) iQIcBAEBAgAGBQJQ/WjRAAoJEKx65DEEsqId6HYP/2e/PV0Ht/amvqFTJOEafsdm JHk+Uqmr0BMnspbjVXTaN0U6juEcRoDSN5EEG1St7sJ7TVn+lG9/ZqpC7MOb23/P xR7AMobZFpT19s77z68e4T3AaTkcHMuNg/85dj7QdNbQDa4QnB1o2uQyUb4LV19l QmVvKE26QTVt1BFdf04ChIovRCy/3/u+WkcN0rVKpUfcUGXic+Zsmc0FvHUDB+IT kgPMohFBXjqH2gBWJR41oiJcgedEzrCvWa4uzHXkzE/tybrUbtMnjW3ztfp1xbSp Xi2e/eJ1c/RtZhtDssJB1iX9tD0T/uda5eedtLKIucaOHP5qYcIzNu2W9xre3qnB VjQkG//ZcHy5PlUpLiY+SkiMx39U2CK57JzjCfBngcnfxoB4Suhnf1l6Nsnetyn6 VvgSx9WPowmuaIeiQvXDJo+sLj5OQabIo2gCQwxPTbU06YWPegrydMks/PwPHQXt AWiP9pkMU/HisK5YNeDOCh8rAWbULyCphuj7+aLG1ps/vs2hb15Ln3VJkLFSZdjT yjFrQztRQAmKvLhnaARc7ZFmFxrerRtaLtL5VGgfD18rboLyJfL1yCPFrjbDEJhB 94M22FFcmQQ1gtjxhh+qfiKPSCQupoagy/1ifu8hDvoU17Us40R0MM3nCaZw1QvM z9Keg+zxLcFwcaMFE7gn =BDgG -----END PGP SIGNATURE----- --Apple-Mail=_73AF96C3-09F4-403A-82C3-F033D08744E0--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?398F1CB4-D4B0-4C21-BA05-59DDE77C5DA6>