ethanc8
ethanc8
I looked and it seems like I have linked everything.
> Do you have a reduced test case (ideally linking nothing but the runtime)? > > It looks as if it may be trying to send a message in +load...
@davidchisnall I believe this is the problem... [+[CGImageDestinationTIFF load]](https://github.com/gnustep/libs-opal/blob/master/Source/OpalGraphics/image/OPImageCodecTIFF.m#L321) calls `[CGImageDestination registerDestinationClass: self];`. I believe this might be UB, so should this call be moved to `+initialize`? ```objc + (void)load...
I changed those to `+initialize` and it now segfaults in `objc_msgSend_fpret` in [a call to +[NSString load]](https://github.com/ethanc8/libs-boron/blob/master/Source/BoronTypes/Loader.m#L41).
I have [changed `+load` to `+initialize`](https://github.com/ethanc8/libs-opal/tree/testing-segfault) and [disabled `UTILoad()`](https://github.com/ethanc8/libs-boron/tree/testing-segfault), which results in: ``` Unknown protocol version Program received signal SIGABRT, Aborted. __pthread_kill_implementation (no_tid=0, signo=6, threadid=140737260606656) at ./nptl/pthread_kill.c:44 44 ./nptl/pthread_kill.c: No...
Does Apple objc4 work on Linux? If it does, it might be possible to test on objc4 to see if the issue is in libobjc2.
@davidchisnall How can I compile libobjc2 with debug symbols included?
I passed `-DCMAKE_BUILD_TYPE=Debug` to CMake
I'm kinda busy, but here's my last GDB session if anyone wants to take a look: ``` Program stopped. 0x00007ffff7fe3290 in _start () from /lib64/ld-linux-x86-64.so.2 (gdb) b protocol.c:224 No source...
@davidchisnall The issue appears to be that the isa of CAAction is 0x0, which is not a valid protocol version. I don't know why it ended up this way.