On 21 Nov 2017, at 20:48, Lobron, David <[email protected]> wrote:
> 
>> 
>> You will need to make sure that every stack frame that may have C++ 
>> exceptions thrown through it is compiled with -fobjc-runtime=gnustep-1.8 (or 
>> 1.7, I forget exactly when I fixed this).  The old GCC ABI corrupts foreign 
>> exceptions when they are thrown through Objective-C frames.  
> 
> OK- I made sure that -fobjc-runtime=gnustep-1.8 appears in my OBJCXX flags, 
> and I'm trying a complete rebuild.  I'm now getting a compilation error when 
> building a .mm file:
> 
> #error  "gnustep-base is configured to use 'traditional' exceptions, but you 
> are building for 'native' exceptions."
> 
> The configure script for gnustep-base finds the GNU runtime:
> 
> checking the Objective-C runtime... GNU
> 
> but it's not able to link the uncaught exception handler, so it turns off 
> native exceptions:
> 
> checking for objc_setUncaughtExceptionHandler() in runtime... no
> 
> Does this mean that libobjc2 does not support the uncaught exception handler 
> code?  I'm wondering if this is a clue as to why my code crashes, whereas the 
> libobjc2 tests are OK.

Okay, that probably accounts for the issues that you’re seeing.  I don’t really 
understand the GNUstep-base build system, but it looks as if it’s picking up 
the gcc runtime (do you have that installed somehow?  If so, please delete it!) 
and falling back to using setjmp/longjmp exceptions.

David


_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep

Reply via email to