discuss-gnustep
[Top][All Lists]
Advanced

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

make/base and native exceptions with clang


From: Riccardo Mottola
Subject: make/base and native exceptions with clang
Date: Tue, 17 Sep 2013 10:32:47 +0200
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0 SeaMonkey/2.20

Hi,

I'm installing (clan install) core on FreeBSD 9.1, with the port-supplied clang 3.3 and libobjc2.

I configured make with:

./configure --with-layout=gnustep --prefix=/ CC=clang33 CXX=clang++33

And then base without any options to configure.

when compiling base, I get:

 Compiling file GSObjCRuntime.m ...
In file included from GSObjCRuntime.m:39:
../../Headers/Foundation/NSException.h:44:2: error: "There are two separate exception handling mechanisms available ... one based on the standard setjmp() function (which does not require special compiler support), and one 'native' version where the compiler manages the exception handling. If you try to use both in the same executable, exception handlers will not work... which can be pretty disastrous. This error is telling you that the gnustep-base library was built using one form of exception handling, but that the gnustep-make package you are using is building code to use the other form of exception handling ... with the consequence that exception handling would be broken in the program you are building. So, somehow your gnustep-base and gnustep-make package are incompatible, and you need to replace one of them with
      a version configured to match the other."
#error "There are two separate exception handling mechanisms available ... one based on the st...
 ^
../../Headers/Foundation/NSException.h:48:2: error: "gnustep-base is configured to use 'traditional'
      exceptions, but you are building for 'native' exceptions."
#error "gnustep-base is configured to use 'traditional' exceptions, but you are building for ...
 ^
2 errors generated.


Why that? I guess base and make should be coherent about how to configure exceptions. I did not supply an explicit configure parameter about enabling/disabling native exceptions.

If I configure make with explicit native exceptions it works.

I have seen this in make config if I supply no option
checking whether the compiler supports native ObjC exceptions... no

Which turns to yes if I supply the option to enable them explicitely.

The failure in the test is due to:

configure:6576: clang33 -c -g -O2 -x objective-c -I. -fgnu-runtime -DGNU_RUNTIME -fexceptions -fobjc
-exceptions  conftest.c >&5
conftest.c:2:10: fatal error: 'objc/objc.h' file not found
#include <objc/objc.h>
         ^
1 error generated.
configure:6582: $? = 1


which looks pretty fatal. I wonder if this is a port problem of the freebsd ports or our configure system.

Riccardo



reply via email to

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