https://bugs.winehq.org/show_bug.cgi?id=40384
Bug ID: 40384 Summary: dinput8:dinput regression caused by new compiler Product: Wine Version: 1.9.6 Hardware: x86 OS: Windows Status: NEW Severity: normal Priority: P2 Component: directx-dinput Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com
The WineHQ upgrade changed the cross-compiler used to generate the reference WineTest executables. Since the upgrade the dinput8:dinput test has these failures on all 32 bit Windows platforms:
dinput.c:519: Test failed: EnumDevicesBySemantics did not call the callback hr=80070057 dinput.c:520: Test failed: EnumDevicesBySemantics should enumerate the keyboard dinput.c:521: Test failed: EnumDevicesBySemantics should enumerate the mouse dinput.c:527: Test failed: EnumDevicesBySemantics failed hr=80070057 dinput.c:535: Test failed: EnumDevicesBySemantics failed hr=80070057 dinput.c:536: Test failed: There should be devices available before action mapping available=0 dinput.c:543: Test failed: EnumDevicesBySemantics failed: hr=80070057 dinput.c:548: Test failed: EnumDevicesBySemantics failed hr=80070057 dinput.c:554: Test failed: EnumDevicesBySemantics failed: hr=80070057 dinput.c:559: Test failed: EnumDevicesBySemantics failed hr=80070057 dinput.c:565: Test failed: EnumDevicesBySemantics failed hr=80070057 dinput.c:571: Test failed: EnumDevicesBySemantics failed hr=80070057 dinput.c:577: Test failed: EnumDevicesBySemantics failed hr=80070057
See: https://test.winehq.org/data/tests/dinput8:dinput.html https://www.winehq.org/pipermail/wine-devel/2016-March/112371.html
I can reproduce the problem with this compiler: $ i686-w64-mingw32-gcc --version i686-w64-mingw32-gcc (GCC) 5.3.1 20160205
But if I recompile the tests with -O0 the failures go away which points to a compiler bug. We need to either: * Switch to a non buggy compiler to build the reference WineTest executables. (which might involve reporting the bug in the first place)
* Add 'CFLAGS = -g -O0' to the test's Makefile.in as a workaround. (preferably once we can point to a relevant compiler bug)
* Find some other nicer workaround in the C file.