Hi,
any pointers how to build a winetest.exe I can run on Windows?
All tests (but crypt32 and hlink) can be cross compiled (MinGW) but only give me the single test executable for that dll.
Cheers,
Paul.
Hi Paul,
On Friday 22 December 2006 15:38, Paul Vriens wrote:
any pointers how to build a winetest.exe I can run on Windows?
Try make inside programs/winetest/ directory.
However, winetest.exe has dependencies on all the DLL tests: to build the single winetest.exe executable, all the <dll>_test.exe executables must build correctly.
You say you're having difficulty with crypt32 and hlink DLL tests. To build winetest.exe, you must either fix building of these tests (the preferred option) or remove the winetest.exe dependency on these executables (not so good).
Try posting the problems with the crypt32 and hlink tests: it could be you need to patch you MinGW compiler to support extra functions.
HTH,
Paul.
PS. I'll have sporadic access to email for the next couple of weeks, but if you post the problems I'll try and catch up.
Paul Millar <paulm <at> astro.gla.ac.uk> writes:
Try posting the problems with the crypt32 and hlink tests: it could be you need to patch you MinGW compiler to support extra functions.
HTH,
Paul.
I too had problems trying to do make crosstest in crypt32 a time ago, this is what i get (link errors):
cert.cross.o: In function `testSignAndEncodeCert': /sda6/wine-git/dlls/crypt32/tests/cert.c:1094: undefined reference to `_CryptSignAndEncodeCertificate@36' /sda6/wine-git/dlls/crypt32/tests/cert.c:1098: undefined reference to `_CryptSignAndEncodeCertificate@36' /sda6/wine-git/dlls/crypt32/tests/cert.c:1102: undefined reference to `_CryptSignAndEncodeCertificate@36' /sda6/wine-git/dlls/crypt32/tests/cert.c:1106: undefined reference to `_CryptSignAndEncodeCertificate@36' /sda6/wine-git/dlls/crypt32/tests/cert.c:1114: undefined reference to `_CryptSignAndEncodeCertificate@36' cert.cross.o:/sda6/wine-git/dlls/crypt32/tests/cert.c:1119: more undefined references to `_CryptSignAndEncodeCertificate@36' follow cert.cross.o: In function `testAcquireCertPrivateKey': /sda6/wine-git/dlls/crypt32/tests/cert.c:1939: undefined reference to `_CryptImportPublicKeyInfo@16' cert.cross.o: In function `testGetPublicKeyLength': /sda6/wine-git/dlls/crypt32/tests/cert.c:2013: undefined reference to `_CertGetPublicKeyLength@8' /sda6/wine-git/dlls/crypt32/tests/cert.c:2018: undefined reference to `_CertGetPublicKeyLength@8' /sda6/wine-git/dlls/crypt32/tests/cert.c:2025: undefined reference to `_CertGetPublicKeyLength@8' /sda6/wine-git/dlls/crypt32/tests/cert.c:2030: undefined reference to `_CertGetPublicKeyLength@8' /sda6/wine-git/dlls/crypt32/tests/cert.c:2038: undefined reference to `_CertGetPublicKeyLength@8' cert.cross.o:/sda6/wine-git/dlls/crypt32/tests/cert.c:2043: more undefined references to `_CertGetPublicKeyLength@8' follow collect2: ld returned 1 exit status make: *** [crypt32_crosstest.exe] Error 1
On Sun, 2006-12-24 at 00:59 +0000, Paul Millar wrote:
Hi Paul,
On Friday 22 December 2006 15:38, Paul Vriens wrote:
any pointers how to build a winetest.exe I can run on Windows?
Try make inside programs/winetest/ directory.
However, winetest.exe has dependencies on all the DLL tests: to build the single winetest.exe executable, all the <dll>_test.exe executables must build correctly.
You say you're having difficulty with crypt32 and hlink DLL tests. To build winetest.exe, you must either fix building of these tests (the preferred option) or remove the winetest.exe dependency on these executables (not so good).
Try posting the problems with the crypt32 and hlink tests: it could be you need to patch you MinGW compiler to support extra functions.
HTH,
Paul.
PS. I'll have sporadic access to email for the next couple of weeks, but if you post the problems I'll try and catch up.
Doing a simple 'make clean' and 'make' only gives me a winetest.exe.so which is a 'ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped'.
Is there something I'm missing here?
Cheers,
Paul.
On Sunday 24 December 2006 09:37, Paul Vriens wrote:
Doing a simple 'make clean' and 'make' only gives me a winetest.exe.so which is a 'ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped'.
Is there something I'm missing here?
Sorry, what I said was a bit incomplete (and a bit misleading). WRT does cross-builds using out-of-tree builds. There's also a way of doing in-tree cross-building, but I don't use it myself.
For the out-of-tree builds, the directories are something like: wine-source/ wine-native/ wine-pe/
Within the wine-native directory, I do something like: ../wine-source/configure && make depend \ && make tools
Within the wine-pe directory, I do something like: ../wine-source/configure --host=i686-mingw32msvc --with-wine-tools=../wine-native make depends && make -C libs [and, the following line, with a big fat FIXME] find dlls -name tests -execdir make -C {} ; make -C programs/winetest winetest.exe
I think just "make" in the wine-pe/programs/winetest directory (instead of "make winetest.exe") should work within wine-pe dir. For in-tree builds you probably need to use the explicit "winetest.exe" target.
There is also the "winetest-dist.exe" target that embeds some metadata within the winetest executable. You shouldn't needed this target unless you're planning on uploading your results to the test.winehq.org pages.
On Monday 25 December 2006 10:22, Paul Vriens wrote:
cert.cross.o:cert.c:(.text+0x3b05): undefined reference to `_CryptSignAndEncodeCertificate@36' cert.cross.o:cert.c:(.text+0x3bb8):
[...]
[..]/i386-mingw32/bin/ld: cannot find -lhlink collect2: ld returned 1 exit status
[...]
Yes, you need a "newer" MinGW with CryptSignAndEncodeCertificate and hlink library support.
Stefan (Leichter), Hans (Leidekker) and myself keep a mutual set of win32api patches up-to-date (this is mostly their work, not mine!). So, I have some patches that add support for these functions
For historical reasons, I roll my own MinGW rather than use Hans' RPMs. Hmm, I need to release the MinGW-build script and the set of patches (I can send you them if you like :) but in the mean time perhaps you could ask Hans to check his RPMs :-)
On Wednesday 27 December 2006 19:23, Paul Vriens wrote:
When I look at the output on http://quisquiliae.ph.gla.ac.uk/crossbuild-logs/ I somehow have the feeling that you've modified the makefiles?
I used to apply some patches on-the-fly, but don't any more. I use straight winehq.org source-code now.
In you're (failing) logs I see 'i686-mingw32msvc-windres -i winetest.res -o winetest.res.o' whereas mine show 'false -i winetest.res -o winetest.res.o'.
Ah! "false" (as an executable) usually indicates that the configure script failed to find some executable. Here, it looks like it failed to find the windres executable. You should track down why this is happening.
So for some strange (?) reason you have WINDRES=i686-mingw32msvc-windres in you're Makefile whereas my Makefile shows 'WINDRES=false'.
./configure in the wine root shows that WINDRES is not found but CROSSWINDRES='i386-mingw32-windres'.
Any idea?
Yes, it looks like the configure script can't find your MinGW windres executable. You'll also need a "newer" MinGW or rather, one with a more complete win32api. Once those two are fixed, you should be good to go!
HTH,
Paul.