[Bug 51926] New: Cannot build wine 6.20 on Slackware Linux 14.2
https://bugs.winehq.org/show_bug.cgi?id=51926 Bug ID: 51926 Summary: Cannot build wine 6.20 on Slackware Linux 14.2 Product: Packaging Version: unspecified Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-packages Assignee: wine-bugs(a)winehq.org Reporter: studiosg(a)giustetti.net CC: dimesio(a)earthlink.net Distribution: --- Created attachment 70894 --> https://bugs.winehq.org/attachment.cgi?id=70894 Output of the configure and make commands I'm trying to package Wine 6.20 for Slackware 14.2 (Stable). Glibc version is 2.23. Gcc version is 5.5. Both the 32 and 64 bit versions are affected. No such problem when building release 6.19. The build process fails rather soon when compiling file dlls/ntdll/unix/loader.c. From what I understand, the issue is related to the __WAIT_INT (status) macro defined in header file /usr/include/sys/wait.h (Part of glibc). The macro is expanded into: __WAIT_INT (status): (__extension__ (((union { __typeof(status) ; int __i; }) { . = (status) }).__i)) but the compiler does not recognize it as a valid declaration and issues a warning resulting in the error reported in the attached wine_make.log file. The output from the configure command is included in the second attached file: wine_configure.log Any help is appreciated. Thanks in advance Simone -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 studiosg(a)giustetti.net changed: What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |Slackware -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 Rosanne DiMesio <dimesio(a)earthlink.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|wine-packages |-unknown Version|unspecified |6.20 Product|Packaging |Wine -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 --- Comment #1 from Ken Sharp <imwellcushtymelike(a)gmail.com> --- GCC 5.5 is very old. Upgrade and try again. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 Zebediah Figura <z.figura12(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC|dimesio(a)earthlink.net |z.figura12(a)gmail.com --- Comment #2 from Zebediah Figura <z.figura12(a)gmail.com> --- (In reply to Ken Sharp from comment #1)
GCC 5.5 is very old. Upgrade and try again.
There's no call for that. We should at least try to support older versions. I'm trying to figure out exactly what's broken, but I can't seem to reproduce it with a standalone example... -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 --- Comment #3 from Zebediah Figura <z.figura12(a)gmail.com> --- If I just copy a bunch of definitions from old glibc's wait.h and reproduce our statement, I don't get any error: https://gcc.godbolt.org/z/3WG4r7d7r So there must be something else going on... -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 --- Comment #4 from studiosg(a)giustetti.net --- Thanks for the feedback Zebediah, I added a couple of #pragma directives to your example and can confirm that the problem only arises when building release 6.20. In your test and in wine <= 6.19 definitions are expanded as follows: Your Test / wine 6.19 The value of WIFEXITED(status): ((((__extension__ (((union { __typeof(status) __in; int __i; }) { .__in = (status) }).__i))) & 0x7f) == 0) The value of __WAIT_INT (status): (__extension__ (((union { __typeof(status) __in; int __i; }) { .__in = (status) }).__i)) While in Wine 6.20 they are expanded in: The value of WIFEXITED(status): ((((__extension__ (((union { __typeof(status) ; int __i; }) { . = (status) }).__i))) & 0x7f) == 0) The value of __WAIT_INT (status): (__extension__ (((union { __typeof(status) ; int __i; }) { . = (status) }).__i)) Please note the missing "__in"s. As far as I can tell, both "__in"s are replaced by an empty string (Lenght 0) resulting in a wrong definition and a syntax error. Adding line of code: #undef __in before the "start_server" function definition solves the problem for loader.c, but the very same error arises again later on when compiling process.c. __in is defined in "include/sal.h", line 347: #define __in This presented no problem before Wine 6.20. As far as I can tell the header is included where it should not, but I wasn't able to determine where so far. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 Zebediah Figura <z.figura12(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Regression SHA1| |d4259ac8e9326a8173d6f83f0d5 | |25c97b90a1da0 Status|UNCONFIRMED |NEW Summary|Cannot build wine 6.20 on |Wine fails to build with |Slackware Linux 14.2 |glibc headers < 2.24 Keywords| |regression --- Comment #5 from Zebediah Figura <z.figura12(a)gmail.com> --- Nice find. Those are static analyzer macros, which are littered throughout Microsoft's headers (e.g. denoting parameter values as input or output), and as a result they need to be included pretty much everywhere. Unfortunately they conflict with the C namespace... I think the best solution is to #undef after including the headers. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 Zebediah Figura <z.figura12(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |version2013(a)protonmail.com --- Comment #6 from Zebediah Figura <z.figura12(a)gmail.com> --- *** Bug 51940 has been marked as a duplicate of this bug. *** -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 --- Comment #7 from Zebediah Figura <z.figura12(a)gmail.com> --- *** Bug 51942 has been marked as a duplicate of this bug. *** -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 --- Comment #8 from Zebediah Figura <z.figura12(a)gmail.com> --- Created attachment 70944 --> https://bugs.winehq.org/attachment.cgi?id=70944 #undef Can you please test the attached patch? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 --- Comment #9 from studiosg(a)giustetti.net --- Created attachment 70947 --> https://bugs.winehq.org/attachment.cgi?id=70947 Archive containing a bunch of patches for various files -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 --- Comment #10 from studiosg(a)giustetti.net --- The patch works for loader.c. To achieve a full build I had to patch some other files in the same way: ./dlls/netapi32/unixlib.c ./dlls/ntdll/unix/loader.c ./dlls/ntdll/unix/process.c ./dlls/winspool.drv/info.c ./server/ptrace.c ./server/request.c ./tools/tools.h Attached you'll find an archive containing all of the resulting patches. Tomorrow I'll try to merge them into a single one and perform an unattended full build to check if the resulting packages works. I'll let you know. Thanks again have a nice day Simone -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 --- Comment #11 from studiosg(a)giustetti.net --- I managed to build a working 32 bit package applying the submitted patch set. I tested a simple program like 7Zip and it worked flawlessly. Files included in 6.20 match the list for 6.19. I still have to try building and testing a 64 bit version, but so far everything seems fine. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 --- Comment #12 from Zebediah Figura <z.figura12(a)gmail.com> --- Should be fixed upstream by <https://source.winehq.org/git/wine.git/commitdiff/1c9b843ecf821d3caf43668c43bf0280c793b25d>; please retest. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 Olivier F. R. Dierick <o.dierick(a)piezo-forte.be> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |o.dierick(a)piezo-forte.be --- Comment #13 from Olivier F. R. Dierick <o.dierick(a)piezo-forte.be> --- (In reply to Zebediah Figura from comment #12)
Should be fixed upstream by <https://source.winehq.org/git/wine.git/commitdiff/ 1c9b843ecf821d3caf43668c43bf0280c793b25d>; please retest.
Hello, Also affects Debian 8 Jessie with GCC 4.9.2. The commit above fixes the issue. Regards. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 --- Comment #14 from studiosg(a)giustetti.net --- The cited commit fixes the issue for Slackware 14.2 with Gcc 5.5. Thanks for the fix and support. Have a nice day Simone -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 Gijs Vermeulen <gijsvrm(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED Fixed by SHA1| |1c9b843ecf821d3caf43668c43b | |f0280c793b25d --- Comment #15 from Gijs Vermeulen <gijsvrm(a)gmail.com> --- Marking FIXED. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=51926 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #16 from Alexandre Julliard <julliard(a)winehq.org> --- Closing bugs fixed in 6.21. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla