qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] qga/commands-win32: Fix problem with redundant protype decla


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH] qga/commands-win32: Fix problem with redundant protype declaration
Date: Tue, 15 Sep 2020 14:50:32 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0

Cc'ing Marc-André

On 9/15/20 1:47 PM, Thomas Huth wrote:
> When compiling QEMU with MSYS2 on Windows, there is currently the
> following error:
> 
> ../qga/commands-win32.c:62:24: error: redundant redeclaration of
>  'CM_Get_DevNode_PropertyW' [-Werror=redundant-decls]
>    62 | CMAPI CONFIGRET WINAPI CM_Get_DevNode_PropertyW(
>       |                        ^~~~~~~~~~~~~~~~~~~~~~~~
> In file included from ../qga/commands-win32.c:26:
> C:/tools/msys64/mingw64/x86_64-w64-mingw32/include/cfgmgr32.h:840:26: note:
>  previous declaration of 'CM_Get_DevNode_PropertyW' was here
>   840 |   CMAPI CONFIGRET WINAPI CM_Get_DevNode_PropertyW(DEVINST dnDevInst,
>    const DEVPROPKEY *PropertyKey, DEVPROPTYPE *PropertyType, PBYTE 
> PropertyBuffer,
>    PULONG PropertyBufferSize, ULONG ulFlags);
> 
> Seems like this protype is sometimes available in the cfgmgr32.h
> header, and sometimes not.

This prototype is declared Since Windows Vista, but per
commit 4ac80866476 ("qga: drop < Vista compatibility")
it should be always true... So I'm confused.

Maybe we should build with:

  QEMU_BUILD_BUG_ON(_WIN32_WINNT < 0x0600); /* Vista */

Commit 56cdca1d7a6 ("build-sys: build with Vista API by default")
defines it if missing... Maybe that's where this problem comes
from? (On too old includes we force them as Vista).

> Let's silence the compiler warning here
> to let the build pass with -Werror, too.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  I can take this through my "testing" tree together with some other
>  MSYS2 patches if there are no objections.
> 
>  qga/commands-win32.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/qga/commands-win32.c b/qga/commands-win32.c
> index 48d8bbe649..0c3c05484f 100644
> --- a/qga/commands-win32.c
> +++ b/qga/commands-win32.c
> @@ -57,8 +57,10 @@ DEFINE_DEVPROPKEY(qga_DEVPKEY_Device_DriverDate, 
> 0xa8b865dd, 0x2e3d,
>  DEFINE_DEVPROPKEY(qga_DEVPKEY_Device_DriverVersion, 0xa8b865dd, 0x2e3d,
>      0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 3);
>      /* DEVPROP_TYPE_STRING */
> -/* The following shoud be in cfgmgr32.h, but it isn't */
> +/* The CM_Get_DevNode_PropertyW prototype is only sometimes in cfgmgr32.h */
>  #ifndef CM_Get_DevNode_Property
> +#pragma GCC diagnostic push
> +#pragma GCC diagnostic ignored "-Wredundant-decls"
>  CMAPI CONFIGRET WINAPI CM_Get_DevNode_PropertyW(
>      DEVINST          dnDevInst,
>      CONST DEVPROPKEY * PropertyKey,
> @@ -68,6 +70,7 @@ CMAPI CONFIGRET WINAPI CM_Get_DevNode_PropertyW(
>      ULONG            ulFlags
>  );
>  #define CM_Get_DevNode_Property CM_Get_DevNode_PropertyW
> +#pragma GCC diagnostic pop
>  #endif
>  
>  #ifndef SHTDN_REASON_FLAG_PLANNED
> 
        




reply via email to

[Prev in Thread] Current Thread [Next in Thread]