|
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 |
signature.asc
Description: OpenPGP digital signature
[Prev in Thread] | Current Thread | [Next in Thread] |