* webkitfltk segfaults in do_relocs @ 2014-11-19 16:44 Isaac Dunham 2014-11-19 16:50 ` Rich Felker 2014-11-22 5:24 ` webkitfltk segfaults in do_relocs (partly solved) Isaac Dunham 0 siblings, 2 replies; 11+ messages in thread From: Isaac Dunham @ 2014-11-19 16:44 UTC (permalink / raw) To: musl, alpine-devel [-- Attachment #1: Type: text/plain, Size: 1077 bytes --] Hello, I've been trying to get WebkitFLTK[1] working on Alpine, and I have it building. But as usual, that's the easy part. The test program, Source/WebKit/fltk/testapp/testapp, segfaults in do_relocs. I'm attaching the output of bt full. Build dependencies include: g++ >= 4.7.3 python2 perl ruby icu-dev cairo-dev harfbuzz-dev libxslt-dev sqlite-dev fltk-dev harfbuzz must be built with ICU, as alpine does; fltk must be 1.3.3 or later; Alpine provides python2 as python. Build directions are in README.asciidoc, and amount to: make -C Source/WTF/wtf && \ make -C Source/JavaScriptCore gen && \ make -C Source/JavaScriptCore && \ make -C Source/WebCore && \ make -C Source/WebKit/fltk Additionally, at least a gig of RAM per thread will be needed, and a very fast processor or lots of time. On my laptop with an Atom N270 and a gigabyte of ram, I get occasional swap thrashing, and the compilation takes a little over 11 hours. So if someone who has a faster system can look at this, I'd be grateful. Thank you, Isaac Dunham [1] https://github.com/clbr/webkitfltk [-- Attachment #2: wkfltk.bt --] [-- Type: text/plain, Size: 5037 bytes --] (gdb) bt full #0 0xb7f98b58 in do_relocs (dso=dso@entry=0xb7ffd570 <builtin_dsos.4209>, rel=0x5440ac, rel_size=23504, stride=2) at src/ldso/dynlink.c:365 base = 0x400000 "\177ELF\001\001\001" syms = 0x402730 strings = 0x407db0 "" sym = 0x403bb0 name = 0x408d0f "exp" ctx = <optimized out> astype = <optimized out> sym_index = <optimized out> def = {sym = <optimized out>, dso = 0xb7ffd610 <builtin_dsos.4209+160>} reloc_addr = 0xc45f10 <expThunk+9> sym_val = <optimized out> tls_val = 163891 addend = <optimized out> #1 0xb7f98cb3 in reloc_all (p=p@entry=0xb7ffd570 <builtin_dsos.4209>) at src/ldso/dynlink.c:895 dyn = {201243774, 14263, 6128, 48558780, 364, 32176, 10032, 0, 0, 0, 32242, 16, 1356908, 23348355, 0, 30905, 0, 67428, 1283352, 8, 17, 3086997596, 0, 1350780, 0, 47786180, 0, 84, 0, 0, 0, 0, 0, 0} #2 0xb7f997c1 in __dynlink (argc=1, argv=<optimized out>) at src/ldso/dynlink.c:1308 aux = {2189687800, 0, 0, 4194356, 32, 9, 4096, 3086458880, 0, 5569354, ---Type <return> to continue, or q <return> to quit--- 0, 1000, 1000, 1000, 1000, 3221224859, 3219782647, 100, 0, 0, 0, 0, 0, 0, 0, 3221224843, 0, 0, 0, 0, 0, 3221225402, 3086455840, 3086454784, 0, 0, 0, 0} i = <optimized out> phdr = <optimized out> ehdr = <optimized out> builtin_dsos = {{base = 0x400000 "\177ELF\001\001\001", name = 0xbfffffba "/home/idunham/src/webkitfltk/Source/WebKit/fltk/testapp/./testapp", dynv = 0x324f124, next = 0x32669a0, prev = 0x0, phdr = 0x400034, phnum = 9, phentsize = 32, refcnt = 0, syms = 0x402730, hashtab = 0x40016c, ghashtab = 0x0, versym = 0x40fba2, strings = 0x407db0 "", map = 0x400000 "\177ELF\001\001\001", map_len = 48656384, dev = 0, ino = 0, global = 1 '\001', relocated = 0 '\000', constructed = 0 '\000', kernel_mapped = 1 '\001', deps = 0x0, needed_by = 0x0, rpath_orig = 0x40f669 "/usr/lib", rpath = 0x40f669 "/usr/lib", tls_image = 0x31928c4, tls_len = 0, tls_size = 16, tls_align = 4, tls_id = 1, tls_offset = 16, relro_start = 47783936, relro_end = 48562176, new_dtv = 0x0, new_tls = 0x0, new_dtv_idx = 0, new_tls_idx = 0, td_index = 0x0, fini_next = 0x0, shortname = 0x0, buf = 0xb7ffd610 <builtin_dsos.4209+160> ""}, { base = 0xb7f7a000 "\177ELF\001\001\001", ---Type <return> to continue, or q <return> to quit--- name = 0x400154 "/lib/ld-musl-i386.so.1", dynv = 0xb7ffceec, next = 0xb7ffd6b0 <builtin_dsos.4209+320>, prev = 0xb5a55e50, phdr = 0xb7f7a034, phnum = 6, phentsize = 32, refcnt = 0, syms = 0xb7f803d0, hashtab = 0xb7f7a0f4, ghashtab = 0xb7f7ce60, versym = 0x0, strings = 0xb7f878f0 "", map = 0xb7f7a000 "\177ELF\001\001\001", map_len = 548864, dev = 0, ino = 0, global = 1 '\001', relocated = 1 '\001', constructed = 0 '\000', kernel_mapped = 1 '\001', deps = 0x0, needed_by = 0x0, rpath_orig = 0x0, rpath = 0x0, tls_image = 0x0, tls_len = 0, tls_size = 0, tls_align = 0, tls_id = 0, tls_offset = 0, relro_start = 532480, relro_end = 536576, new_dtv = 0x0, new_tls = 0x0, new_dtv_idx = 0, new_tls_idx = 0, td_index = 0x0, fini_next = 0x0, shortname = 0xb7fd7b87 "libc.so", buf = 0xb7ffd6b0 <builtin_dsos.4209+320> ""}, { base = 0xb7f7b000 "", name = 0xb7fd7eee "", dynv = 0xb7f79308, next = 0xb5a55f10, prev = 0xb7ffd610 <builtin_dsos.4209+160>, phdr = 0xb7f79034, phnum = 4, phentsize = 32, refcnt = 0, syms = 0xb7f790dc, hashtab = 0xb7f790b4, ghashtab = 0x0, versym = 0xb7f79182, strings = 0xb7f7912c "", map = 0x0, map_len = 0, dev = 0, ino = 0, global = 1 '\001', relocated = 1 '\001', constructed = 0 '\000', kernel_mapped = 0 '\000', deps = 0x0, needed_by = 0x0, rpath_orig = 0x0, rpath = 0x0, tls_image = 0x0, tls_len = 0, ---Type <return> to continue, or q <return> to quit--- tls_size = 0, tls_align = 0, tls_id = 0, tls_offset = 0, relro_start = 0, relro_end = 0, new_dtv = 0x0, new_tls = 0x0, new_dtv_idx = 0, new_tls_idx = 0, td_index = 0x0, fini_next = 0x0, shortname = 0xb7fd7c4c "linux-gate.so.1", buf = 0xb7ffd750 <builtin_tls> ""}} app = 0xb7ffd570 <builtin_dsos.4209> lib = 0xb7ffd610 <builtin_dsos.4209+160> vdso = 0xb7ffd6b0 <builtin_dsos.4209+320> env_preload = <optimized out> vdso_base = <optimized out> auxv = <optimized out> envp = 0xbffffc8c initial_tls = <optimized out> #3 0xb7f9a1fc in _dlstart () at src/ldso/i386/start.s:12 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: webkitfltk segfaults in do_relocs 2014-11-19 16:44 webkitfltk segfaults in do_relocs Isaac Dunham @ 2014-11-19 16:50 ` Rich Felker 2014-11-19 19:04 ` Isaac Dunham 2014-11-22 5:24 ` webkitfltk segfaults in do_relocs (partly solved) Isaac Dunham 1 sibling, 1 reply; 11+ messages in thread From: Rich Felker @ 2014-11-19 16:50 UTC (permalink / raw) To: Isaac Dunham; +Cc: musl, alpine-devel On Wed, Nov 19, 2014 at 08:44:15AM -0800, Isaac Dunham wrote: > Hello, > I've been trying to get WebkitFLTK[1] working on Alpine, and I have it > building. > But as usual, that's the easy part. The test program, > Source/WebKit/fltk/testapp/testapp, segfaults in do_relocs. > I'm attaching the output of bt full. Could you also provide a disassembly and register dump at the point of crash? Rich ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: webkitfltk segfaults in do_relocs 2014-11-19 16:50 ` Rich Felker @ 2014-11-19 19:04 ` Isaac Dunham 2014-11-19 19:13 ` Rich Felker 0 siblings, 1 reply; 11+ messages in thread From: Isaac Dunham @ 2014-11-19 19:04 UTC (permalink / raw) To: Rich Felker; +Cc: musl, alpine-devel [-- Attachment #1: Type: text/plain, Size: 707 bytes --] On Wed, Nov 19, 2014 at 11:50:50AM -0500, Rich Felker wrote: > On Wed, Nov 19, 2014 at 08:44:15AM -0800, Isaac Dunham wrote: > > Hello, > > I've been trying to get WebkitFLTK[1] working on Alpine, and I have it > > building. > > But as usual, that's the easy part. The test program, > > Source/WebKit/fltk/testapp/testapp, segfaults in do_relocs. > > I'm attaching the output of bt full. > > Could you also provide a disassembly and register dump at the point of > crash? > Attaching output of gdb disassemble and info all-registers. It's segfaulting "at line 365 of src/ldso/dynlink.c", for what that's worth. I'm providing the link command as well in case the problem is there. Thanks, Isaac Dunham [-- Attachment #2: wkfltk-disasm-registers.txt --] [-- Type: text/plain, Size: 14230 bytes --] (gdb) disassemble Dump of assembler code for function do_relocs: 0xb7f989ae <+0>: push %ebp 0xb7f989af <+1>: mov %esp,%ebp 0xb7f989b1 <+3>: push %edi 0xb7f989b2 <+4>: push %esi 0xb7f989b3 <+5>: push %ebx 0xb7f989b4 <+6>: sub $0x4c,%esp 0xb7f989b7 <+9>: mov (%eax),%esi 0xb7f989b9 <+11>: mov %eax,-0x28(%ebp) 0xb7f989bc <+14>: call 0xb7f8bf0c <__x86.get_pc_thunk.bx> 0xb7f989c1 <+19>: add $0x645bb,%ebx 0xb7f989c7 <+25>: mov %edx,-0x30(%ebp) 0xb7f989ca <+28>: mov %esi,-0x38(%ebp) 0xb7f989cd <+31>: mov 0x24(%eax),%esi 0xb7f989d0 <+34>: mov 0x34(%eax),%eax 0xb7f989d3 <+37>: mov %esi,-0x4c(%ebp) 0xb7f989d6 <+40>: mov %eax,-0x50(%ebp) 0xb7f989d9 <+43>: mov 0xc(%ebp),%eax 0xb7f989dc <+46>: shl $0x2,%eax 0xb7f989df <+49>: mov %eax,-0x54(%ebp) 0xb7f989e2 <+52>: cmpl $0x0,0x8(%ebp) 0xb7f989e6 <+56>: je 0xb7f98c17 <do_relocs+617> 0xb7f989ec <+62>: mov -0x30(%ebp),%eax 0xb7f989ef <+65>: mov 0x4(%eax),%eax 0xb7f989f2 <+68>: movzbl %al,%edx 0xb7f989f5 <+71>: test %edx,%edx 0xb7f989f7 <+73>: je 0xb7f98c09 <do_relocs+603> 0xb7f989fd <+79>: lea -0x1(%edx),%ecx 0xb7f98a00 <+82>: cmp $0x28,%ecx 0xb7f98a03 <+85>: ja 0xb7f98a14 <do_relocs+102> 0xb7f98a05 <+87>: movsbl -0x2520d(%edx,%ebx,1),%ecx 0xb7f98a0d <+95>: test %ecx,%ecx 0xb7f98a0f <+97>: mov %cl,-0x48(%ebp) 0xb7f98a12 <+100>: jne 0xb7f98a24 <do_relocs+118> 0xb7f98a14 <+102>: push %eax 0xb7f98a15 <+103>: mov -0x28(%ebp),%eax 0xb7f98a18 <+106>: push %edx 0xb7f98a19 <+107>: pushl 0x4(%eax) 0xb7f98a1c <+110>: lea -0x254dd(%ebx),%eax 0xb7f98a22 <+116>: jmp 0xb7f98a9b <do_relocs+237> ---Type <return> to continue, or q <return> to quit--- 0xb7f98a24 <+118>: mov -0x30(%ebp),%edx 0xb7f98a27 <+121>: mov -0x38(%ebp),%esi 0xb7f98a2a <+124>: add (%edx),%esi 0xb7f98a2c <+126>: shr $0x8,%eax 0xb7f98a2f <+129>: je 0xb7f98aa9 <do_relocs+251> 0xb7f98a31 <+131>: shl $0x4,%eax 0xb7f98a34 <+134>: mov -0x50(%ebp),%edx 0xb7f98a37 <+137>: add -0x4c(%ebp),%eax 0xb7f98a3a <+140>: add (%eax),%edx 0xb7f98a3c <+142>: cmp $0x7,%ecx 0xb7f98a3f <+145>: mov %eax,-0x2c(%ebp) 0xb7f98a42 <+148>: mov %edx,-0x34(%ebp) 0xb7f98a45 <+151>: mov 0x948(%ebx),%edx 0xb7f98a4b <+157>: jne 0xb7f98a50 <do_relocs+162> 0xb7f98a4d <+159>: mov 0xc(%edx),%edx 0xb7f98a50 <+162>: cmp $0x3,%ecx 0xb7f98a53 <+165>: sete %cl 0xb7f98a56 <+168>: push %edi 0xb7f98a57 <+169>: movzbl %cl,%ecx 0xb7f98a5a <+172>: push %edi 0xb7f98a5b <+173>: push %ecx 0xb7f98a5c <+174>: pushl -0x34(%ebp) 0xb7f98a5f <+177>: lea -0x20(%ebp),%eax 0xb7f98a62 <+180>: call 0xb7f9889f <find_sym> 0xb7f98a67 <+185>: mov -0x20(%ebp),%eax 0xb7f98a6a <+188>: add $0x10,%esp 0xb7f98a6d <+191>: mov -0x1c(%ebp),%edx 0xb7f98a70 <+194>: test %eax,%eax 0xb7f98a72 <+196>: mov %eax,-0x24(%ebp) 0xb7f98a75 <+199>: jne 0xb7f98aba <do_relocs+268> 0xb7f98a77 <+201>: mov -0x2c(%ebp),%eax 0xb7f98a7a <+204>: cmpw $0x0,0xe(%eax) 0xb7f98a7f <+209>: jne 0xb7f98a8b <do_relocs+221> 0xb7f98a81 <+211>: mov 0xc(%eax),%al 0xb7f98a84 <+214>: shr $0x4,%al 0xb7f98a87 <+217>: cmp $0x2,%al 0xb7f98a89 <+219>: je 0xb7f98aba <do_relocs+268> 0xb7f98a8b <+221>: mov -0x28(%ebp),%eax 0xb7f98a8e <+224>: push %ecx 0xb7f98a8f <+225>: pushl -0x34(%ebp) ---Type <return> to continue, or q <return> to quit--- 0xb7f98a92 <+228>: pushl 0x4(%eax) 0xb7f98a95 <+231>: lea -0x254a9(%ebx),%eax 0xb7f98a9b <+237>: push %eax 0xb7f98a9c <+238>: call 0xb7f97b90 <error> 0xb7f98aa1 <+243>: add $0x10,%esp 0xb7f98aa4 <+246>: jmp 0xb7f98c09 <do_relocs+603> 0xb7f98aa9 <+251>: mov -0x28(%ebp),%edx 0xb7f98aac <+254>: movl $0x0,-0x24(%ebp) 0xb7f98ab3 <+261>: movl $0x0,-0x2c(%ebp) 0xb7f98aba <+268>: cmpl $0x2,0xc(%ebp) 0xb7f98abe <+272>: jbe 0xb7f98ac8 <do_relocs+282> 0xb7f98ac0 <+274>: mov -0x30(%ebp),%eax 0xb7f98ac3 <+277>: mov 0x8(%eax),%edi 0xb7f98ac6 <+280>: jmp 0xb7f98ad9 <do_relocs+299> 0xb7f98ac8 <+282>: mov -0x48(%ebp),%ecx 0xb7f98acb <+285>: mov $0x8c,%eax 0xb7f98ad0 <+290>: xor %edi,%edi 0xb7f98ad2 <+292>: bt %ecx,%eax 0xb7f98ad5 <+295>: jb 0xb7f98ad9 <do_relocs+299> 0xb7f98ad7 <+297>: mov (%esi),%edi 0xb7f98ad9 <+299>: mov -0x24(%ebp),%eax 0xb7f98adc <+302>: test %eax,%eax 0xb7f98ade <+304>: je 0xb7f98aec <do_relocs+318> 0xb7f98ae0 <+306>: mov 0x4(%eax),%eax 0xb7f98ae3 <+309>: mov (%edx),%ecx 0xb7f98ae5 <+311>: mov %eax,-0x24(%ebp) 0xb7f98ae8 <+314>: add %eax,%ecx 0xb7f98aea <+316>: jmp 0xb7f98af5 <do_relocs+327> 0xb7f98aec <+318>: xor %ecx,%ecx 0xb7f98aee <+320>: movl $0x0,-0x24(%ebp) 0xb7f98af5 <+327>: mov -0x48(%ebp),%al 0xb7f98af8 <+330>: dec %eax 0xb7f98af9 <+331>: cmp $0xd,%al 0xb7f98afb <+333>: ja 0xb7f98c09 <do_relocs+603> 0xb7f98b01 <+339>: movzbl %al,%eax 0xb7f98b04 <+342>: mov -0x25244(%ebx,%eax,4),%eax 0xb7f98b0b <+349>: add %ebx,%eax 0xb7f98b0d <+351>: jmp *%eax 0xb7f98b0f <+353>: sub %esi,%edi 0xb7f98b11 <+355>: jmp 0xb7f98b19 <do_relocs+363> ---Type <return> to continue, or q <return> to quit--- 0xb7f98b13 <+357>: cmpl $0x0,-0x2c(%ebp) 0xb7f98b17 <+361>: je 0xb7f98b1d <do_relocs+367> 0xb7f98b19 <+363>: add %ecx,%edi 0xb7f98b1b <+365>: jmp 0xb7f98b58 <do_relocs+426> 0xb7f98b1d <+367>: add -0x38(%ebp),%edi 0xb7f98b20 <+370>: jmp 0xb7f98b58 <do_relocs+426> 0xb7f98b22 <+372>: mov -0x2c(%ebp),%eax 0xb7f98b25 <+375>: push %edx 0xb7f98b26 <+376>: pushl 0x8(%eax) 0xb7f98b29 <+379>: push %ecx 0xb7f98b2a <+380>: push %esi 0xb7f98b2b <+381>: call 0xb7fc60c7 <memcpy> 0xb7f98b30 <+386>: jmp 0xb7f98aa1 <do_relocs+243> 0xb7f98b35 <+391>: sub %esi,%edi 0xb7f98b37 <+393>: add %edi,%ecx 0xb7f98b39 <+395>: mov %ecx,(%esi) 0xb7f98b3b <+397>: jmp 0xb7f98c09 <do_relocs+603> 0xb7f98b40 <+402>: mov 0x74(%edx),%eax 0xb7f98b43 <+405>: mov %eax,(%esi) 0xb7f98b45 <+407>: jmp 0xb7f98c09 <do_relocs+603> 0xb7f98b4a <+412>: sub 0x78(%edx),%edi 0xb7f98b4d <+415>: add -0x24(%ebp),%edi 0xb7f98b50 <+418>: jmp 0xb7f98b58 <do_relocs+426> 0xb7f98b52 <+420>: add 0x78(%edx),%edi 0xb7f98b55 <+423>: sub -0x24(%ebp),%edi => 0xb7f98b58 <+426>: mov %edi,(%esi) 0xb7f98b5a <+428>: jmp 0xb7f98c09 <do_relocs+603> 0xb7f98b5f <+433>: cmpl $0x2,0xc(%ebp) 0xb7f98b63 <+437>: ja 0xb7f98b68 <do_relocs+442> 0xb7f98b65 <+439>: mov 0x4(%esi),%edi 0xb7f98b68 <+442>: cmpl $0x0,0x924(%ebx) 0xb7f98b6f <+449>: je 0xb7f98bf6 <do_relocs+584> 0xb7f98b75 <+455>: mov 0x8d4(%ebx),%eax 0xb7f98b7b <+461>: cmp %eax,0x74(%edx) 0xb7f98b7e <+464>: jb 0xb7f98bf6 <do_relocs+584> 0xb7f98b80 <+466>: sub $0xc,%esp 0xb7f98b83 <+469>: push $0xc 0xb7f98b85 <+471>: mov %edx,-0x48(%ebp) 0xb7f98b88 <+474>: call 0xb7f9e324 <malloc> 0xb7f98b8d <+479>: add $0x10,%esp ---Type <return> to continue, or q <return> to quit--- 0xb7f98b90 <+482>: mov -0x48(%ebp),%edx 0xb7f98b93 <+485>: test %eax,%eax 0xb7f98b95 <+487>: jne 0xb7f98bc9 <do_relocs+539> 0xb7f98b97 <+489>: cmpl $0x0,-0x2c(%ebp) 0xb7f98b9b <+493>: mov -0x34(%ebp),%ecx 0xb7f98b9e <+496>: jne 0xb7f98ba6 <do_relocs+504> 0xb7f98ba0 <+498>: lea -0x254e5(%ebx),%ecx 0xb7f98ba6 <+504>: mov %eax,-0x48(%ebp) 0xb7f98ba9 <+507>: push %eax 0xb7f98baa <+508>: mov -0x28(%ebp),%eax 0xb7f98bad <+511>: push %ecx 0xb7f98bae <+512>: lea -0x2547f(%ebx),%ecx 0xb7f98bb4 <+518>: mov %edx,-0x2c(%ebp) 0xb7f98bb7 <+521>: pushl 0x4(%eax) 0xb7f98bba <+524>: push %ecx 0xb7f98bbb <+525>: call 0xb7f97b90 <error> 0xb7f98bc0 <+530>: mov -0x48(%ebp),%eax 0xb7f98bc3 <+533>: add $0x10,%esp 0xb7f98bc6 <+536>: mov -0x2c(%ebp),%edx 0xb7f98bc9 <+539>: mov -0x28(%ebp),%ecx 0xb7f98bcc <+542>: mov 0x74(%edx),%edx 0xb7f98bcf <+545>: add -0x24(%ebp),%edi 0xb7f98bd2 <+548>: mov 0x94(%ecx),%ecx 0xb7f98bd8 <+554>: mov %ecx,0x8(%eax) 0xb7f98bdb <+557>: mov -0x28(%ebp),%ecx 0xb7f98bde <+560>: mov %eax,0x94(%ecx) 0xb7f98be4 <+566>: mov %edx,(%eax) 0xb7f98be6 <+568>: lea -0x62d6c(%ebx),%edx 0xb7f98bec <+574>: mov %edi,0x4(%eax) 0xb7f98bef <+577>: mov %eax,0x4(%esi) 0xb7f98bf2 <+580>: mov %edx,(%esi) 0xb7f98bf4 <+582>: jmp 0xb7f98c09 <do_relocs+603> 0xb7f98bf6 <+584>: lea -0x62d70(%ebx),%eax 0xb7f98bfc <+590>: mov %eax,(%esi) 0xb7f98bfe <+592>: mov -0x24(%ebp),%eax 0xb7f98c01 <+595>: sub 0x78(%edx),%eax 0xb7f98c04 <+598>: add %eax,%edi 0xb7f98c06 <+600>: mov %edi,0x4(%esi) 0xb7f98c09 <+603>: mov -0x54(%ebp),%eax 0xb7f98c0c <+606>: add %eax,-0x30(%ebp) ---Type <return> to continue, or q <return> to quit--- 0xb7f98c0f <+609>: sub %eax,0x8(%ebp) 0xb7f98c12 <+612>: jmp 0xb7f989e2 <do_relocs+52> 0xb7f98c17 <+617>: lea -0xc(%ebp),%esp 0xb7f98c1a <+620>: pop %ebx 0xb7f98c1b <+621>: pop %esi 0xb7f98c1c <+622>: pop %edi 0xb7f98c1d <+623>: pop %ebp 0xb7f98c1e <+624>: ret End of assembler dump. (gdb) info all-registers eax 0xb7f98b0f -1208382705 ecx 0xb7fa2033 -1208344525 edx 0xb7ffd610 -1207970288 ebx 0xb7ffcf7c -1207971972 esp 0xbffffa50 0xbffffa50 ebp 0xbffffaa8 0xbffffaa8 esi 0xc45f10 12869392 edi 0xb735c11f -1221213921 eip 0xb7f98b58 0xb7f98b58 <do_relocs+426> eflags 0x10283 [ CF SF IF RF ] cs 0x73 115 ss 0x7b 123 ds 0x7b 123 es 0x7b 123 fs 0x0 0 gs 0x0 0 st0 0 (raw 0x00000000000000000000) st1 0 (raw 0x00000000000000000000) st2 0 (raw 0x00000000000000000000) st3 0 (raw 0x00000000000000000000) st4 0 (raw 0x00000000000000000000) st5 0 (raw 0x00000000000000000000) st6 0 (raw 0x00000000000000000000) st7 42 (raw 0x4004a800000000000000) fctrl 0x37f 895 fstat 0x0 0 ftag 0xffff 65535 fiseg 0x73 115 fioff 0xb7f9db4b -1208362165 foseg 0x7b 123 fooff 0xbffff770 -1073744016 fop 0x11c 284 xmm0 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm1 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} ---Type <return> to continue, or q <return> to quit--- xmm2 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm3 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm4 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm5 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm6 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm7 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} mxcsr 0x1f80 [ IM DM ZM OM UM PM ] mm0 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} mm1 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} mm2 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} mm3 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} mm4 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} mm5 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} mm6 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} mm7 {uint64 = 0xa800000000000000, v2_int32 = {0x0, 0xa8000000}, ---Type <return> to continue, or q <return> to quit--- v4_int16 = {0x0, 0x0, 0x0, 0xa800}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa8}} (gdb) [-- Attachment #3: wkfltk-test-ld.txt --] [-- Type: text/plain, Size: 4629 bytes --] make: Entering directory '/home/idunham/src/webkitfltk/Source/WebKit/fltk' g++ -o testapp/testapp testapp/*.cpp -I .. -I ../.. -I . -I ../../WTF -I webkit -I WebCoreSupport -std=gnu++11 -g -Wall -DBUILDING_FLTK__ -D_GLIBCXX_USE_SCHED_YIELD -D_GLIBCXX_USE_NANOSLEEP -I/usr/include -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libxml2 -I/usr/include/harfbuzz -I ../../JavaScriptCore/ForwardingHeaders -I ../../WebCore -I ../../WebCore/ForwardingHeaders -I ../../WebCore/Modules/geolocation -I ../../WebCore/Modules/filesystem -I ../../WebCore/Modules/mediastream -I ../../WebCore/Modules/navigatorcontentutils -I ../../WebCore/Modules/networkinfo -I ../../WebCore/Modules/webdatabase -I ../../WebCore/Modules/websockets -I ../../WebCore/accessibility -I ../../WebCore/bindings/generic -I ../../WebCore/bindings/js -I ../../WebCore/bindings -I ../../WebCore/bridge -I ../../WebCore/bridge/c -I ../../WebCore/bridge/jsc -I ../../WebCore/css -I ../../WebCore/dom -I ../../WebCore/dom/default -I ../../WebCore/editing -I ../../WebCore/fileapi -I ../../WebCore/history -I ../../WebCore/html -I ../../WebCore/html/forms -I ../../WebCore/html/shadow -I ../../WebCore/inspector -I ../../WebCore/loader -I ../../WebCore/loader/archive -I ../../WebCore/loader/appcache -I ../../WebCore/loader/icon -I ../../WebCore/loader/cache -I ../../WebCore/page -I ../../WebCore/page/animation -I ../../WebCore/page/scrolling -I ../../WebCore/platform -I ../../WebCore/platform/animation -I ../../WebCore/platform/audio -I ../../WebCore/platform/fltk -I ../../WebCore/platform/cairo -I ../../WebCore/platform/graphics -I ../../WebCore/platform/graphics/filters -I ../../WebCore/platform/graphics/harfbuzz -I ../../WebCore/platform/graphics/harfbuzz/ng -I ../../WebCore/platform/graphics/cairo -I ../../WebCore/platform/graphics/texmap -I ../../WebCore/platform/graphics/opentype -I ../../WebCore/platform/graphics/transforms -I ../../WebCore/platform/mediastream -I ../../WebCore/platform/mock -I ../../WebCore/platform/network -I ../../WebCore/platform/network/curl -I ../../WebCore/platform/sql -I ../../WebCore/platform/text -I ../../WebCore/plugins -I ../../WebCore/rendering -I ../../WebCore/rendering/line -I ../../WebCore/rendering/shapes -I ../../WebCore/rendering/style -I ../../WebCore/storage -I ../../WebCore/style -I ../../WebCore/svg -I ../../WebCore/svg/animation -I ../../WebCore/svg/graphics -I ../../WebCore/svg/properties -I ../../WebCore/workers -I ../../JavaScriptCore -I ../../JavaScriptCore/API -I ../../JavaScriptCore/assembler -I ../../JavaScriptCore/bytecode -I ../../JavaScriptCore/bytecompiler -I ../../JavaScriptCore/disassembler -I ../../JavaScriptCore/dfg -I ../../JavaScriptCore/heap -I ../../JavaScriptCore/debugger -I ../../JavaScriptCore/interpreter -I ../../JavaScriptCore/jit -I ../../JavaScriptCore/llint -I ../../JavaScriptCore/parser -I ../../JavaScriptCore/profiler -I ../../JavaScriptCore/runtime -DENABLE_CANVAS_PATH -DENABLE_CHANNEL_MESSAGING -DENABLE_CONTEXT_MENUS -DENABLE_CSS_BOX_DECORATION_BREAK -DENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED -DENABLE_DETAILS_ELEMENT -DENABLE_FTPDIR -DENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING -DENABLE_ICONDATABASE -DENABLE_IMAGE_DECODER_DOWN_SAMPLING -DENABLE_INSPECTOR -DENABLE_JIT -DENABLE_LEGACY_VENDOR_PREFIXES -DENABLE_LINK_PREFETCH -DENABLE_LLINT -DENABLE_METER_ELEMENT -DENABLE_NAVIGATOR_HWCONCURRENCY -DENABLE_PROMISES -DENABLE_PROGRESS_ELEMENT -DENABLE_SVG_FONTS -DENABLE_TEMPLATE_ELEMENT -DENABLE_WEB_SOCKETS -DENABLE_XSLT -DENABLE_SUBPIXEL_LAYOUT -DENABLE_VIEW_MODE_CSS_MEDIA -DENABLE_CURSOR_SUPPORT -DENABLE_DRAG_SUPPORT -DENABLE_FIFTH_VIDEO -DENABLE_VIDEO -DENABLE_VIDEO_TRACK -DENABLE_MATHML -DENABLE_TEXT_CARET -DENABLE_TEXT_SELECTION -DENABLE_WILL_REVEAL_EDGE_EVENTS -DWTF_USE_TEXTURE_MAPPER -DWTF_USE_CROSS_PLATFORM_CONTEXT_MENUS -DENABLE_NETSCAPE_PLUGIN_API=0 -DENABLE_SQL_DATABASE=0 -DENABLE_DATE_AND_TIME_INPUT_TYPES=0 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -Wall -I/usr/include/freetype2 -Os -fomit-frame-pointer -pipe -fvisibility-inlines-hidden -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT /tmp/libwebkitfltk.a \ -lz -pthread -lxslt -lxml2 -ldl -lsqlite3 `icu-config --ldflags` -lharfbuzz -lharfbuzz-icu -lfreetype -lfontconfig -lcairo -lpng -ljpeg -lrt -lcurl -lssl -lcrypto -lglib-2.0 `/usr/bin/fltk-config --ldflags --use-images` -static-libgcc -static-libstdc++ make: Leaving directory '/home/idunham/src/webkitfltk/Source/WebKit/fltk' ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: webkitfltk segfaults in do_relocs 2014-11-19 19:04 ` Isaac Dunham @ 2014-11-19 19:13 ` Rich Felker 2014-11-19 19:48 ` Isaac Dunham 0 siblings, 1 reply; 11+ messages in thread From: Rich Felker @ 2014-11-19 19:13 UTC (permalink / raw) To: musl On Wed, Nov 19, 2014 at 11:04:47AM -0800, Isaac Dunham wrote: > On Wed, Nov 19, 2014 at 11:50:50AM -0500, Rich Felker wrote: > > On Wed, Nov 19, 2014 at 08:44:15AM -0800, Isaac Dunham wrote: > > > Hello, > > > I've been trying to get WebkitFLTK[1] working on Alpine, and I have it > > > building. > > > But as usual, that's the easy part. The test program, > > > Source/WebKit/fltk/testapp/testapp, segfaults in do_relocs. > > > I'm attaching the output of bt full. > > > > Could you also provide a disassembly and register dump at the point of > > crash? > > > Attaching output of gdb disassemble and info all-registers. > > It's segfaulting "at line 365 of src/ldso/dynlink.c", for what that's worth. > > I'm providing the link command as well in case the problem is there. It looks like it's trying to apply a relocation to a read-only part of the mapping. Could you provide the output of readelf -a testapp? That would let me get an idea what's going on. It's probably too big to send as an attachment raw but compressing it with gzip will probably make it okay, or you could just send a link to a pastebin or similar (sprunge.us preferred). Rich ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: webkitfltk segfaults in do_relocs 2014-11-19 19:13 ` Rich Felker @ 2014-11-19 19:48 ` Isaac Dunham 2014-11-19 19:58 ` Rich Felker 0 siblings, 1 reply; 11+ messages in thread From: Isaac Dunham @ 2014-11-19 19:48 UTC (permalink / raw) To: musl On Wed, Nov 19, 2014 at 02:13:11PM -0500, Rich Felker wrote: > On Wed, Nov 19, 2014 at 11:04:47AM -0800, Isaac Dunham wrote: > > On Wed, Nov 19, 2014 at 11:50:50AM -0500, Rich Felker wrote: > > > On Wed, Nov 19, 2014 at 08:44:15AM -0800, Isaac Dunham wrote: > > > > Hello, > > > > I've been trying to get WebkitFLTK[1] working on Alpine, and I have it > > > > building. > > > > But as usual, that's the easy part. The test program, > > > > Source/WebKit/fltk/testapp/testapp, segfaults in do_relocs. > > > > I'm attaching the output of bt full. > > > > > > Could you also provide a disassembly and register dump at the point of > > > crash? > > > > > Attaching output of gdb disassemble and info all-registers. > > > > It's segfaulting "at line 365 of src/ldso/dynlink.c", for what that's worth. > > > > I'm providing the link command as well in case the problem is there. > > It looks like it's trying to apply a relocation to a read-only part of > the mapping. Could you provide the output of readelf -a testapp? That > would let me get an idea what's going on. It's probably too big to > send as an attachment raw but compressing it with gzip will probably > make it okay, or you could just send a link to a pastebin or similar > (sprunge.us preferred). That's 31.1 MB, over four and a half gzipped, 2.1 MB XZ-compressed. Not sure how to proceed. Thanks, Isaac Dunham ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: webkitfltk segfaults in do_relocs 2014-11-19 19:48 ` Isaac Dunham @ 2014-11-19 19:58 ` Rich Felker 2014-11-19 20:20 ` Isaac Dunham 0 siblings, 1 reply; 11+ messages in thread From: Rich Felker @ 2014-11-19 19:58 UTC (permalink / raw) To: musl On Wed, Nov 19, 2014 at 11:48:28AM -0800, Isaac Dunham wrote: > On Wed, Nov 19, 2014 at 02:13:11PM -0500, Rich Felker wrote: > > On Wed, Nov 19, 2014 at 11:04:47AM -0800, Isaac Dunham wrote: > > > On Wed, Nov 19, 2014 at 11:50:50AM -0500, Rich Felker wrote: > > > > On Wed, Nov 19, 2014 at 08:44:15AM -0800, Isaac Dunham wrote: > > > > > Hello, > > > > > I've been trying to get WebkitFLTK[1] working on Alpine, and I have it > > > > > building. > > > > > But as usual, that's the easy part. The test program, > > > > > Source/WebKit/fltk/testapp/testapp, segfaults in do_relocs. > > > > > I'm attaching the output of bt full. > > > > > > > > Could you also provide a disassembly and register dump at the point of > > > > crash? > > > > > > > Attaching output of gdb disassemble and info all-registers. > > > > > > It's segfaulting "at line 365 of src/ldso/dynlink.c", for what that's worth. > > > > > > I'm providing the link command as well in case the problem is there. > > > > It looks like it's trying to apply a relocation to a read-only part of > > the mapping. Could you provide the output of readelf -a testapp? That > > would let me get an idea what's going on. It's probably too big to > > send as an attachment raw but compressing it with gzip will probably > > make it okay, or you could just send a link to a pastebin or similar > > (sprunge.us preferred). > That's 31.1 MB, over four and a half gzipped, 2.1 MB XZ-compressed. > > Not sure how to proceed. Uhg. Do you have anywhere you can upload it and provide a link? Rich ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: webkitfltk segfaults in do_relocs 2014-11-19 19:58 ` Rich Felker @ 2014-11-19 20:20 ` Isaac Dunham 2014-11-19 20:56 ` Rich Felker 0 siblings, 1 reply; 11+ messages in thread From: Isaac Dunham @ 2014-11-19 20:20 UTC (permalink / raw) To: musl On Wed, Nov 19, 2014 at 02:58:24PM -0500, Rich Felker wrote: > On Wed, Nov 19, 2014 at 11:48:28AM -0800, Isaac Dunham wrote: > > On Wed, Nov 19, 2014 at 02:13:11PM -0500, Rich Felker wrote: > > > It looks like it's trying to apply a relocation to a read-only part of > > > the mapping. Could you provide the output of readelf -a testapp? That > > > would let me get an idea what's going on. It's probably too big to > > > send as an attachment raw but compressing it with gzip will probably > > > make it okay, or you could just send a link to a pastebin or similar > > > (sprunge.us preferred). > > That's 31.1 MB, over four and a half gzipped, 2.1 MB XZ-compressed. > > > > Not sure how to proceed. > > Uhg. Do you have anywhere you can upload it and provide a link? > > Rich > https://www.dropbox.com/s/2e9f91zclw5liei/wkfltk-readelf-a.xz?dl=1 (unfortunately, you may need a browser). Thanks, Isaac Dunham ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: webkitfltk segfaults in do_relocs 2014-11-19 20:20 ` Isaac Dunham @ 2014-11-19 20:56 ` Rich Felker 2014-11-19 22:43 ` Isaac Dunham 0 siblings, 1 reply; 11+ messages in thread From: Rich Felker @ 2014-11-19 20:56 UTC (permalink / raw) To: musl On Wed, Nov 19, 2014 at 12:20:02PM -0800, Isaac Dunham wrote: > On Wed, Nov 19, 2014 at 02:58:24PM -0500, Rich Felker wrote: > > On Wed, Nov 19, 2014 at 11:48:28AM -0800, Isaac Dunham wrote: > > > On Wed, Nov 19, 2014 at 02:13:11PM -0500, Rich Felker wrote: > > > > It looks like it's trying to apply a relocation to a read-only part of > > > > the mapping. Could you provide the output of readelf -a testapp? That > > > > would let me get an idea what's going on. It's probably too big to > > > > send as an attachment raw but compressing it with gzip will probably > > > > make it okay, or you could just send a link to a pastebin or similar > > > > (sprunge.us preferred). > > > That's 31.1 MB, over four and a half gzipped, 2.1 MB XZ-compressed. > > > > > > Not sure how to proceed. > > > > Uhg. Do you have anywhere you can upload it and provide a link? > > > > Rich > > > > https://www.dropbox.com/s/2e9f91zclw5liei/wkfltk-readelf-a.xz?dl=1 > (unfortunately, you may need a browser). Got it. The line number in your original report seems to be off by a bit (it points to TLSDESC related cases) but I've found the offending relocation(s): 0083deea 0000c402 R_386_PC32 00000000 exp 0083df03 00010a02 R_386_PC32 00000000 log 0083df1c 00030502 R_386_PC32 00000000 floor 0083df35 00024502 R_386_PC32 00000000 ceil I have no idea why the linker is emitting these. It should have resolved them at ld time to PLT entries in the main program's PLT, but maybe since you're building as PIE (this is defautl on Alpine) that doesn't happen (this would be a linker bug, IMO). If it were going to do this (leave the relocations in the output), it should mark the program as DT_TEXTREL (having textrels), but this is probably suppressed for PIE because it's not supposed to happen. My best guess as to what's triggering the problem is that there's some nasty asm or other hacks that are not PIE-compatible somewhere in the program. It's also possible that you're pulling in static libraries (which would not be PIE-compatible) due to not having the dynamic version of a needed library installed. Finding which .o or .a file these references to exp/log/floor/ceil are coming from would help narrow down the source of the problem. Alternatively you could try building as non-PIE. Rich ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: webkitfltk segfaults in do_relocs 2014-11-19 20:56 ` Rich Felker @ 2014-11-19 22:43 ` Isaac Dunham 2014-11-20 6:14 ` Timo Teras 0 siblings, 1 reply; 11+ messages in thread From: Isaac Dunham @ 2014-11-19 22:43 UTC (permalink / raw) To: musl On Wed, Nov 19, 2014 at 03:56:35PM -0500, Rich Felker wrote: > Got it. The line number in your original report seems to be off by a > bit (it points to TLSDESC related cases) but I've found the offending > relocation(s): > > 0083deea 0000c402 R_386_PC32 00000000 exp > 0083df03 00010a02 R_386_PC32 00000000 log > 0083df1c 00030502 R_386_PC32 00000000 floor > 0083df35 00024502 R_386_PC32 00000000 ceil > > I have no idea why the linker is emitting these. It should have > resolved them at ld time to PLT entries in the main program's PLT, but > maybe since you're building as PIE (this is defautl on Alpine) that > doesn't happen (this would be a linker bug, IMO). If it were going > to do this (leave the relocations in the output), it should mark the > program as DT_TEXTREL (having textrels), but this is probably > suppressed for PIE because it's not supposed to happen. > > My best guess as to what's triggering the problem is that there's some > nasty asm or other hacks that are not PIE-compatible somewhere in the > program. It's also possible that you're pulling in static libraries > (which would not be PIE-compatible) due to not having the dynamic > version of a needed library installed. All external libs are available in shared format, except perhaps -lgcc But the whole library is built in static form only, without -fPIC. > Finding which .o or .a file these references to exp/log/floor/ceil are > coming from would help narrow down the source of the problem. > Alternatively you could try building as non-PIE. A couple dozen bits of C++ that seem to call those by way of templates. I need to read up on the PIE-related options. Thanks, Isaac Dunham ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: webkitfltk segfaults in do_relocs 2014-11-19 22:43 ` Isaac Dunham @ 2014-11-20 6:14 ` Timo Teras 0 siblings, 0 replies; 11+ messages in thread From: Timo Teras @ 2014-11-20 6:14 UTC (permalink / raw) To: Isaac Dunham; +Cc: musl On Wed, 19 Nov 2014 14:43:40 -0800 Isaac Dunham <ibid.ag@gmail.com> wrote: > On Wed, Nov 19, 2014 at 03:56:35PM -0500, Rich Felker wrote: > > Got it. The line number in your original report seems to be off by a > > bit (it points to TLSDESC related cases) but I've found the > > offending relocation(s): > > > > 0083deea 0000c402 R_386_PC32 00000000 exp > > 0083df03 00010a02 R_386_PC32 00000000 log > > 0083df1c 00030502 R_386_PC32 00000000 floor > > 0083df35 00024502 R_386_PC32 00000000 ceil > > > > I have no idea why the linker is emitting these. It should have > > resolved them at ld time to PLT entries in the main program's PLT, > > but maybe since you're building as PIE (this is defautl on Alpine) > > that doesn't happen (this would be a linker bug, IMO). If it were > > going to do this (leave the relocations in the output), it should > > mark the program as DT_TEXTREL (having textrels), but this is > > probably suppressed for PIE because it's not supposed to happen. See also the following link on how to figure out where textrels come from: http://wiki.gentoo.org/wiki/Hardened/HOWTO_locate_and_fix_textrels > > My best guess as to what's triggering the problem is that there's > > some nasty asm or other hacks that are not PIE-compatible somewhere > > in the program. It's also possible that you're pulling in static > > libraries (which would not be PIE-compatible) due to not having the > > dynamic version of a needed library installed. > > All external libs are available in shared format, except perhaps -lgcc > But the whole library is built in static form only, without -fPIC. You need -fPIC for PIE-linking. Missing -fPIC is likely cause for this. If there's some weird reason to not use -fPIC, you probably also need to link the executable with -fno-PIE, but this means the main DSO will not be included in address space layout randomization. /Timo ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: webkitfltk segfaults in do_relocs (partly solved) 2014-11-19 16:44 webkitfltk segfaults in do_relocs Isaac Dunham 2014-11-19 16:50 ` Rich Felker @ 2014-11-22 5:24 ` Isaac Dunham 1 sibling, 0 replies; 11+ messages in thread From: Isaac Dunham @ 2014-11-22 5:24 UTC (permalink / raw) To: musl, alpine-devel Hello, Thanks for all the advice. Now it gets a lot further: I built webkitfltk with -fno-pie, and the test program loaded, showed a window, and crashed somewhere in JavaScriptCore. I tried running Source/JavaScriptCore/jsc, and it shows a problem that was previously reported: $ Source/JavaScriptCore/jsc Error compiling builtin: ASSERTION FAILED: result parser/Parser.h(970) : WTF::PassRefPtr<T> JSC::parse(JSC::VM*, const JSC::SourceCode&, JSC::FunctionParameters*, const JSC::Identifier&, JSC::JSParserStrictness, JSC::JSParserMode, JSC::ParserError&, JSC::JSTextPosition*) [with ParsedNode = JSC::ProgramNode] Segmentation fault (core dumped) Upstream has set thread stack size to 1 megabyte regardless of libc, figuring that 8 megabytes is too much. I'm building with -DUSE_SYSTEM_MALLOC=1. Looking through the old thread on Webkit javascript crashing, I found an excerpt of a diff, but could not figure out where it's supposed to apply (grep -r didn't find anything pertinent that I could see). Thanks, Isaac Dunham --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org --- ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2014-11-22 5:24 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2014-11-19 16:44 webkitfltk segfaults in do_relocs Isaac Dunham 2014-11-19 16:50 ` Rich Felker 2014-11-19 19:04 ` Isaac Dunham 2014-11-19 19:13 ` Rich Felker 2014-11-19 19:48 ` Isaac Dunham 2014-11-19 19:58 ` Rich Felker 2014-11-19 20:20 ` Isaac Dunham 2014-11-19 20:56 ` Rich Felker 2014-11-19 22:43 ` Isaac Dunham 2014-11-20 6:14 ` Timo Teras 2014-11-22 5:24 ` webkitfltk segfaults in do_relocs (partly solved) Isaac Dunham
Code repositories for project(s) associated with this public inbox https://git.vuxu.org/mirror/musl/ This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).