Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Jan 2013 10:23:58 +0000
From:      David Chisnall <theraven@FreeBSD.org>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        toolchain@FreeBSD.org
Subject:   Re: Removing default build of gcc
Message-ID:  <F27709EE-6C8E-4943-BFAF-CF05AB34C1ED@FreeBSD.org>
In-Reply-To: <20130125195941.GW2522@kib.kiev.ua>
References:  <74D8E686-3679-46F2-8A08-4CF5DFC020CA@FreeBSD.org> <20130125113122.GN2522@kib.kiev.ua> <E0EA1F1F-99BB-47F5-94A3-1C197F680BD9@bsdimp.com> <20130125195941.GW2522@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_4F5D6677-85BE-446F-A03E-E6C90A09BB68
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 25 Jan 2013, at 19:59, Konstantin Belousov wrote:

> I am really tired of the constant struggle against the consumation of
> the FreeBSD as the test-bed for the pre-alpha quality software. E.g.,
> are we fine with broken C++ runtime in 9 ?

Please can you stop the FUD here?  It really isn't helpful.  We have a =
working C++ runtime in 9.1: libcxxrt.  In fact, we have a working C++11 =
stack in 9.1, with the combination of libcxxrt, libc++, and clang++.  =
Unfortunately, the filter library configuration for libsupc++ left some =
symbols in the wrong symbol version (the ABI library version instead of =
the STL library version) and so there are some issues in corner =
cases[1], which I am working on fixing.  I have a fix for the most =
common corner cases, but I want to make sure that I have caught all of =
them before I commit.  This will happen tomorrow.

The filter library is very important to have working for 10.0, because =
we will need the ports and compat versions of libstdc++ to use it if we =
want to be able to mix code that uses libstdc++ (i.e. any ports that =
don't work correctly with libc++) and libc++ (i.e. any ports that use =
C++11, which is going to be an increasing number over the next few =
years). =20

David

[1] In particular, terminate handlers are not correctly set, and =
exceptions thrown from the runtime library are not of the expected type. =
 This means that C++ code that calls std::set_terminate() will not work =
and neither will code that calls __cxa_bad_alloc() and friends and then =
tries to catch the resulting exception.  The only code I have seen that =
actually does this is a test case that I wrote for libcxxrt.  In =
general, code encountering either of these problems is already in a very =
broken state and the only difference you will see is a less helpful =
error message before it crashes.=

--Apple-Mail=_4F5D6677-85BE-446F-A03E-E6C90A09BB68
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)

iQIcBAEBAgAGBQJRA66+AAoJEKx65DEEsqIdUtMQAInmdXR3D6gkrIuvzK86wBZe
Hfx+8afPJFACQSL+rkkN/ZbyppnZzlJTcr8HRVubMXQIytOLfbZCj9HxdW5aWfgW
jkmnOkuB9+PheOXGd5dmDwvgwVpSILYC5u4k73WnZ3gHXPbnkv7m8EIGMtxSg7Kl
hiKAu8GWz7LIMZbE4BVsHYPtdRbTH1QlfrIt83iHEr8ZlEQUAtgfwGqzl+znbAue
Pc1W1PdBuTtv9NFQ3lqj+3lTLL37o3086Khk4LCTA0EImwnIbl8kXGY9pwQIXdi9
8AHFQdOIchsLYR0ZLjkyJtJvNLUzyPfkT79g0kvvPjSyriCY4Whbk+JrvSfma3fA
4QdDoeYzHREmZw9xxo3+lmeMkgWA8oUxcx1JGsvmj1w+FLvEeHvVBUTJCYqoINcO
ai6gBdp+AZd++wCvC6Bwl+I4xdxkNXcEUNMOigFNw+RDI5zocdGip1abmpbSzGR4
s7kJnCHQdiAdi0Lt3c3w8LlX38OR+g2NJe5NVhN+zhvVgKkxtXKRkXmwOjNT9Dvx
U6aud/ZgfonCVSkhtcZ/UokVA3bInatEpfStVF3wd90ya/Y7ZZv1amFB6gdIsFo5
+MTisi0gz8AOtD05GDfe8Ydk6OIydSe4oalbN4nDTAdh6iDWY1k7TqNcVDeCcdDF
lsfJvPpGE6Vbq/0cKtF7
=ybRO
-----END PGP SIGNATURE-----

--Apple-Mail=_4F5D6677-85BE-446F-A03E-E6C90A09BB68--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?F27709EE-6C8E-4943-BFAF-CF05AB34C1ED>