Here is the output of objdump -d firefox-4.0-bin with gcc4.4 and -pie

The major difference is with how pthread_mutex_lock is called in malloc:

    937d:       8b 4d e4                mov    -0x1c(%ebp),%ecx
    9380:       89 0c 24                mov    %ecx,(%esp)
    9383:       e8 28 7f ff ff          call   12b0 <pthread_mutex_l...@plt>

....the value loaded on to the stack comes from earlier, here:

    92f8:       65 a1 00 00 00 00       mov    %gs:0x0,%eax
    92fe:       81 e8 04 00 00 00       sub    $0x4,%eax
    9304:       8b 00                   mov    (%eax),%eax
    9306:       85 c0                   test   %eax,%eax
    9308:       89 45 e4                mov    %eax,-0x1c(%ebp)

...note that the lea instruction has been replaced with a sub, and now
loads the contents of the correct address in to eax

** Attachment added: "firefox-4.0-bin-4.4"
   
https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/663294/+attachment/1721188/+files/firefox-4.0-bin-4.4

** Summary changed:

- Firefox built with gcc-4.5 is a non-starter on i386
+ Firefox built with gcc-4.5 is a non-starter on i386 with -pie

-- 
Firefox built with gcc-4.5 is a non-starter on i386 with -pie
https://bugs.launchpad.net/bugs/663294
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to