C++ exceptions in freebsd-arm doesn't seem to work

Adrian Chadd adrian at freebsd.org
Sat Jun 7 16:24:02 UTC 2014


On 7 June 2014 12:14, Warner Losh <imp at bsdimp.com> wrote:
>
> On Jun 7, 2014, at 10:07 AM, Adrian Chadd <adrian at 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 works
>>> 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 apparently
>>> 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’t perfect, and you’d have to bootstrap either a new gcc or a 3.4 clang first to do it though. The automation of the bootstrapping isn’t present, and is what I’m working on…

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’t solve all the problems, just means we have more tools to deploy.
>
> 3.5 is also quite experimental as well.
>
> But there’s 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 about 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 discussion, then we wouldn’t even need what Adrian suggests. We’d just say you have to have FreeBSD 9.2 or newer with clang 3.3 (or is it 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’s 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


More information about the freebsd-arm mailing list