FS#28002 - [multilib] Many gcc multilib packages break Wine dsound.
Attached to Project:
Arch Linux
Opened by Xavier Vachon (xvachon) - Thursday, 19 January 2012, 18:21 GMT
Last edited by Florian Pritz (bluewind) - Monday, 13 February 2012, 14:53 GMT
Opened by Xavier Vachon (xvachon) - Thursday, 19 January 2012, 18:21 GMT
Last edited by Florian Pritz (bluewind) - Monday, 13 February 2012, 14:53 GMT
|
Details
Description:
A bug report was originally filled on the Wine bugzilla about the problem : http://bugs.winehq.org/show_bug.cgi?id=29431 . However, after some discussions with a Wine dev who works on the problematic component (in the bug report : Andrew Eikum), it is not clear if the problem originates from the Arch multilib packages or from issues in Wine Dsound. Please read the Wine bug report for details. I am opening this bug report here to generate brainstorming on the Arch side. Additional info: The current work around is to use these package versions and prevent them from upgrading, and then recompile Wine from source : binutils-multilib 2.22-4 gcc-libs-multilib 4.6.2-1 gcc-multilib 4.6.2-1 lib32-gcc-libs 4.6.2-1 lib32-glib2 2.30.2-1 libtool-multilib 2.4.2-2 |
This task depends upon
Closed by Florian Pritz (bluewind)
Monday, 13 February 2012, 14:53 GMT
Reason for closing: Not a bug
Monday, 13 February 2012, 14:53 GMT
Reason for closing: Not a bug
lib32-gcc-libs
gcc-libs-multilib
gcc-multilib
The broken behavior appeared when I upgraded those packages from 4.6.2-1 to 4.6.2-3. I suspect the SSE optimizations in this commit:
http://projects.archlinux.org/svntogit/community.git/commit/trunk?h=packages/gcc-multilib&id=61941732359f1319b2eada4288b0bba9bcfde564
but I haven't confirmed it.
A simple way to reproduce is with the Plants Vs Zombies demo, which will crash when you try to launch the installed program:
http://static-www.ec.popcap.com/binaries/popcap_downloads/PlantsVsZombiesSetup_20110729_2_2.exe
I recompiled gcc-multilib without the SSE stuff but I got the same results.
[2012-01-26 06:46] upgraded lib32-gcc-libs (4.6.2-5.1 -> 4.6.2-6)
[2012-01-26 06:46] upgraded gcc-libs-multilib (4.6.2-5.1 -> 4.6.2-6)
[2012-01-26 06:46] upgraded gcc-multilib (4.6.2-5.1 -> 4.6.2-6)
dit not solve the problem.
That bug says, "Recompile wine with the newest gcc-multilib, try to run a directsound game (StarCraft II). This is a stack alignment crash." And indeed, adding -mstackrealign to the dsound build flags fixes it.
export CC="/usr/bin/gcc -mstackrealign"
export CXX="/usr/bin/g++ -mstackrealign"
and kill the other mstackrealign fix if this works.
I think it would be fine to close this bug as a Duplicate of Bug 27560 (Wine breaks without -mstackrealign) or as Invalid (users must build with -mstackrealign, as documented by Arch's Wine PKGBUILD).
Jason: I found that's the best way to build. Then we don't lose default CFLAGS like -g -O2. Might be worth investigating the Arch PKGBUILD to ensure those default CFLAGS are still used.