guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Building Wine with MinGW cross-compilation


From: Rutger Helling
Subject: Building Wine with MinGW cross-compilation
Date: Sat, 03 Aug 2019 15:08:57 +0200

Hello Guix,

in recent versions Wine (Wine-Staging in our case) gained the ability to build modules as PE files for better compatibility. I've been trying to get this working and was wondering if someone more familiar with cross-compilation knows what's going wrong with the compilation.

First I tried adding mingw-w64 to the native-inputs. This results in a configure error: "C compiler cannot create executables". See wine-patch1.patch for the patch and wine-patch1-config.log for the configuration log.

I've had a little more success with adding MinGW triplets of cross-gcc and cross-binutils to native-inputs. See wine-patch2.patch and wine-patch2-config.log.
The configure phase does work this time and MinGW cross-compilation seems to be recognized. However during compiling eventually I get a failure regarding #include_next and stdarg.h:

---
In file included from data_formats.c:23:0:
/gnu/store/fhsaq7gzg7gkkg0wyix6w1nm96fhs7bh-gcc-cross-sans-libc-i686-w64-mingw32-7.4.0/lib/gcc/i686-w64-mingw32/7.4.0/include/stdarg.h:1:15: fatal error: stdarg.h: No such file or directory
#include_next <stdarg.h>
^~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:227: data_formats.cross.o] Error 1
make[1]: Leaving directory '/tmp/guix-build-wine-staging-4.13.drv-0/wine-4.13/dlls/dinput'
make: *** [Makefile:3209: dlls/dinput/libdinput.cross.a] Error 2
make: *** Waiting for unfinished jobs....
i686-w64-mingw32-gcc -c -o adsiid.cross.o adsiid.c -I. -I../../include -D__WINESRC__ -DWINE_CROSS_PE -Wall -g -O2
In file included from adsiid.c:21:0:
/gnu/store/fhsaq7gzg7gkkg0wyix6w1nm96fhs7bh-gcc-cross-sans-libc-i686-w64-mingw32-7.4.0/lib/gcc/i686-w64-mingw32/7.4.0/include/stdarg.h:1:15: fatal error: stdarg.h: No such file or directory
#include_next <stdarg.h>
^~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:176: adsiid.cross.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/tmp/guix-build-wine-staging-4.13.drv-0/wine-4.13/dlls/adsiid'
make: *** [Makefile:8515: dlls/adsiid] Error 2
---

If I add cross-libc it just seems to add mingw-w64 again and I get the same error about the C compiler not being able to create executables.

Does anyone have any ideas on how to fix this?

Attachment: logs-patches.zip
Description: Zip archive


reply via email to

[Prev in Thread] Current Thread [Next in Thread]