gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: undefined reference to __gnustep_objcxx_personality_v0


From: Dmitry Moskalchuk
Subject: Re: undefined reference to __gnustep_objcxx_personality_v0
Date: Sun, 20 Dec 2015 14:39:40 +0300
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.4.0

On 20/12/15 13:14, David Chisnall wrote:
The differences between ARM and not-ARM should be largely encapsulated in the unwind-*.h headers.

Yes, this is what I already found.

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.

Thanks for explanation, this is exactly what was unclear for me - how to properly handle both Objective-C and C++ exceptions in __gnustep_objcxx_personality_v0. The way to wrap Objective-C exception into C++ one makes sense and looks simple to implement. I'll try to move with it and will get back with results in a few days.

--
Dmitry Moskalchuk

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]