[ITA] w32api-3.0b_svn5368-1

Yaakov (Cygwin/X) yselkowitz@users.sourceforge.net
Tue Aug 21 18:58:00 GMT 2012

On 2012-08-21 09:13, Jon TURNEY wrote:
> There are a also couple of other issues which prevent X server from compiling
> successfully with these headers, which should probably be fixed in the X server:
> DEFINE_GUID is defined in terms of GUID_SECT, which no longer exists.  I'm not
> sure what the broken-ness referred to here is, or if it still exists...
> /*
>   * FIXME: Headers are broken, DEFINE_GUID doesn't work correctly,
>   * so we have to redefine it here.
>   */
> #ifdef DEFINE_GUID
> #undef DEFINE_GUID
> #define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) const GUID n GUID_SECT
> = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
> #endif                          /* DEFINE_GUID */

According to mingw.org <basetyps.h>, GUID_SECT was only necessary for 
ancient GCC versions.  At a minimum, we should be able to just remove 
the GUID_SECT from those defines.  Unfortunately just ifndef _W64 those 
defines entirely leads to link errors:

hw/xwin/winengine.c:107: undefined reference to `_IID_IDirectDraw4'
winshaddd.o: In function `winAllocateFBShadowDD':
hw/xwin/winshaddd.c:253: undefined reference to `_IID_IDirectDraw2'
winshadddnl.o: In function `winAllocateFBShadowDDNL':
hw/xwin/winshadddnl.c:285: undefined reference to `_IID_IDirectDraw4'
winpfbdd.o: In function `winAllocateFBPrimaryDD':
hw/xwin/winpfbdd.c:89: undefined reference to `_IID_IDirectDraw2'

> 'Status' is used as formal parameter name in some w32api headers, but as a
> typename in xkbsrv.h.  We wrap this in Xwindows.h to avoid conflict,

(The difference being that mingw.org's <rpc*.h> don't use parameter 
names, only types.)

> but objbase.h is included outside of that wrapper when we are defining directdraw
> interface GUIDs, leading to a conflict in rpcdce.h

Once we get past those, there are a few more:

In file included from winmultiwindowwm.c:74:0:
taskbar.h:34:16: error: redefinition of ‘struct _tagpropertykey’
/usr/include/w32api/wtypes.h:762:16: note: originally defined here
taskbar.h:37:3: error: conflicting types for ‘PROPERTYKEY’
/usr/include/w32api/wtypes.h:765:3: note: previous declaration of 
‘PROPERTYKEY’ was here
taskbar.h:39:0: warning: "REFPROPVARIANT" redefined
/usr/include/w32api/propidl.h:266:0: note: this is the location of the 
previous definition
In file included from winmultiwindowwm.c:74:0:
taskbar.h:67:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ 
before ‘const’

winmultiwindowwm.c: In function ‘winSetAppID’:
winmultiwindowwm.c:2064:44: error: ‘PKEY_AppUserModel_ID’ undeclared 
(first use in this function)

This would appear to be fixable by using <propkey.h> in 
hw/xwin/taskbar.h instead of defining this stuff ourselves, but that 
header is _W64-specific.


More information about the Cygwin-apps mailing list