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 <eel_canvas_item_new+0>:     mov    %rbp,-0x18(%rsp)
0x0000000000033c65 <eel_canvas_item_new+5>:     mov    %r12,-0x10(%rsp)
0x0000000000033c6a <eel_canvas_item_new+10>:    mov    %rdi,%rbp
0x0000000000033c6d <eel_canvas_item_new+13>:    mov    %r13,-0x8(%rsp)
0x0000000000033c72 <eel_canvas_item_new+18>:    mov    %rbx,-0x20(%rsp)
0x0000000000033c77 <eel_canvas_item_new+23>:    sub    $0xf8,%rsp
0x0000000000033c7e <eel_canvas_item_new+30>:    mov    %rcx,0x38(%rsp)
0x0000000000033c83 <eel_canvas_item_new+35>:    movzbl %al,%ecx
0x0000000000033c86 <eel_canvas_item_new+38>:    mov    %r8,0x40(%rsp)
0x0000000000033c8b <eel_canvas_item_new+43>:    lea    0x0(,%rcx,4),%rax
0x0000000000033c93 <eel_canvas_item_new+51>:    lea    0x20(%rip),%rcx # 
0x33cba <eel_canvas_item_new+90>
                                                       ^^^^ note the offset
0x0000000000033c9a <eel_canvas_item_new+58>:    mov    %r9,0x48(%rsp)
0x0000000000033c9f <eel_canvas_item_new+63>:    mov    %rsi,%r12
0x0000000000033ca2 <eel_canvas_item_new+66>:    mov    %rdx,%r13
0x0000000000033ca5 <eel_canvas_item_new+69>:    sub    %rax,%rcx
0x0000000000033ca8 <eel_canvas_item_new+72>:    lea    0xcf(%rsp),%rax
0x0000000000033cb0 <eel_canvas_item_new+80>:    jmpq   *%rcx
0x0000000000033cb2 <eel_canvas_item_new+82>:    movaps %xmm7,-0xf(%rax)
0x0000000000033cb6 <eel_canvas_item_new+86>:    movaps %xmm6,-0x1f(%rax)
                                                       ^^^^^ note how only xmm7 
and xmm6 get used
0x0000000000033cba <eel_canvas_item_new+90>:    callq  0x23cd8 <[EMAIL 
PROTECTED]>


Build1010 - doesn't crash (built on roth.suse.de)
(gdb) disassemble eel_canvas_item_new
0x00002b91e8ee8ee0 <eel_canvas_item_new+0>:     mov    %rbp,-0x18(%rsp)
0x00002b91e8ee8ee5 <eel_canvas_item_new+5>:     mov    %r12,-0x10(%rsp)
0x00002b91e8ee8eea <eel_canvas_item_new+10>:    mov    %rdi,%rbp
0x00002b91e8ee8eed <eel_canvas_item_new+13>:    mov    %r13,-0x8(%rsp)
0x00002b91e8ee8ef2 <eel_canvas_item_new+18>:    mov    %rbx,-0x20(%rsp)
0x00002b91e8ee8ef7 <eel_canvas_item_new+23>:    sub    $0xf8,%rsp
0x00002b91e8ee8efe <eel_canvas_item_new+30>:    mov    %rcx,0x38(%rsp)
0x00002b91e8ee8f03 <eel_canvas_item_new+35>:    movzbl %al,%ecx
0x00002b91e8ee8f06 <eel_canvas_item_new+38>:    mov    %r8,0x40(%rsp)
0x00002b91e8ee8f0b <eel_canvas_item_new+43>:    lea    0x0(,%rcx,4),%rax
0x00002b91e8ee8f13 <eel_canvas_item_new+51>:    lea    0x38(%rip),%rcx        # 
0x2b91e8ee8f52 <eel_canvas_item_new+114>
                                                       ^^^^^^^^^^ different 
offset
0x00002b91e8ee8f1a <eel_canvas_item_new+58>:    mov    %r9,0x48(%rsp)
0x00002b91e8ee8f1f <eel_canvas_item_new+63>:    mov    %rsi,%r12
0x00002b91e8ee8f22 <eel_canvas_item_new+66>:    mov    %rdx,%r13
0x00002b91e8ee8f25 <eel_canvas_item_new+69>:    sub    %rax,%rcx
0x00002b91e8ee8f28 <eel_canvas_item_new+72>:    lea    0xcf(%rsp),%rax
0x00002b91e8ee8f30 <eel_canvas_item_new+80>:    jmpq   *%rcx
0x00002b91e8ee8f32 <eel_canvas_item_new+82>:    movaps %xmm7,-0xf(%rax)
0x00002b91e8ee8f36 <eel_canvas_item_new+86>:    movaps %xmm6,-0x1f(%rax)
0x00002b91e8ee8f3a <eel_canvas_item_new+90>:    movaps %xmm5,-0x2f(%rax)
0x00002b91e8ee8f3e <eel_canvas_item_new+94>:    movaps %xmm4,-0x3f(%rax)
0x00002b91e8ee8f42 <eel_canvas_item_new+98>:    movaps %xmm3,-0x4f(%rax)
0x00002b91e8ee8f46 <eel_canvas_item_new+102>:   movaps %xmm2,-0x5f(%rax)
0x00002b91e8ee8f4a <eel_canvas_item_new+106>:   movaps %xmm1,-0x6f(%rax)
0x00002b91e8ee8f4e <eel_canvas_item_new+110>:   movaps %xmm0,-0x7f(%rax)
                                                       ^^^^^ xmm7 to xmm0 get 
used
0x00002b91e8ee8f52 <eel_canvas_item_new+114>:   callq  0x2b91e8ed8c58 <[EMAIL 
PROTECTED]>


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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to