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)
Quentin.
_______________________________________________
Gnustep-dev mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gnustep-dev