* Antti P Miettinen ([EMAIL PROTECTED]) wrote:
> Package: firefox
> Version: 1.5.dfsg-3
> Severity: normal
> 
> While testing the ARM system emulation in QEMU I noticed that firefox
> segfaults without the below change.
> 
> Seems that the inputs for the inline asm in XPTC_InvokeByIndex() in
> xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp need an
> additional memory input in order to prevent gcc from optimizing away
> the initialization of the structure used by the asm.

Is this a gcc 4 issue? Any idea why this is necessary? 
 
> diff -ur 
> firefox-1.4.99+1.5rc3.dfsg/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
>  
> /usr/local/arm/sid/home/apm/src/firefox-1.4.99+1.5rc3.dfsg/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
> --- 
> firefox-1.4.99+1.5rc3.dfsg/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
>    2005-10-14 00:33:10.000000000 +0300
> +++ 
> /usr/local/arm/sid/home/apm/src/firefox-1.4.99+1.5rc3.dfsg/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
>    2005-12-25 15:15:46.000000000 +0200
> @@ -212,7 +212,7 @@
>      "add     sp, sp, r4      \n\t"   /* restore stack pointer                
> */
>      "mov     %0, r0          \n\t"   /* the result...                        
> */
>      : "=r" (result)
> -    : "r" (&my_params)
> +    : "r" (&my_params), "m" (my_params)
>      : "r0", "r1", "r2", "r3", "r4", "ip", "lr", "sp"
>      );

-- 
Eric Dorland <[EMAIL PROTECTED]>
ICQ: #61138586, Jabber: [EMAIL PROTECTED]
1024D/16D970C6 097C 4861 9934 27A0 8E1C  2B0A 61E9 8ECF 16D9 70C6

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d- s++: a-- C+++ UL+++ P++ L++ E++ W++ N+ o K- w+ 
O? M++ V-- PS+ PE Y+ PGP++ t++ 5++ X+ R tv++ b+++ DI+ D+ 
G e h! r- y+ 
------END GEEK CODE BLOCK------

Attachment: signature.asc
Description: Digital signature

Reply via email to