[Mesa-dev] [Bug 45292] Compilation failure on d3d1x state tracker: ‘ID3D10Include’ has not been declared

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Feb 21 03:42:29 PST 2012


--- Comment #5 from Sven Eden <yamakuzure at gmx.net> 2012-02-21 03:42:29 PST ---
Created attachment 57383
  --> https://bugs.freedesktop.org/attachment.cgi?id=57383
Re-insert neccessary typedef for ID3D10Include


I have been able to get past this error with the attached patch.

System: Gentoo x64, kernel 3.2.5, wine 1.3.37

But it does not mean it works, I run into the next error.

Build snippet:
In file included from ../w32api/windows.h:66:0,
                 from ../w32api/rpc.h:29,
                 from ../d3dapi/d3d11shader.h:7,
                 from src/dxbc_parse.cpp:29:
../w32api/winsock.h:447:16: error: redefinition of 'struct timeval'
/usr/include/bits/time.h:31:8: error: previous definition of 'struct timeval'
../w32api/winsock.h:451:10: error: invalid type in declaration before ',' token

As "w32api" is just a link to /usr/include/wine/windows, it is a wine thing.

But: When timeval is defined from /usr/include/bits/time.h, the macro
"_STRUCT_TIMEVAL" is defined. Unfortunately I can't seem to find a point where
to patch any idl file to check that.

There are two possibilities.

A) windows.h does not include winsock.h if WINE_NOWINSOCK is defined

     65 #ifndef WINE_NOWINSOCK
     66 #include <winsock.h>
     67 #endif /* WINE_NOWINSOCK */

B) define _TIMEVAL_DEFINED if _STRUCT_TIMEVAL is defined, because winsock.h
checks that:

typedef struct WS(timeval)
    LONG    tv_sec;                /* seconds */
    LONG    tv_usec;               /* and microseconds */


I'd prefer the latter, but I have no idea where to put that, yet.

Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

More information about the mesa-dev mailing list