Patches needed to successfully cross compile winetest.exe on Gentoo

w32api-3.9.patches.tar.bz2

Patches that will allow mingw to succesfully cross compile Wine's regression tests with mingw on a non windows host.

Running ./configure; make crosstest; will result in missing library and undefined symbol errors if these patches are not applied to the win32api package.

The source for these patches is from Sefan Leichter and Hans Leidekker at his MinGW RPM patches page. I've changed the suffixes on some patches to better describe the order they are applied in. This lets gentoo automatically apply them in the correct order. Other than slight name changes all I've done is extract them from the RPM and put them in tar.bz2 format

Update 7/20/2007: Han's updated his RPM so now this tarball and his RPM contain th same patchset.

Each time this tarball is updated you'll need to reemerge whatever package w32api package crossdev setup for you. In my case it's cross-i386-mingw32/w32api. So to summarize:

  1. Remove the cached portage file: #rm /usr/portage/distfiles/w32api-3.9-patches.tar.bz2
  2. Remove the Manifest of the ebuild so it will download the tarball again: #rm "${PORTAGE_OVERLAY}"/dev-util/w32api/Manifest
  3. Download and create a digest of the updated tarball: #ebuild "${PORTAGE_OVERLAY}"/dev-util/w32api/w32api-3.9-r9.ebuild digest
  4. Re-emerge the w32api package crossdev setup for you: #emerge --oneshot cross-i386-mingw32/w32api
w32api-3.9-r9.ebuild

This ebuild is a modified version of the w32api-3.9.ebuild. It is modfied to apply the patches from the above file. Gave it a high revision number to avoid conflicts. This ebuild has been tested on amd64 and x86.

include_wine_port.h.patch

This patch fixes the error: array has incomplete element type. on line 279 of include/wine/port.h. I encountered this error when trying to build winetest.exe. I am thinking it is due to gcc4's new strictness. This patch made it into wine on 7/15/2007, woohoo! =)

w32api_lib_gdiplus_def.patch

This patch adds the needed headers to w32api to allow the new gdiplus test to compile. Based on the gdiplus.spec file.

w32api_lib_mshtml_uuid_c11.patch

Adds some more uuids for testing goodness

w32api_lib_msi_def03.patch

Lets the msi tests keep on buildin'.

w32api_lib_pdh_def01.patch

New dll, new lib

binutils-windres-64bit-compatible.patch

This patch applies against binutils 2.17 and allows windres to work on 64bit machines. There is a better patch in binutils cvs right now from Tietz but it doesnt apply easily to the 2.17 release so I had to write this in order to get this working. When 2.18 comes out you won't need this anymore.

binutils-2.17-r9.ebuild

An ebuild to apply the windres patch from above. High revision number to avoid conflicts.

spec2def.pl

A small script to do the most tedious part of the spec file to def file conversion for you. Hopefully makes it a bit simpler to keep things running testing wise with mingw. Only handles the basic spec file format.

inkobj.c

Stubs of DllRegisterServer DllUnregisterServer DllMain DllGetClassObject DllCanUnloadNow

inkobj.spec

Small spec file of all of the exported functions in inkobj.dll according to the psdk program depends

Makefile.in

Makefile.in to generate the makefile needed to build inkobj.dlli. I also have modified the appropriate files to allow a "make" command from wine-git root directory to build inkobj.dll I just haven't made patches for them yet.

msinkaut.idl

IDL file that generates the headers for inkobj.dll. This file was rewritten based on the OLE/COM object viewer's generated IDL file.