http://bugs.winehq.org/show_bug.cgi?id=22385
Summary: GCC 4.4.3 miscompiles GDI32 code on Intel Core i3/i5/i7 CPUs Product: Wine Version: unspecified Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: gdi32 AssignedTo: wine-bugs@winehq.org ReportedBy: t.artem@mailcity.com
Created an attachment (id=27394) --> (http://bugs.winehq.org/attachment.cgi?id=27394) Miranda's dbtool.exe
When wine is compiled with GCC 4.4.3 with the following compiler flags:
export CFLAGS="-march=native -O2 -pipe -ftree-vectorize"
on Intel Core i3/i5/i7 CPUs then some applications start crashing in gdi32 code.
A sample application and a backtrace will be attached.
http://bugs.winehq.org/show_bug.cgi?id=22385
--- Comment #1 from Artem S. Tashkinov t.artem@mailcity.com 2010-04-17 04:17:30 --- Created an attachment (id=27395) --> (http://bugs.winehq.org/attachment.cgi?id=27395) Backtrace
http://bugs.winehq.org/show_bug.cgi?id=22385
--- Comment #2 from Artem S. Tashkinov t.artem@mailcity.com 2010-04-17 04:22:28 --- For -march=native on Intel Core CPUs GCC 4.4.3 uses the following options:
-march=core2 -mcx16 -msahf -maes -mpclmul -mpopcnt -msse4.2 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=256 -mtune=core2
So in fact, this bug affects all Intel Core 2 and newer CPUs.
http://bugs.winehq.org/show_bug.cgi?id=22385
Artem S. Tashkinov t.artem@mailcity.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|GCC 4.4.3 miscompiles GDI32 |GCC 4.4.3 miscompiles GDI32 |code on Intel Core i3/i5/i7 |code for/on Intel Core 2 |CPUs |and newer CPUs
http://bugs.winehq.org/show_bug.cgi?id=22385
Marcus Meissner marcus@jet.franken.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |marcus@jet.franken.de Summary|GCC 4.4.3 miscompiles GDI32 |GDI bezier code has |code for/on Intel Core 2 |unaligned access for SSE |and newer CPUs |registers code for/on Intel | |Core 2 and newer CPUs
--- Comment #3 from Marcus Meissner marcus@jet.franken.de 2010-04-17 04:37:23 --- Not a GCC Bug I think, but an unaligned access to a MMX/SSE register from Wine code.
http://bugs.winehq.org/show_bug.cgi?id=22385
--- Comment #4 from Artem S. Tashkinov t.artem@mailcity.com 2010-04-17 04:44:43 --- GCC 4.2.4 resolves -march=native to "-march=nocona -mtune=generic"
http://bugs.winehq.org/show_bug.cgi?id=22385
--- Comment #5 from Marcus Meissner marcus@jet.franken.de 2010-04-17 04:47:58 --- (the stack in GDI_Bezier we received is only 4 byte aligned so the stack value POINT is only 4 byte aligned and the SSE store from it then faults.
Usual programs doing SSE need to be in alignment starting from main() on (only main auto aligns the stack).
With Win32 code inbetween we would not be able to guarantee this alignment.
So until gcc gets a stack alignment function attribute which it currently hasnt ... this can only work if you disable SSE.
http://bugs.winehq.org/show_bug.cgi?id=22385
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Component|gdi32 |-unknown Resolution| |DUPLICATE
--- Comment #6 from Dmitry Timoshkov dmitry@codeweavers.com 2010-04-17 04:53:21 --- That's a gcc bug.
*** This bug has been marked as a duplicate of bug 22316 ***
http://bugs.winehq.org/show_bug.cgi?id=22385
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #7 from Dmitry Timoshkov dmitry@codeweavers.com 2010-04-17 04:54:05 --- In future please specify Wine version you are using. Closing duplicate.
http://bugs.winehq.org/show_bug.cgi?id=22385
--- Comment #8 from Artem S. Tashkinov t.artem@mailcity.com 2010-04-17 05:06:07 --- I couldn't specify wine version, because I've tested last 7 Wine releases and they all have this problem.
http://bugs.winehq.org/show_bug.cgi?id=22385
--- Comment #9 from Dmitry Timoshkov dmitry@codeweavers.com 2010-04-17 05:12:39 --- (In reply to comment #8)
I couldn't specify wine version, because I've tested last 7 Wine releases and they all have this problem.
At least reporting that, along with last tested version is enough.