Hi,
I posted a a few weeks ago about "Having problems (re-)building i686 wine staging rpm's on fedora" on 7.10. Since 7.11 is out, so I gave it a proper go again with all of fedora's shipping mingw32 packages. Long story short, I think I found the problems, so here they are, mainly two issues:
*- In wine's code, there are two directories, "dlls/gphoto2.ds/" and "dlls/windowscodecs/" which tries to build both unix-y bits and PE-y bits. And they have {TIFF,JPEG,...}_PE_CFLAGS feeding to both the unix-y and PE-y bits. I think this is a wine code bug - *_PE_CFLAGS should only be passed to the cross-compiler.
- first part of my work-around is simply to delete those lines from "dlls/gphoto2.ds/Makefile.in" "dlls/windowscodecs/Makefile.in" . Since fedora's mingw libjpeg, libtiff, etc are all found normally under its cross-compiler's mingw root without needing special flags.
*- "mingw32-pkg-config --cflags libjpeg " etc reports wrong settings at "-I/usr/include" (instead of mingw32 root) on fedora.
- 2nd part of my work-around is to explicitly set these (since ming32-pkg-config report wrong):
PNG_PE_CFLAGS=-I/usr/i686-w64-mingw32/sys-root/mingw/include/
LCMS2_PE_CFLAGS=-I/usr/i686-w64-mingw32/sys-root/mingw/include/
ZLIB_PE_CFLAGS=-I/usr/i686-w64-mingw32/sys-root/mingw/include/
JPEG_PE_CFLAGS=-I/usr/i686-w64-mingw32/sys-root/mingw/include/
TIFF_PE_CFLAGS=-I/usr/i686-w64-mingw32/sys-root/mingw/include/
XML2_PE_CFLAGS=-I/usr/i686-w64-mingw32/sys-root/mingw/include/libxml2/
XSLT_PE_CFLAGS=-I/usr/i686-w64-mingw32/sys-root/mingw/include/libxml2/
The combination of the two issues causes mingw msvcrt headers being used with the native compiler (straight-forward failure), and native glibc headers being used via *_PE_FLAGS="-I/usr/include" when cross-compiling, and have funny issues about time64 being the wrong type during configure, type of "boolean" conflicting, etc in a few places.
Anyway,
"dlls/gphoto2.ds/Makefile.in" "dlls/windowscodecs/Makefile.in" in wine should be updated to split unix-y and PE-y parts and only feed *_FE_CFLAGS to building the PE-y parts. This is a wine code bug needed fixing, I think.
Thanks for everybody working on wine all these years.
Regards,
Hin-Tak