Hi David,
David Chisnall wrote:
From the back trace, this looks as if it's the v2 ABI. The assert
that's firing is here:
https://github.com/gnustep/libobjc2/blob/ed8eec6c6aa82b049fc8292d0c247b8cd6c2fddc/protocol.c#L224
So it's finding an isa pointer for a protocol that is neither the one
of the known protocol classes and not a known version number. So the
question is... what is it? Can you walk up the stack to that point
and see?
I tried recompiling base with debug, but no information, the stacktrace
has nothing.
I tried SWK vespucci on NetBSD (other system) with GCC and it works
fine. And on FreeBSD with clang/libobjc2 and it works.
So the issue is "here"... Wonder why.
Unknown protocol version
Program received signal SIGABRT, Aborted.
0x00007afc75d678aa in _lwp_kill () from /usr/lib/libc.so.12
(gdb) bt
#0 0x00007afc75d678aa in _lwp_kill () from /usr/lib/libc.so.12
#1 0x00007afc75d6715a in abort () from /usr/lib/libc.so.12
#2 0x00007afc76618d56 in init_protocols ()
from /System/Library/Libraries/libobjc.so.4.6
#3 0x00007afc76618b0d in objc_init_protocols ()
from /System/Library/Libraries/libobjc.so.4.6
#4 0x00007afc76612647 in objc_load_class ()
from /System/Library/Libraries/libobjc.so.4.6
#5 0x00007afc76618235 in __objc_load ()
from /System/Library/Libraries/libobjc.so.4.6
#6 0x00007afc76dacbcd in objcv2_load_function ()
from /System/Library/Libraries/libgnustep-base.so.1.27.0
#7 0x00007afc76dab994 in ?? ()
from /System/Library/Libraries/libgnustep-base.so.1.27.0
#8 0x00007afc777e9c00 in ?? ()
#9 0x00007afc76da8629 in _init ()
from /System/Library/Libraries/libgnustep-base.so.1.27.0
#10 0x0000000000000000 in ?? ()
I suppose I should be able to inspect #6 and see what it is loading?
I tried compiling with no optimization, with debug... I can't get a
better stacktrace.
Perhaps libobjc? how can I compile libobic2 in debug? I think I need to
activate CMAKE_ASM_FLAGS_DEBUG somehow
Riccardo