|
From: | David Chisnall |
Subject: | Re: loading bundles stopped working |
Date: | Mon, 26 Nov 2018 11:22:23 +0000 |
User-agent: | Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.1 |
On 26/11/2018 08:47, Sebastian Reitenbach wrote:
Program received signal SIGFPE, Arithmetic exception. 0x00000527770d024c in _dl_find_symbol_obj (obj=0x52722e05c00, sl=0x7f7fffff5108) at /usr/src/libexec/ld.so/resolve.c:584 584 for (si = obj->buckets[sl->sl_elf_hash % obj->nbuckets]; (gdb) bt #0 0x00000527770d024c in _dl_find_symbol_obj (obj=0x52722e05c00, sl=0x7f7fffff5108) at /usr/src/libexec/ld.so/resolve.c:584 #1 0x00000527770d0068 in _dl_find_symbol (name=0x526ae984ea5 "getpid", this=0x7f7fffff51a8, flags=48, ref_sym=0x526ae9194c8, req_obj=<optimized out>, pobj=0x7f7fffff51a0) at /usr/src/libexec/ld.so/resolve.c:663 #2 0x00000527770cef1a in _dl_bind (object=0x526d8585800, index=<optimized out>) at /usr/src/libexec/ld.so/amd64/rtld_machine.c:357 #3 0x00000527770d0fed in _dl_bind_start () at /usr/src/libexec/ld.so/amd64/ldasm.S:108
The top bit of this backtrace makes me slightly suspicious. It looks as if we're seeing memory corruption. I can think of two plausible causes of this:
1. Something in GNUstep is corrupting some heap state and this happens to be hitting something in OpenBSD's run-time linker. Given OpenBSD's aggressive ASLR, this doesn't seem very likely to happen deterministically. 2. lld is generating something in the object file that is not supported by OpenBSD's run-time linker. This seems more likely, because Objective-C tends to use a few bits of ELF that aren't as widely used by C/C++ and may not be well-tested code paths in OpenBSD's linker.
Did the dlopen of the back end definitely succeed? Did it call __objc_exec_class correctly (or __objc_load if you're using the v2 ABI)?
David
[Prev in Thread] | Current Thread | [Next in Thread] |