Hi,
I was looking into https://bugzilla.novell.com/show_bug.cgi?id=307781 -
basically, Nautilus crashes inside libeel in x86_64 at the start of a
varargs function. JPR helped me take disassemblies of both builds; this
is the start of the function for both versions:
Build1005 - crashes (built on bach.suse.de)
(gdb) disassemble eel_canvas_item_new
0x0000000000033c60 : mov %rbp,-0x18(%rsp)
0x0000000000033c65 : mov %r12,-0x10(%rsp)
0x0000000000033c6a : mov %rdi,%rbp
0x0000000000033c6d : mov %r13,-0x8(%rsp)
0x0000000000033c72 : mov %rbx,-0x20(%rsp)
0x0000000000033c77 : sub $0xf8,%rsp
0x0000000000033c7e : mov %rcx,0x38(%rsp)
0x0000000000033c83 : movzbl %al,%ecx
0x0000000000033c86 : mov %r8,0x40(%rsp)
0x0000000000033c8b : lea 0x0(,%rcx,4),%rax
0x0000000000033c93 : lea 0x20(%rip),%rcx # 0x33cba
^^^^ note the offset
0x0000000000033c9a : mov %r9,0x48(%rsp)
0x0000000000033c9f : mov %rsi,%r12
0x0000000000033ca2 : mov %rdx,%r13
0x0000000000033ca5 : sub %rax,%rcx
0x0000000000033ca8 : lea 0xcf(%rsp),%rax
0x0000000000033cb0 : jmpq *%rcx
0x0000000000033cb2 : movaps %xmm7,-0xf(%rax)
0x0000000000033cb6 : movaps %xmm6,-0x1f(%rax)
^^^^^ note how only xmm7 and xmm6 get used
0x0000000000033cba : callq 0x23cd8
Build1010 - doesn't crash (built on roth.suse.de)
(gdb) disassemble eel_canvas_item_new
0x00002b91e8ee8ee0 : mov %rbp,-0x18(%rsp)
0x00002b91e8ee8ee5 : mov %r12,-0x10(%rsp)
0x00002b91e8ee8eea : mov %rdi,%rbp
0x00002b91e8ee8eed : mov %r13,-0x8(%rsp)
0x00002b91e8ee8ef2 : mov %rbx,-0x20(%rsp)
0x00002b91e8ee8ef7 : sub $0xf8,%rsp
0x00002b91e8ee8efe : mov %rcx,0x38(%rsp)
0x00002b91e8ee8f03 : movzbl %al,%ecx
0x00002b91e8ee8f06 : mov %r8,0x40(%rsp)
0x00002b91e8ee8f0b : lea 0x0(,%rcx,4),%rax
0x00002b91e8ee8f13 : lea 0x38(%rip),%rcx # 0x2b91e8ee8f52
^^^^^^^^^^ different offset
0x00002b91e8ee8f1a : mov %r9,0x48(%rsp)
0x00002b91e8ee8f1f : mov %rsi,%r12
0x00002b91e8ee8f22 : mov %rdx,%r13
0x00002b91e8ee8f25 : sub %rax,%rcx
0x00002b91e8ee8f28 : lea 0xcf(%rsp),%rax
0x00002b91e8ee8f30 : jmpq *%rcx
0x00002b91e8ee8f32 : movaps %xmm7,-0xf(%rax)
0x00002b91e8ee8f36 : movaps %xmm6,-0x1f(%rax)
0x00002b91e8ee8f3a : movaps %xmm5,-0x2f(%rax)
0x00002b91e8ee8f3e : movaps %xmm4,-0x3f(%rax)
0x00002b91e8ee8f42 : movaps %xmm3,-0x4f(%rax)
0x00002b91e8ee8f46 : movaps %xmm2,-0x5f(%rax)
0x00002b91e8ee8f4a : movaps %xmm1,-0x6f(%rax)
0x00002b91e8ee8f4e : movaps %xmm0,-0x7f(%rax)
^^^^^ xmm7 to xmm0 get used
0x00002b91e8ee8f52 : callq 0x2b91e8ed8c58
I'm wondering what might have changed. The bug has been there since
Beta1, but with the latest (post-Beta3) it doesn't happen. Did the
compiler change or something? The build hosts are different, but
shouldn't they produce the same results?
Thanks,
Federico
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-factory+help@opensuse.org