Skip site navigation (1)Skip section navigation (2)
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>