segfault in ld.elf_so

Thomas Klausner <[email protected]>
Newsgroups gmane.os.netbsd.current
Message-ID <[email protected]>
Hi!

I'm trying to get wip/webkit-gtk to build.  During a quite late stage
of its build process it wants to run g-ir-scanner to create
introspection files. I've been told that it then runs the

"_get_type() function of every type. For WebKit's types, they
initialize WebKit, JavaScriptCore, bmalloc, etc. It's very likely that
something is crashing somewhere in the initialization routines."

What I see in the backtrace is not very much:

(gdb) br main
Breakpoint 1 at 0x6164
(gdb) r
Starting program: .../work/webkitgtk-2.50.4/tmp-introspectyh2m43hy/WebKit2WebExtension-4.1

Program received signal SIGSEGV, Segmentation fault.
_rtld_relocate_plt_object (obj=<optimized out>, rela=0x793ddd29b7d0, tp=<synthetic pointer>) at /usr/src/libexec/ld.elf_so/arch/x86_64/mdreloc.c:354
354                     *where = new_value;
(gdb) bt
#0  _rtld_relocate_plt_object (obj=<optimized out>, rela=0x793ddd29b7d0, tp=<synthetic pointer>) at /usr/src/libexec/ld.elf_so/arch/x86_64/mdreloc.c:354
#1  _rtld_bind (obj=<optimized out>, reloff=<optimized out>) at /usr/src/libexec/ld.elf_so/arch/x86_64/mdreloc.c:372
#2  0x00007f7ff7cb105d in _rtld_bind_start () from /usr/libexec/ld.elf_so
#3  0x0000000000000000 in ?? ()
(gdb) p/x new_value
$1 = 0x793ddc08a1c5
(gdb) p where
$2 = <optimized out>
(gdb) fr 1
#1  _rtld_bind (obj=<optimized out>, reloff=<optimized out>) at /usr/src/libexec/ld.elf_so/arch/x86_64/mdreloc.c:372
372             error = _rtld_relocate_plt_object(obj, rela, &new_value);
(gdb) p obj
$3 = <optimized out>
(gdb) p rela
$4 = (const Elf64_Rela *) 0x7572f185f7d0
(gdb) p *rela
$5 = {r_offset = 33670912, r_info = 13254269075463, r_addend = 0}
(gdb) fr 2
#2  0x00007f7ff7cb105d in _rtld_bind_start () from /usr/libexec/ld.elf_so

I have added '-g -Og' to the command line, and the file is

WebKit2WebExtension-4.1: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /usr/libexec/ld.elf_so, for NetBSD 11.99.4, with debug_info, not stripped

but that's all I can get out of it.

I've uploaded the g-ir-scanner commandline here: https://paste.debian.net/hidden/93f55613
and the c code it compiles here: https://paste.debian.net/hidden/476f5d0d

Any ideas how to debug this further before resorting to printfs (where)?

Thanks,
 Thomas
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.