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

Warner Losh imp at bsdimp.com
Sat Jun 7 16:29:50 UTC 2014


On Jun 7, 2014, at 10:24 AM, Adrian Chadd <adrian at freebsd.org> wrote:

> 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.

It does take many hand-stands to doit...

>> 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.

No. Have that as a separate discussion.  That’s a big bike shed of wonder and requires functionality not present in the tree (e.g. actual work). My discussion is “we currently allow X to work, I want to change that to X+Y so we can import Z.” which is much smaller. So go ahead and have your linux discussion, but don’t hijack mine.

Warner
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-arm/attachments/20140607/0731184c/attachment.sig>


More information about the freebsd-arm mailing list