* 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------
signature.asc
Description: Digital signature