discuss-gnustep
[Top][All Lists]
Advanced

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

Re: Crash occurs when catching std::exception in Objective-C++ code comp


From: Lobron, David
Subject: Re: Crash occurs when catching std::exception in Objective-C++ code compiled with clang on Linux and using libobjc2
Date: Tue, 21 Nov 2017 20:48:25 +0000

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

--David


reply via email to

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