Am 26.06.2016 um 17:31 schrieb André Hentschel:
Am 24.04.2016 um 21:12 schrieb Francois Gouget:
I have added binaries compiled with my MinGW with -O2 and -O0, and compiled with the TestBot compiler. I also added assembly files and compiler version information. All of this is available at:
http://fgouget.free.fr/tmp/dinput8-dinput.tar.xz
For immediate reference: My compiler is the Debian Testing compiler (buggy): $ i686-w64-mingw32-gcc --version i686-w64-mingw32-gcc (GCC) 5.3.1 20160205 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The TestBot compiler is the Debian 7.4 compiler (not buggy): $ i686-w64-mingw32-gcc --version i686-w64-mingw32-gcc (GCC) 4.6.3 Copyright (C) 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
And the WineTest.exe binary is compiled with the Debian 8 compiler which is presumably close to the current Debian Testing one.
What happens if we compile it using Clang? (totally easy to do so by using wclang [1] to generate a wrapper around clang and mingw-w64) Or for me to try it, what's the best way to verify? does it depend on the wine version somewhat?
I noticed that my mingw-w64 has the same issue, so it was easy to try it out and it works! Could someone install wclang on that machine and make wine using it please?
It's as easy as running configure like: ./configure CROSSCC=i686-w64-mingw32-clang ... or ./configure --host=i686-w64-mingw32 CC=i686-w64-mingw32-clang host_alias=i686-w64-mingw32 ...
I compiled with (just exchanged i686-w64-mingw32-gcc with i686-w64-mingw32-clang): i686-w64-mingw32-clang -c -o device.cross.o ../../../../dlls/dinput8/tests/device.c -I. -I../../../../dlls/dinput8/tests \ -I../../../include -I../../../../include -D__WINESRC__ -DWINE_CROSSTEST -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 i686-w64-mingw32-clang -c -o dinput.cross.o ../../../../dlls/dinput8/tests/dinput.c -I. -I../../../../dlls/dinput8/tests \ -I../../../include -I../../../../include -D__WINESRC__ -DWINE_CROSSTEST -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 i686-w64-mingw32-clang -c -o testlist.cross.o testlist.c -I. -I../../../../dlls/dinput8/tests -I../../../include \ -I../../../../include -D__WINESRC__ -DWINE_CROSSTEST -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 ../../../tools/winegcc/winegcc -o dinput8_crosstest.exe -b i686-w64-mingw32 -B../../../tools/winebuild \ --lib-suffix=.cross.a device.cross.o dinput.cross.o testlist.cross.o \ ../../../dlls/dinput8/libdinput8.cross.a ../../../dlls/ole32/libole32.cross.a \ ../../../dlls/user32/libuser32.cross.a ../../../dlls/advapi32/libadvapi32.cross.a