Bug 65580
Summary: | gcc 3.1-3 miscompiles OpenOffice; -O0 worse than higher levels | ||
---|---|---|---|
Product: | [Retired] Red Hat Raw Hide | Reporter: | Bernhard Rosenkraenzer <bero> |
Component: | gcc | Assignee: | Jakub Jelinek <jakub> |
Status: | CLOSED NOTABUG | QA Contact: | |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 1.0 | CC: | saint |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | i386 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2002-05-30 12:40:05 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Bernhard Rosenkraenzer
2002-05-27 22:00:38 UTC
I'll try the idcl crash first. Could any of you try to debug the other problem? Does it show up with gcc 3.0.4? As I'm familiar with neither current X toolkit, the latter would be pretty hard for me unless you find which source misbehaves. BTW: What are the mozilla binaries for when Mozilla address book is not built (*nomozab* patches)? Ok, idlc crash is because Sun doesn't know what inline assembly is about. Here is a fix (untested yet): begin 644 P.bz2 M0EIH.3%!629368@;$&<``<%?@$`P?W__^FJFW82__]_B4`/9Z9M*$@H`TU49 M`/49`:!ZAH`;4````!S1DQ,`$Q&!&F!!B,$R8!&"1)JI^HFU3R>J!ZAYHDQ` M/*;2/4!C4T>IIXH<T9,3`!,1@1I@08C!,F`1@DB3"`FA-I&FF2>H`:,FF@`! MHR46%B?(#<0W#@@4-.!J!D!#^6NH&<&),&A2JE2`H"U[NLF557J?;$#8QQY` MS?6J`3L[SQC4>MW-DZ"89@\]9%;R*#E811IOSD0O,@&P)80NQI^4D7CY3A47 M]=IC3$--M#1@#N,KWW.J5S4E)+Y,3)16R28A(QD&YO$(%G(@B80RG/6ZUCCL M>$YY;A)H=+$V6U]#5%`XBHT"FSZ%P/DJ%DC8@RUU(QV**BD1\HBB`"0+8*PR M%>"0[1%!?HY7,+;^$_LRISH\90N9,#(3,P,R0PF-I,&+Q'MH!G8&-A#!M<75 M!<-#&1=^M`;G]P3=:F*V$6`[@.S9..G`\['5K<BS=V#*4H@0DV>A:Q;.=BM$ M<R$/P!QT;T*^TR[(8'X'95TD@WN`AGPT0?<C1>^-DSB!&D]X.8HO)A_CH(>1 M4.X@<I4;!R\WFNYQ<XP<8:@Z3&KK"HC44C#WA76<3[;8/"MBIZY%?B)6C1^) M$@$IM2I$.1VB0J8I&J_@4K,:SF-ME+E0+I-1IOFQR4R4XQ&X`>5A8L+=8;WK MS0>?@7A,',D@ZA'!&%&M&E$1^WF1L-0O<A?,"&=]\]2+7]$;!$VL,.V+,";[ MJRC*6&V#'=T&09J_&69S^RWC56L[4S7G!+9ZPUH^&-7(B\.D[%'7@-K]G:=9 M0Z1;A7R$OXOJ;$Q8?L]TK,86A$P3F@U(*9-9DH0&9=XQ8>1#HN9+ZBN6A6'Y M)R-@97!H,:?`-C`5B^=4"9Z#R[TI2F?91.-&`KH(*NXOO4PSF<N+3.'^/-"9 M>>++(_19AN#^FTF;$CO,'3EQM1G0LQ/3I(E"4J+,%!@PK0(0Q-'IJ*IP/"!< M-L@$K%B9AS@F9#,@5KAWI0/`7!B@T7`ROX]Z,B*,61V"2XB*&/X1&`B/`JG? MV<IK,P1T]H<A$\(QL%<%II1@<QR%J")J?`6<3FHRO)DD*^)(-P:BZCMQ@;02 M80I%[I&H@:#F&"PKO$E<5.<10=#G1FY\G0RA>6:24@DP-G&'6*+5,T?\7<D4 'X4)"(&Q!G``` ` end --- oo_1.0_src/sal/osl/unx/interlck.c.jj Wed May 2 17:03:13 2001 +++ oo_1.0_src/sal/osl/unx/interlck.c Thu May 30 10:45:19 2002 @@ -83,9 +83,11 @@ oslInterlockedCount SAL_CALL osl_increme "lock\n\t" "xadd %0, %2\n\t" "incl %0" - : "=a" (nCount), "=m" (*pCount) + : "=&r" (nCount), "=m" (*pCount) : "m" (*pCount) : "memory"); + + return nCount; } oslInterlockedCount SAL_CALL osl_decrementInterlockedCount(oslInterlockedCount* pCount) @@ -97,9 +99,11 @@ oslInterlockedCount SAL_CALL osl_decreme "lock\n\t" "xadd %0, %2\n\t" "decl %0" - : "=a" (nCount), "=m" (*pCount) + : "=&r" (nCount), "=m" (*pCount) : "m" (*pCount) : "memory"); + + return nCount; } #elif defined ( GCC ) && defined ( POWERPC ) @@ -117,7 +121,7 @@ oslInterlockedCount SAL_CALL osl_increme " addi %0,%0,1\n\t" " stwcx. %0,0,%2\n\t" " bne- 1b" - : "=r" (nCount), "=m" (*pCount) + : "=&r" (nCount), "=m" (*pCount) : "r" (pCount) : "r4", "memory"); @@ -134,7 +138,7 @@ oslInterlockedCount SAL_CALL osl_decreme " subi %0,%0,1\n\t" " stwcx. %0,0,%2\n\t" " bne- 1b" - : "=r" (nCount), "=m" (*pCount) + : "=&r" (nCount), "=m" (*pCount) : "r" (pCount) : "r4", "memory"); --- oo_1.0_src/bridges/source/c_uno/intelx86.cxx.jj Wed Apr 18 13:05:48 2001 +++ oo_1.0_src/bridges/source/c_uno/intelx86.cxx Thu May 30 11:37:26 2002 @@ -95,24 +95,21 @@ Lcopy: sub eax, 4 add esp, eax } #elif GCC + int ecx, edx; + __asm__ ( - "mov %2, %%eax\n\t" - "mov %%eax, %%ecx\n\t" - "shl $2, %%eax\n\t" - "add %1, %%eax\n" - "Lcopy:\n\t" - "sub $4, %%eax\n\t" - "pushl (%%eax)\n\t" - "dec %%ecx\n\t" - "jne Lcopy\n\t" - "mov %0, %%eax\n\t" - "call *%%eax\n\t" - "mov %%eax, %3\n" - "mov %2, %%eax\n\t" - "shl $2, %%eax\n\t" - "add %%eax, %%esp\n\t" - : : "m"(fptr), "m"(pParams), "m"(nParams), "m"(retVal) + "1:\n\t" + "subl $4, %0\n\t" + "pushl (%0)\n\t" + "decl %1\n\t" + "jne 1b\n\t" + "call *%2\n\t" + "leal 0(%%esp,%3,4), %%esp\n\t" + : "=a"(retVal), "=c"(ecx), "=d"(edx) + : "S"(nParams), + "0" (((int *) pParams) + nParams), "1" (nParams), "2"(fptr) + : "memory", "cc" ); #else #error "### unsupported x86 compiler!" (actually only the first file is what matters in this case). Inline assembly in bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx looks extremely suspicios too, I think best would be to write cpp_vtable_call in pure assembly plus put some assertions into cpp2uno.cxx so that the assembly can use hardcoded typelib_TypeClass_* values it wants. As far as redrawing at -O1, what I could see is that basically no drawing occured at all, just windows poped up. The only window content I saw was in ./setup program the unpacking progress bar and in ooffice background in the main window (ie. logo and the like). I couldn't get it to redraw by either minimizing/maximizing or by moving other windows on top of it. I was building with gcc3-c++-3.1-2 (that's what I have installed at home) on vanilla 7.3 (plus jdk :( ). I remember my brother seeing this with the OO1.0 provided binaries when running the setup program during installation on 7.1, but it worked in 7.3. David Sainty wrote to me 2 weeks ago: > I do however have an unfortunate problem. It seems all of my builds so > far (on RHL 7.3) have had a problem whereby activity seemingly related to > StarBASIC (a mix of XML an javascripty type stuff) causes the instance to > abort (SIGSEGV). I think I will actually consider changing my Java and > my XML libraries, in case there is some issue here. Was this built with gcc 3.1 or 3.0 or 2.96-RH? Guess I can close this now, OpenOffice redraws just fine (ATM miscompiles libcfgmgr2.so (but I have added workaround) and file open/save dialog doesn't work). Grr. |