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

Adrian Chadd adrian at freebsd.org
Sat Jun 7 16:33:31 UTC 2014


On 7 June 2014 12:29, Warner Losh <imp at bsdimp.com> wrote:
>
> 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...

I may give it another go then.

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

Absolutely.



-a


More information about the freebsd-arm mailing list