Native ObjC exceptions configure test broken with libobjc2
From:
Quentin Mathé
Subject:
Native ObjC exceptions configure test broken with libobjc2
Date:
Sat, 18 Sep 2010 19:24:39 +0200
Hi,
Native ObjC exceptions support was recently turned on by default in gnustep-make. However this doesn't work with libobjc2, at least the configure test. objc/objc.h is missing to eliminate the 'nil' warning and Object in libobjc2 has an empty implementation. So either Object needs a more complete implementation or the exception test should be written in another way.
I'm using libobjc2 r31373 (today) and gnustep-make r31362. Here is the config.log output:
configure:6413: checking for the GCC version configure:6440: result: version: 4.4 configure:6461: checking whether we should use native ObjC exceptions
configure:6514: gcc -o conftest -g -O2 -x objective-c -I. -I/Local/Library/Headers -L/Local/Library/Librari es -fgnu-runtime -DGNU_RUNTIME -fexceptions -fobjc-exceptions conftest.c -lobjc -shared-libgcc -fexceptions >
&5 conftest.c: In function 'main': conftest.c:7: error: 'nil' undeclared (first use in this function) conftest.c:7: error: (Each undeclared identifier is reported only once conftest.c:7: error: for each function it appears in.)
conftest.c:10: warning: 'Object' may not respond to '+new' conftest.c:10: warning: (Messages without a matching method signature conftest.c:10: warning: will be assumed to return 'id' and accept
conftest.c:10: warning: '...' as arguments.) configure:6518: $? = 1 configure: program exited with status 1 configure: failed program was: | | #include <stdlib.h> | #include <objc/Object.h>
| | int main(int argc, char **argv) | { | Object *o=nil; | @try | { | o=[Object new]; | @throw o; | } | @catch (id foo) | { | if (o!=foo)
| return 1; | } | return 0; | } | configure:6545: result: no: native exceptions are not supported by the compiler
Here is the result of gcc -v: Using built-in specs. Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.3-4ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)