All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: sw@weilnetz.de, QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PULL 0/9] qemu-ga patch queue for 2.6
Date: Thu, 25 Feb 2016 15:27:25 -0600	[thread overview]
Message-ID: <20160225212725.29588.10089@loki> (raw)
In-Reply-To: <CAFEAcA_v79ADzBaAdgMw8j_DJfDU2X73kdR5xTZJaeJWjQZSQg@mail.gmail.com>

Quoting Peter Maydell (2016-02-25 12:18:17)
> On 25 February 2016 at 17:11, Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
> > The following changes since commit 774ae4254d3910f1c94ad6ed44d14cbea0e6a2f2:
> >
> >   Merge remote-tracking branch 'remotes/bkoppelmann/tags/pull-tricore-20160225' into staging (2016-02-25 12:57:22 +0000)
> >
> > are available in the git repository at:
> >
> >
> >   git://github.com/mdroth/qemu.git tags/qga-pull-2016-02-25-tag
> >
> > for you to fetch changes up to e55eb806dbb97f53794b0c2f86983d34f6696845:
> >
> >   qga: fix w32 breakage due to missing osdep.h includes (2016-02-25 10:54:32 -0600)
> >
> > ----------------------------------------------------------------
> > qemu-ga patch queue for 2.6
> >
> > * fix w32 build breakage when VSS enabled
> > * fix up wchar handling in guest-set-user-password
> > * fix re-install handling for w32 MSI installer
> > * add w32 support for guest-get-vcpus
> > * add support for enums in guest-file-seek SEEK params
> >   instead of relying on platform-specific integer values
> 
> This doesn't seem to build on w32 (the old mingw compiler). It works
> with the newer w64-mingw32 compiler so I guess this is just a
> "disable stuff we can't support with the old headers" thing.
> 
> /home/petmay01/linaro/qemu-for-merges/qga/commands-win32.c: In
> function ‘qmp_guest_get_vcpus’:
> /home/petmay01/linaro/qemu-for-merges/qga/commands-win32.c:1226:
> error: ‘PSYSTEM_LOGICAL_PROCESSOR_INFORMATION’ undeclared (first use
> in this function)
> /home/petmay01/linaro/qemu-for-merges/qga/commands-win32.c:1226:
> error: (Each undeclared identifier is reported only once
> /home/petmay01/linaro/qemu-for-merges/qga/commands-win32.c:1226:
> error: for each function it appears in.)
> /home/petmay01/linaro/qemu-for-merges/qga/commands-win32.c:1226:
> error: expected ‘;’ before ‘pslpi’
> /home/petmay01/linaro/qemu-for-merges/qga/commands-win32.c:1232:
> error: ‘ptr’ undeclared (first use in this function)
> /home/petmay01/linaro/qemu-for-merges/qga/commands-win32.c:1232:
> error: ‘pslpi’ undeclared (first use in this function)
> cc1: warnings being treated as errors
> /home/petmay01/linaro/qemu-for-merges/qga/commands-win32.c:1238:
> warning: implicit declaration of function
> ‘GetLogicalProcessorInformation’
> /home/petmay01/linaro/qemu-for-merges/qga/commands-win32.c:1238:
> warning: nested extern declaration of ‘GetLogicalProcessorInformation’
> /home/petmay01/linaro/qemu-for-merges/qga/commands-win32.c:1240:
> error: ‘SYSTEM_LOGICAL_PROCESSOR_INFORMATION’ undeclared (first use in
> this function)
> /home/petmay01/linaro/qemu-for-merges/qga/commands-win32.c:1253:
> error: ‘RelationProcessorCore’ undeclared (first use in this function)
> make: *** [qga/commands-win32.o] Error 1
> make: *** Waiting for unfinished jobs....
> make: Leaving directory `/home/petmay01/linaro/qemu-for-merges/build/w32'
> 
> I'm open to the idea of dropping old-mingw from the build rotation
> if it looks like it really is just totally hopeless, since I have
> a newer setup for it now.

I wouldn't want to speak for dropping old mingw checks in general (cc'ing
Stefan), but for qemu-ga I think it makes sense. VSS/fsfreeze also
relies on mingw-w64 so it's really the only build system I use for
testing functionality.

If we do want to keep supporting the old mingw in general,
--disable-guest-agent should do the trick, but a probe is probably
best to simply not enable qemu-ga automatically in such cases...

According to:

https://sourceforge.net/p/mingw-w64/wiki2/Answer%20Check%20For%20Mingw-w64/

The below patch should handle this automatically. Should I send a v2
with it included, or would a follow-up be preferable?

Author: Michael Roth <mdroth@linux.vnet.ibm.com>
Date:   Thu Feb 25 15:11:04 2016 -0600

    configure: add mingw-w64 probe and make it a prereq for qga
    
    qemu-ga relies on a number of features now (VSS/fsfreeze,
    drive info, online/offline processor info) that are only
    implemented in the mingw-w64 alternative to mingw, and that
    featureset is expected to increase. Since a number of these
    features are fairly standard functionality expected of the
    guest agent, go ahead and make mingw-w64 a hard dependency.
    
    On MinGW builds, if qemu-ga isn't explicitly enabled, it will
    now just silently not build. Otherwise it will complain as needed.
    
    Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

diff --git a/configure b/configure
index 0c0472a..f4f1dc1 100755
--- a/configure
+++ b/configure
@@ -238,6 +238,7 @@ strip_opt="yes"
 tcg_interpreter="no"
 bigendian="no"
 mingw32="no"
+mingw_w64="no"
 gcov="no"
 gcov_tool="gcov"
 EXESUF=""
@@ -712,6 +713,18 @@ if test "$mingw32" = "yes" ; then
   local_statedir=
   confsuffix=""
   libs_qga="-lws2_32 -lwinmm -lpowrprof -liphlpapi -lnetapi32 $libs_qga"
+  cat > $TMPC << EOF
+#include <_mingw.h>
+#if !defined(__MINGW64_VERSION_MAJOR)
+#error
+#endif
+int main(void) { return 0; }
+EOF
+  # not to be confused with a check for 64-bit, this is testing specifically
+  # for mingw-w64 compiler, which has a larger featureset than standard mingw
+  if compile_prog "" "" ; then
+    mingw_w64=yes
+  fi
 fi
 
 werror=""
@@ -4529,12 +4542,17 @@ fi
 # Probe for guest agent support/options
 
 if [ "$guest_agent" != "no" ]; then
-  if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" -o "$mingw32" = "yes" ] ; then
+  if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" -o "$mingw_w64" = "yes" ] ; then
       tools="qemu-ga $tools"
       guest_agent=yes
   elif [ "$guest_agent" != yes ]; then
       guest_agent=no
   else
+      # if theydoing a mingw check passed but not mingw_w64, inform them of what's missing to avoid
+      # confusion about actual dependencies
+      if [ "$mingw32" = "yes" ]; then
+          error_exit "Guest agent requires mingw-w64 (32 or 64-bit) for win32 builds, but only mingw detected."
+      fi
       error_exit "Guest agent is not supported on this platform"
   fi
 fi


> 
> thanks > -- PMM
> 

  reply	other threads:[~2016-02-25 21:27 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-25 17:11 [Qemu-devel] [PULL 0/9] qemu-ga patch queue for 2.6 Michael Roth
2016-02-25 17:11 ` [Qemu-devel] [PULL 1/9] qga: Support enum names in guest-file-seek Michael Roth
2016-02-25 17:11 ` [Qemu-devel] [PULL 2/9] qemu-ga: Fixed minor version switch issue Michael Roth
2016-02-25 17:11 ` [Qemu-devel] [PULL 3/9] qga: implement the guest-get-vcpus for windows Michael Roth
2016-02-25 17:11 ` [Qemu-devel] [PULL 4/9] qga: use more idiomatic qemu-style eol operators Michael Roth
2016-02-25 17:11 ` [Qemu-devel] [PULL 5/9] qga: use size_t for wcslen() return value Michael Roth
2016-02-25 17:11 ` [Qemu-devel] [PULL 6/9] qga: use wide-chars constants for wchar_t comparisons Michael Roth
2016-02-25 17:11 ` [Qemu-devel] [PULL 7/9] qga: fix off-by-one length check Michael Roth
2016-02-25 17:12 ` [Qemu-devel] [PULL 8/9] qga: check utf8-to-utf16 conversion Michael Roth
2016-02-25 17:12 ` [Qemu-devel] [PULL 9/9] qga: fix w32 breakage due to missing osdep.h includes Michael Roth
2016-02-25 18:18 ` [Qemu-devel] [PULL 0/9] qemu-ga patch queue for 2.6 Peter Maydell
2016-02-25 21:27   ` Michael Roth [this message]
2016-02-26  5:44     ` Stefan Weil
2016-02-26 11:39       ` Peter Maydell
2016-02-26 11:40         ` Peter Maydell

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=20160225212725.29588.10089@loki \
    --to=mdroth@linux.vnet.ibm.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=sw@weilnetz.de \
    /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.