All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: Stefan Weil <sw@weilnetz.de>, Thomas Huth <thuth@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] configure: mark qemu-ga VSS includes as system headers
Date: Thu, 30 Jun 2016 14:06:32 -0500	[thread overview]
Message-ID: <20160630190632.9860.62094@loki> (raw)
In-Reply-To: <1467157426-6461-1-git-send-email-mdroth@linux.vnet.ibm.com>

Quoting Michael Roth (2016-06-28 18:43:46)
> As of e4650c81, we do w32 builds with -Werror enabled. Unfortunately
> for cases where we enable VSS support in qemu-ga, we still have
> warnings generated by VSS includes that ship as part of the Microsoft
> VSS SDK.
> 
> We can selectively address a number of these warnings using
> 
>   #pragma GCC diagnostic ignored ...
> 
> but at least one of these:
> 
>   warning: ‘typedef’ was ignored in this declaration
> 
> resulting from declarations of the form:
> 
>   typedef struct Blah { ... };
> 
> does not provide a specific command-line/pragma option to disable
> warnings of the sort.
> 
> To allow VSS builds to succeed, the next-best option is disabling
> these warnings on a per-file basis. pragmas like #pragma GCC
> system_header can be used to declare subsequent includes/declarations
> as being exempt from normal warnings, but this must be done within
> a header file.
> 
> Since we don't control the VSS SDK, we'd need to rely on a
> intermediate header include to accomplish this, and
> since different objects in the VSS link target rely on different
> headers from the VSS SDK, this would become somewhat of a rat's nest
> (though not totally unmanageable).
> 
> The next step up in granularity is just marking the entire VSS
> SDK include path as system headers via -isystem. This is a bit more
> heavy-handed, but since this SDK hasn't changed since 2005, there's
> likely little to be gained from selectively disabling warnings
> anyway, so we implement that approach here.
> 
> This fixes the -Werror failures in both the configure test and the
> qga build due to shared reliance on $vss_win32_include. For the
> same reason, this also enforces a new dependency on -isystem support
> in the C/C++ compiler when building QGA with VSS enabled.
> 
> Cc: Thomas Huth <thuth@redhat.com>
> Cc: Stefan Weil <sw@weilnetz.de>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

Thanks, applied to qga tree:
  https://github.com/mdroth/qemu/commits/qga

> ---
>  configure | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/configure b/configure
> index e14e907..2d84bc5 100755
> --- a/configure
> +++ b/configure
> @@ -4049,13 +4049,13 @@ fi
>  
>  if test "$mingw32" = "yes" -a "$guest_agent" != "no" -a "$vss_win32_sdk" != "no" ; then
>    case "$vss_win32_sdk" in
> -    "")   vss_win32_include="-I$source_path" ;;
> +    "")   vss_win32_include="-isystem $source_path" ;;
>      *\ *) # The SDK is installed in "Program Files" by default, but we cannot
>            # handle path with spaces. So we symlink the headers into ".sdk/vss".
> -          vss_win32_include="-I$source_path/.sdk/vss"
> +          vss_win32_include="-isystem $source_path/.sdk/vss"
>           symlink "$vss_win32_sdk/inc" "$source_path/.sdk/vss/inc"
>           ;;
> -    *)    vss_win32_include="-I$vss_win32_sdk"
> +    *)    vss_win32_include="-isystem $vss_win32_sdk"
>    esac
>    cat > $TMPC << EOF
>  #define __MIDL_user_allocate_free_DEFINED__
> -- 
> 1.9.1
> 
> 

      parent reply	other threads:[~2016-06-30 19:06 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-28 23:43 [Qemu-devel] [PATCH] configure: mark qemu-ga VSS includes as system headers Michael Roth
2016-06-29  8:27 ` Thomas Huth
2016-06-29 11:01   ` Michael Roth
2016-06-30 19:06 ` Michael Roth [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160630190632.9860.62094@loki \
    --to=mdroth@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=sw@weilnetz.de \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.