https://bugs.winehq.org/show_bug.cgi?id=49381
Bug ID: 49381 Summary: Building wine from source on 32 bit Slackware Linux fails since 5.10. Product: Wine Version: 5.10 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs@winehq.org Reporter: studiosg@giustetti.net Distribution: ---
Created attachment 67441 --> https://bugs.winehq.org/attachment.cgi?id=67441 Archive containing the configure, make dep and make output in 2 files
The issue arises while building Wine 5.10 on 32 bit Slackware. Both Slackware 14.2 stable and current (15.0 beta) are affected while The 64 bit version builds just fine.
The build procedure exits badly while linking ntdll.so, returning errors like: /usr/bin/ld: unix/server.o: in function `remove_fd_from_cache': server.c:(.text+0x29d): undefined reference to `InterlockedCompareExchange64' /usr/bin/ld: unix/server.o: in function `add_fd_to_cache': server.c:(.text+0x60f): undefined reference to `InterlockedCompareExchange64'
The output of the configure, make dep and make command is included into the attached archive. They refer to the 14.2 current environment.
Thanks Simone
https://bugs.winehq.org/show_bug.cgi?id=49381
--- Comment #1 from Rafał Mużyło galtgendo@o2.pl --- I'm not sure where to start, so in random order:
1. '-march=i486 -mtune=i686' is not all that sane 2. most of the time, for programs using autotools as their build system in case of a build failure including config.log is a good idea
3. what you've found might both be and not be a valid bug - as in: it shouldn't happen, but to make it happen you need to go in with a broken build environment
Going by wine headers, you're most likely hitting either _WIN64 or __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 condition. First should obviously off for any 32bit build for *anyone* building wine, the other depends on the compiler...
...having googled that part, I'd say there are hints pointing back to point 1.
config.log *might* help with figuring out the source of such confusion. Additional info about your build environment might help too.
https://bugs.winehq.org/show_bug.cgi?id=49381
--- Comment #2 from studiosg@giustetti.net --- Thank you for your help and time.
I followed your suggestion and changed '-march=i486 -mtune=i686' into '-march=i486 -mtune=i486'. Sadly to no avail. I attached an archive containing the config.log file together with the output of the configure and make commands.
My build environment consists of a 32 bit Slackware OS installed on a 64 bit AMD laptop. I usually chroot to the 32 bit partition in order to build and test software (Wine, TDE, Iscan, ...). System software versions: * Kernel: 5.4.42 * Glibc: 2.30 * Gcc: 9.3.0 * Automake: 1.16.2 * Make: 4.2.1
My other build environment consists of a 32 bit virtual machine running an older, stable 32 bit Slackware release. Do you need the same files from that one too ?
Thanks Simone
https://bugs.winehq.org/show_bug.cgi?id=49381
--- Comment #3 from studiosg@giustetti.net --- Created attachment 67471 --> https://bugs.winehq.org/attachment.cgi?id=67471 config.log + output of the configure and make commands from last build attempt
https://bugs.winehq.org/show_bug.cgi?id=49381
--- Comment #4 from Rafał Mużyło galtgendo@o2.pl --- ...:sigh:...
I wonder if you misunderstood it on purpose or just by chance.
So, I've checked gcc.
__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 is not defined for '-march=i486'
By "'-march=i486 -mtune=i686' is not all that sane", I was referring to '-march=i486' part. While this might sort of be a valid bug, at the same time going lower than i686 makes no sense.
https://bugs.winehq.org/show_bug.cgi?id=49381
--- Comment #5 from studiosg@giustetti.net --- Hello,
I prefer not to make mistakes on purpose. It's usually a waste of time. I understood the __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 should be off. My mistake.
Anyway I tried building with '-march=i686 -mtune=i686' and that works fine. Thanks for your help.
Have a nice day Simone
https://bugs.winehq.org/show_bug.cgi?id=49381
Nathan Bennett version2013@protonmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |version2013@protonmail.com
--- Comment #6 from Nathan Bennett version2013@protonmail.com --- I had a similar wine build error with wine-5.10
I am guessing this commit was the fix put into wine-5.11 that allowed my build to finish successfully. https://source.winehq.org/git/wine.git/commit/0c14b1a962573ee125940f2008c646...
My build of wine-5.16 failed with a similar error as wine-5.10 wine-5.16 error: unix/server.o: In function `add_fd_to_cache': server.c:(.text+0x527): undefined reference to `RtlInterlockedCompareExchange64' unix/server.o: In function `remove_fd_from_cache': server.c:(.text+0xea9): undefined reference to `RtlInterlockedCompareExchange64' unix/server.o: In function `server_get_unix_fd': server.c:(.text+0x1257): undefined reference to `RtlInterlockedCompareExchange64' server.c:(.text+0x1392): undefined reference to `RtlInterlockedCompareExchange64'
Changing "-march=i486 -mtune=i686" to "-march=i686 -mtune=i686" allowed the wine-5.16 build to finish successfully.
Thank you.
https://bugs.winehq.org/show_bug.cgi?id=49381
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID Component|ntdll |-unknown
--- Comment #7 from Ken Sharp imwellcushtymelike@gmail.com --- Invalid then.
https://bugs.winehq.org/show_bug.cgi?id=49381
--- Comment #8 from Austin English austinenglish@gmail.com --- Closing.
https://bugs.winehq.org/show_bug.cgi?id=49381
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #9 from Austin English austinenglish@gmail.com --- Actually closing.