Date: Sat, 7 Jun 2014 12:24:01 -0400 From: Adrian Chadd <adrian@freebsd.org> To: Warner Losh <imp@bsdimp.com> Cc: "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>, Ian Lepore <ian@freebsd.org>, Olavi Kumpulainen <olavi.m.kumpulainen@gmail.com> Subject: Re: C++ exceptions in freebsd-arm doesn't seem to work Message-ID: <CAJ-Vmo=7VSZQH8NGBvYN015cV7WGcA=S2ELdpnmk798y98ydSQ@mail.gmail.com> In-Reply-To: <EEBA06F7-0CF1-4712-BA61-5951323B541B@bsdimp.com> References: <BEAC4CFB-EC4F-456D-8173-2E34CCE3A2C1@gmail.com> <1402156516.20883.154.camel@revolution.hippie.lan> <CAJ-VmomsNogAzk8j6ob8aA%2BmJeiO5TEF=FQnq=mNzsVPyt23xw@mail.gmail.com> <EEBA06F7-0CF1-4712-BA61-5951323B541B@bsdimp.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 7 June 2014 12:14, Warner Losh <imp@bsdimp.com> wrote: > > On Jun 7, 2014, at 10:07 AM, Adrian Chadd <adrian@FreeBSD.org> wrote: > >>> Sadly, all I can do is confirm what you say: C++ exceptions don't work >>> on ARM EABI, not with clang and not with gcc. The only combo that work= s >>> is gcc and OABI, but with that combo you lose hardware floating point. >>> >>> There are rumours that this may be fixed in clang 3.5, but we apparentl= y >>> can't import 3.5 because it can't be bootstrapped using gcc 4.2. I >>> haven't had time yet to learn how to build clang 3.5 out-of-tree to >>> confirm that exceptions work there. >>> >> >> If only we had a way to tell our build system to build the in-src-tree >> compiler suite using an external compiler toolchain. That'd make those >> problems go away. > > We do. It isn=E2=80=99t perfect, and you=E2=80=99d have to bootstrap eith= er a new gcc or a 3.4 clang first to do it though. The automation of the bo= otstrapping isn=E2=80=99t present, and is what I=E2=80=99m working on=E2=80= =A6 Cool! The last time I wrangled this, I could only get it to build the whole system with the compiler I fed in. It wouldn't build the in-source-tree compiler with the external compiler I gave it - using the external compiler seemed to totally just negate building the toolchain. I'm glad this isn't the case. > Of course, it doesn=E2=80=99t solve all the problems, just means we have = more tools to deploy. > > 3.5 is also quite experimental as well. > > But there=E2=80=99s been no real talk about the right path forward: just = FUD and hand wringing on the lists. We do need to have a real discussion ab= out this. Not the lame pot-shots that have happened to date: what versions = do we support upgrading from, what configurations, etc. If we had that disc= ussion, then we wouldn=E2=80=99t even need what Adrian suggests. We=E2=80= =99d just say you have to have FreeBSD 9.2 or newer with clang 3.3 (or is i= t clang 3.4) to bootstrap, and if you want to use other tools, you are on = your own. This would break updating from 8.x, but that=E2=80=99s likely OK.= Be we need to have this discussion. I'd personally like to rehash the "build from under Linux" discussion. I keep bumping into cases like this where a lot of the work being done to make this stuff happen is in line with what we need to be able to build FreeBSD under a non-FreeBSD operating system. I'd really like _that_ to happen - it'll help migrations _to_ freebsd from other projects. -a
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=7VSZQH8NGBvYN015cV7WGcA=S2ELdpnmk798y98ydSQ>