Community Packages

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#33527 - wine buildscript: remove extra make arguments since issue is solved upstream

Attached to Project: Community Packages
Opened by Joakim Hernberg (jhernberg) - Wednesday, 23 January 2013, 16:54 GMT
Last edited by Sven-Hendrik Haase (Svenstaro) - Monday, 04 February 2013, 12:03 GMT
Task Type General Gripe
Category Packages
Status Closed
Assigned To Florian Pritz (bluewind)
Sven-Hendrik Haase (Svenstaro)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Please remove the following from the wine build scripts, since it's been fixed upstream, see: http://source.winehq.org/git/wine.git/commit/4adfb787f4e8c36a37ce1d53a7e6df16d03ecd8a

# These additional CFLAGS solve  FS#27560  and  FS#23277 
make CFLAGS+="-mstackrealign -mincoming-stack-boundary=2" CXXFLAGS+="-mstackrealign -mincoming-stack-boundary=2"
This task depends upon

Closed by  Sven-Hendrik Haase (Svenstaro)
Monday, 04 February 2013, 12:03 GMT
Reason for closing:  Fixed
Additional comments about closing:  This is removed in svn. I tested against software known to be affected by this bug (Teamviewer) and it does indeed seem fine either way. If stuff strangely crashes after this, look at this bug again.
Comment by Sven-Hendrik Haase (Svenstaro) - Thursday, 31 January 2013, 10:27 GMT
Doesn't this only do the realignment but we also need to set the expected incoming stack boundary which wine doesn't seem to have fixed.
Comment by Joakim Hernberg (jhernberg) - Saturday, 02 February 2013, 14:27 GMT
I am far from an expert on GCC and ABI formats. The problem as I understand it occurred when gcc changed the default stack alignment of 32bit code from 4 to 16 bytes. The "right" solution would have been to override gcc's new default and continue building all (system wide) 32bit code with 4 byte stack alignment. Another solution would have been to build all 32bit system libs containing SSE instructions with -mincoming-stack-boundary=2.

Since it was impossible to get all distros to do this right, the wine project decided to add the force_align_arg_pointer attribute to all external function calls (only slightly better than using -mstackrealign), which adds prologue and epilogue code to each external function call, making sure that the stack is correctly aligned at the cost of extra overhead.

Using -mincoming-stack-boundary=2 when building wine doesn't accomplish anything according to upstream, still waiting for a more complete explanation. It would only be useful if win32 programs called wine functions containing SSE instructions directly.

Loading...