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 8/22/2012 02:58, Yaakov (Cygwin/X) wrote:
> 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'
> 

mingw-w64 ddraw.h already has them, though they're inlined, gcc doesn't
like inlined data. DEFINE_GUID may need fixing, or at least instanced in
libuuid or libddraw.

I'll need to talk to to the Jacek from Wine to get a solution.

>> '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.)
> 

These may also need cooperation from Jacek.

>> 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.
> 

The header details are actually scrapped from MSDN.

Attachment: signature.asc
Description: OpenPGP digital signature


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