WineHQ upgrade breaking dinput8:dinput?

Bernhard Übelacker bernhardu at mailbox.org
Tue Jul 26 19:36:30 CDT 2016


Hello Francois,
"DirectX Software Development Kit" offers in
"DirectX Control Panel" to increase the
"Debug Output Level".

That way one can get another hint from dinput:
DINPUT8: ERROR IDirectInput8::EnumDevicesBySemantics: arg 2: invalid UNICODE string 

First I tried to build a dinput8.dll that just dumps the
data it gets from dinput-mini.exe, but could not
find any difference.

So I did some tests with DIACTIONA.lptszActionName member.

When the two last characters get replaced by \0 no fault
is reported anymore.
That way a succeeding exe and the failing differ (nearly)
just in the two replaced bytes in lptszActionName.

Therefore can we assume that it is not the compilers
fault, instead it uncovered a hidden bug either in
the test or dinput?

Kind regards,
Bernhard



dinput.c:
-  { 4, DIMOUSE_YAXIS,                               0, { "Y Axis" }  }
+  { 4, DIMOUSE_YAXIS,                               0, { "Y Ax\0\0" }  }



Am 17.07.2016 um 21:02 schrieb Bernhard Übelacker:
> Hello,
> just tried to find out when this started exactly.
> 
> 
> First by using old packages from snapshot.debian.org.
> That revealed it started between packages:
>   gcc-mingw-w64-i686_4.6.4-4+9_i386.deb
>   gcc-mingw-w64-i686_4.8.2-5+10_i386.deb
> 
> 
> A git bisect of gcc history points to this commit:
> https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ff2a5adaa72fef87cac689a40c23258a30b304c8
> 
> 
> ff2a5adaa72fef87cac689a40c23258a30b304c8 is the first bad commit
> commit ff2a5adaa72fef87cac689a40c23258a30b304c8
> Author: hubicka <hubicka at 138bc75d-0d04-0410-961f-82ee72b054a4>
> Date:   Sun Apr 22 21:28:07 2012 +0000
> 
>         * lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags.
> (...much longer commit message...)    
>     
>     git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186687 138bc75d-0d04-0410-961f-82ee72b054a4
> 
> :040000 040000 d706bdeafbddb9f5f02474e39a245dca08f3334a 508082a31919fe9e907f70b3b3278d4f8d953fac M      gcc
> 
> 
> 
> Testbot runs:
> Good: (gcc 62c34bf, last one before ff2a5ad)
>   https://testbot.winehq.org/JobDetails.pl?Key=24283
> Bad:  (gcc ff2a5ad)
>   https://testbot.winehq.org/JobDetails.pl?Key=24280
> 
> 
> 
> Hope this could be of any help to identify the issue.
> 
> 
> Kind regards,
> Bernhard
> 
> 
> Notes:
> - Did not install gcc build system wide. Instead set the PATH
>   that i686-w64-mingw32-gcc was taken from there.
> - Initial wine configure step was done using Jessie default
>   gcc-mingw-w64-i686 4.9.1-19+14.3.
>   Then the iterations were just done by removing objects
>   from dlls/dinput8/tests and make dinput8_crosstest.exe.
> - GCC history before 1e37e371 did segfault while building,
>   therefore started from there.
> 
> 
> 
> 
> Am 24.04.2016 um 20:30 schrieb Francois Gouget:
>>
>> I have rechecked this to make sure the test does not have a subtle bug 
>> that causes it to depend on the stack layout.
>>
>>
>> In the process I have reduced the test to the minimum set necessary to 
>> reproduce the bug (see attachment). But in the end I did not find 
>> anything wrong so it does look like a compiler bug.
>>
>> I don't know how to proceed from there.
>>
>> * I think it would be better if someone more knowlegeable than me 
>>   reported this bug to the MinGW guys. Maybe someone who could undertand 
>>   what happens in the assembly code?
>>
>> * On the Wine side it would really be nice to get this test (and 
>>   the three others that are impacted) to stop failing. But removing all 
>>   the static directives really does not feel right. Would it be better 
>>   to arrange for these tests to be compiled with -O0? Any other cleaner 
>>   workaround.
>>
>> So I'm really hoping someone can step up and move this forward.
>>
>>
>> Here are the relevant bugs:
>> * dinput8:dinput regression caused by new compiler
>>   https://bugs.winehq.org/show_bug.cgi?id=40384
>>
>> * usp10:usp10 regression caused by new cross-compiler
>>   https://bugs.winehq.org/show_bug.cgi?id=40385
>>
>> * wininet:url regression caused by new cross-compiler
>>   https://bugs.winehq.org/show_bug.cgi?id=40386
>>
>> * Unexplained new random comctl32:header failure (cross-compiler issue?)
>>   https://bugs.winehq.org/show_bug.cgi?id=40442
>>
>>
>>
>>
> 
> 
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: libtest.c
Type: text/x-csrc
Size: 8162 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20160727/762cc894/attachment-0002.c>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dinput-mini.c
Type: text/x-csrc
Size: 4203 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20160727/762cc894/attachment-0003.c>


More information about the wine-devel mailing list