On Jan 23 16:43, Dr. Volker Zell wrote:
> >>>>> Ken Brown writes:
> 
>     > On 1/23/2015 5:57 AM, Dr. Volker Zell wrote:
>     >> gcc -c -ggdb -O2 -pipe -Wimplicit-function-declaration 
> -fdebug-prefix-map=/cygdrive/d/misc/src/release/xemacs-21.4.22-2.i686/build=/usr/src/debug/xemacs-21.4.22-2
>  
> -fdebug-prefix-map=/cygdrive/d/misc/src/release/xemacs-21.4.22-2.i686/src/xemacs-21.4.22=/usr/src/debug/xemacs-21.4.22-2
>   -Demacs -I. -DHAVE_CONFIG_H -Wno-sign-compare -fno-caller-saves 
> /cygdrive/d/misc/src/release/xemacs-21.4.22-2.i686/src/xemacs-21.4.22/src/emacs.c
>     >> In file included from 
> /cygdrive/d/misc/src/release/xemacs-21.4.22-2.i686/src/xemacs-21.4.22/src/emacs.c:184:0:
>     >> 
> /cygdrive/d/misc/src/release/xemacs-21.4.22-2.i686/src/xemacs-21.4.22/src/syswindows.h:74:16:
>  error: expected ';', ',' or ')' before 'int'
>     >> #define Status int
>     >> ^
>     >> In file included from /usr/include/w32api/rpc.h:74:0,
>     >> from /usr/include/w32api/objbase.h:7,
>     >> from /usr/include/w32api/ole2.h:17,
>     >> from /usr/include/w32api/shlobj.h:85,
>     >> from 
> /cygdrive/d/misc/src/release/xemacs-21.4.22-2.i686/src/xemacs-21.4.22/src/syswindows.h:77,
>     >> from 
> /cygdrive/d/misc/src/release/xemacs-21.4.22-2.i686/src/xemacs-21.4.22/src/emacs.c:184:
>     >> /usr/include/w32api/rpcdce.h:210:51: error: unknown type name 
> 'RPC_OBJECT_INQ_FN'
>     >> RPCRTAPI RPC_STATUS RPC_ENTRY RpcObjectSetInqFn(RPC_OBJECT_INQ_FN 
> *InquiryFn);
> 
>     > I think the problem is that "Status" is used in 
> /usr/include/w32api/rpcdce.h,
>     > and this conflicts with "#define Status int".  I ran into a similar 
> problem when
>     > trying to build clisp.
> 
> Any simple fix/workaround  for this ?

It's a bug in the header, because it's polluting the namespace with
unnecessary usage of "Status" as parameter names in prototypes.  The
header should use __status__ or drop them entirely.

What you could try is either one of

- Change the order of the header files, so that the windows headers
  are included before the private header defining Status.

- Or, prior to including the Windows headers, push the macro and
  undefine it, after including the windows headers, pop the macro:

    #pragma push_macro ("Status")
    #undef Status
    #include <windows.h>
    #pragma pop_macro ("Status")

- Or, you could not include windce.h at all if you don't need any of it:

   #define __RPCDCE_H__
   #include <windows.h>
   ...

Apart from that, the header should be fixed in Mingw-w64.


HTH,
Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: pgp3KvBQGHGzV.pgp
Description: PGP signature

Reply via email to