https://bugs.winehq.org/show_bug.cgi?id=38616
Bug ID: 38616 Summary: Wine 1.7.43 (32-bit) cannot be built by GCC 4.3.2 with -O3 flag. Product: Wine Version: 1.7.43 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs@winehq.org Reporter: kol@MV8660.spb.edu Distribution: ---
Created attachment 51516 --> https://bugs.winehq.org/attachment.cgi?id=51516 GCC error message
GCC 4.3.2 with the optimization flag -O3 (and also -O2 or -O1) cannot compile 32-bit Wine 1.7.43. An error is occured in "dlls/ntdll/server.c":
server.c: In function 'server_get_unix_fd': server.c:971: error: unable to find a register to spill in class 'GENERAL_REGS'.
The full text of the error message is in the attachment. This is not an issue for Wine 1.7.42 and I found that the regression is caused by the commit
commit 40c912b4bef45099d465ddb9a7cb16f33ec4ed3c Author:: Sebastian Lackner sebastian@fds-team.de Date: Thu, 30 Apr 2015 04:22:53 +0200
ntdll: Use lockfree implementation for get_cached_fd.
If the optimization level is set to -O0 only for "dlls/ntdll/server.c" (by manual editing of "dlls/ntdll/Makefile"), the process of compilation completes successfully. Optimization flags other than -O do not affect the result.
GCC version is 4.3.2 (my system is Fedora 10). Wine is configured with CFLAGS="-mtune=amdfam10 -march=amdfam10 -mfpmath=sse -O3 -ffast-math -msse3 -funroll-all-loops".
https://bugs.winehq.org/show_bug.cgi?id=38616
--- Comment #1 from Ken Thomases ken@codeweavers.com --- This bug should be filed against GCC, although they will probably want you to upgrade to the latest version and try again (in case it was already fixed).
This line from your attachment:
Preprocessed source stored into /tmp/ccPIMOdr.out file, please attach this to your bugreport.
is coming from GCC and is suggesting that you need to include that file with your bug report to the GCC project.
https://bugs.winehq.org/show_bug.cgi?id=38616
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sebastian@fds-team.de
https://bugs.winehq.org/show_bug.cgi?id=38616
--- Comment #2 from Sebastian Lackner sebastian@fds-team.de --- I cannot reproduce this bug, so its probably already fixed in newer gcc versions. Tested with:
$ gcc --version gcc (GCC) 4.9.2 20150304 (prerelease)
https://bugs.winehq.org/show_bug.cgi?id=38616
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED
--- Comment #3 from Austin English austinenglish@gmail.com --- (In reply to Sebastian Lackner from comment #2)
I cannot reproduce this bug, so its probably already fixed in newer gcc versions. Tested with:
$ gcc --version gcc (GCC) 4.9.2 20150304 (prerelease)
UPSTREAM.
https://bugs.winehq.org/show_bug.cgi?id=38616
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED Resolution|FIXED |UPSTREAM
--- Comment #4 from Austin English austinenglish@gmail.com --- *UPSTREAM.
Closing, as it's fixed in newer GCC.