[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: undefined reference to __gnustep_objcxx_personality_v0
From: |
David Chisnall |
Subject: |
Re: undefined reference to __gnustep_objcxx_personality_v0 |
Date: |
Sun, 20 Dec 2015 10:14:54 +0000 |
Hi,
> On 17 Dec 2015, at 10:48, Dmitry Moskalchuk <address@hidden> wrote:
>
>
> David Chisnall <theraven <at> sucs.org> writes:
>
>>
>> It is. It's the personality function used for ObjC++, which delegates to
>> either the C++ or ObjC personality functions as appropriate.
>>
>> I didn't finish it for ARM and do not currently have an ARM system to test
>> on. It shouldn't be too difficult to do though...
>
> Hi David,
>
> I'd be happy to help implementing this for the ARM and contribute to the
> GNUstep. I'm not very familiar with 'personality' mechanism, but I've read
> 'personality functions' section of the "Itanium ABI" document, and yes, it
> doesn't seem to be hard to implement.
>
> However, as far as I see, there are differences specifically for ARM, how
> to do that. Could you shed some light on that or point me to the documentation
> or code where I could learn about ARM specifics and implement
> "__gnustep_objcxx_personality_v0" for ARM properly?
The differences between ARM and not-ARM should be largely encapsulated in the
unwind-*.h headers.
The Objective-C++ exception handling part is here:
https://github.com/gnustep/libobjc2/blob/master/eh_personality.c#L491
It actually looks as if it ought to work on ARM, so you can try removing the
#ifndef on #490 and see if it does. Basically, when we’re in an Objective-C++
catch block, we’re going to catch either a C++ or Objective-C exception. If an
Objective-C exception was thrown, then we allocate a new C++ exception and pass
that off to the C++ personality function. If we’ve been thrown a C++
exception, then we just pass it through.
David
- Re: undefined reference to __gnustep_objcxx_personality_v0, Dmitry Moskalchuk, 2015/12/17
- Re: undefined reference to __gnustep_objcxx_personality_v0,
David Chisnall <=
- Re: undefined reference to __gnustep_objcxx_personality_v0, Dmitry Moskalchuk, 2015/12/20
- Re: undefined reference to __gnustep_objcxx_personality_v0, David Chisnall, 2015/12/22
- Re: undefined reference to __gnustep_objcxx_personality_v0, Dmitry Moskalchuk, 2015/12/22
- Re: undefined reference to __gnustep_objcxx_personality_v0, David Chisnall, 2015/12/24
- Re: undefined reference to __gnustep_objcxx_personality_v0, Dmitry Moskalchuk, 2015/12/24
- Re: undefined reference to __gnustep_objcxx_personality_v0, David Chisnall, 2015/12/25
- Re: undefined reference to __gnustep_objcxx_personality_v0, Dmitry Moskalchuk, 2015/12/26
- Re: undefined reference to __gnustep_objcxx_personality_v0, David Chisnall, 2015/12/26
- Re: undefined reference to __gnustep_objcxx_personality_v0, Dmitry Moskalchuk, 2015/12/26
- Re: undefined reference to __gnustep_objcxx_personality_v0, David Chisnall, 2015/12/26