This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [ITA] w32api-3.0b_svn5368-1


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.


Yaakov



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]