Message ID | 1456362069-13087-1-git-send-email-mdroth@linux.vnet.ibm.com |
---|---|
State | New |
Headers | show |
On 02/24/2016 06:01 PM, Michael Roth wrote: > requester.h relied on qemu/compiler.h definitions to > handle GCC_FMT_ATTR() stub, but this include was removed as part > of scripted clean-ups via 30456d5: > > all: Clean up includes > > under the assumption that all C files would have included it via > qemu/osdep.h at that point. requester.cpp was likely missed > due to C++ files requiring manual/special handling as well as > VSS build options needing to be enabled to trigger build failures. > > Fix this by including qemu/osdep.h. That in turn pulls in a > macro from qapi/error.h that conflicts with a struct field name > in requester.h, so fix that as well by renaming the field. > > While we're at it, fix up provider.cpp/install.cpp to include > osdep.h as well. > > Cc: Peter Maydell <peter.maydell@linaro.org> > Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> > --- Reviewed-by: Eric Blake <eblake@redhat.com> (but I'm not set up to provide Tested-by on this one)
Quoting Michael Roth (2016-02-24 19:01:09) > requester.h relied on qemu/compiler.h definitions to > handle GCC_FMT_ATTR() stub, but this include was removed as part > of scripted clean-ups via 30456d5: > > all: Clean up includes > > under the assumption that all C files would have included it via > qemu/osdep.h at that point. requester.cpp was likely missed > due to C++ files requiring manual/special handling as well as > VSS build options needing to be enabled to trigger build failures. > > Fix this by including qemu/osdep.h. That in turn pulls in a > macro from qapi/error.h that conflicts with a struct field name > in requester.h, so fix that as well by renaming the field. > > While we're at it, fix up provider.cpp/install.cpp to include > osdep.h as well. > > Cc: Peter Maydell <peter.maydell@linaro.org> > Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Thanks, applied to qga tree: https://github.com/mdroth/qemu/commits/qga > --- > qga/vss-win32.c | 2 +- > qga/vss-win32/install.cpp | 3 +-- > qga/vss-win32/provider.cpp | 2 +- > qga/vss-win32/requester.cpp | 8 ++++---- > qga/vss-win32/requester.h | 2 +- > 5 files changed, 8 insertions(+), 9 deletions(-) > > diff --git a/qga/vss-win32.c b/qga/vss-win32.c > index 5182e3b..9a0e463 100644 > --- a/qga/vss-win32.c > +++ b/qga/vss-win32.c > @@ -150,7 +150,7 @@ void qga_vss_fsfreeze(int *nr_volume, Error **errp, bool freeze) > const char *func_name = freeze ? "requester_freeze" : "requester_thaw"; > QGAVSSRequesterFunc func; > ErrorSet errset = { > - .error_setg_win32 = error_setg_win32_internal, > + .error_setg_win32_wrapper = error_setg_win32_internal, > .errp = errp, > }; > > diff --git a/qga/vss-win32/install.cpp b/qga/vss-win32/install.cpp > index b0e4426..cd9cdb4 100644 > --- a/qga/vss-win32/install.cpp > +++ b/qga/vss-win32/install.cpp > @@ -10,8 +10,7 @@ > * See the COPYING file in the top-level directory. > */ > > -#include <stdio.h> > -#include <string.h> > +#include "qemu/osdep.h" > > #include "vss-common.h" > #include "inc/win2003/vscoordint.h" > diff --git a/qga/vss-win32/provider.cpp b/qga/vss-win32/provider.cpp > index d5129f8..d977393 100644 > --- a/qga/vss-win32/provider.cpp > +++ b/qga/vss-win32/provider.cpp > @@ -10,7 +10,7 @@ > * See the COPYING file in the top-level directory. > */ > > -#include <stdio.h> > +#include "qemu/osdep.h" > #include "vss-common.h" > #include "inc/win2003/vscoordint.h" > #include "inc/win2003/vsprov.h" > diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp > index 9b3e310..b57d517 100644 > --- a/qga/vss-win32/requester.cpp > +++ b/qga/vss-win32/requester.cpp > @@ -10,7 +10,7 @@ > * See the COPYING file in the top-level directory. > */ > > -#include <stdio.h> > +#include "qemu/osdep.h" > #include "vss-common.h" > #include "requester.h" > #include "assert.h" > @@ -23,9 +23,9 @@ > /* Call QueryStatus every 10 ms while waiting for frozen event */ > #define VSS_TIMEOUT_EVENT_MSEC 10 > > -#define err_set(e, err, fmt, ...) \ > - ((e)->error_setg_win32((e)->errp, __FILE__, __LINE__, __func__, \ > - err, fmt, ## __VA_ARGS__)) > +#define err_set(e, err, fmt, ...) \ > + ((e)->error_setg_win32_wrapper((e)->errp, __FILE__, __LINE__, __func__, \ > + err, fmt, ## __VA_ARGS__)) > /* Bad idea, works only when (e)->errp != NULL: */ > #define err_is_set(e) ((e)->errp && *(e)->errp) > /* To lift this restriction, error_propagate(), like we do in QEMU code */ > diff --git a/qga/vss-win32/requester.h b/qga/vss-win32/requester.h > index ad2bf3d..2a39d73 100644 > --- a/qga/vss-win32/requester.h > +++ b/qga/vss-win32/requester.h > @@ -27,7 +27,7 @@ typedef void (*ErrorSetFunc)(struct Error **errp, > int win32_err, const char *fmt, ...) > GCC_FMT_ATTR(6, 7); > typedef struct ErrorSet { > - ErrorSetFunc error_setg_win32; > + ErrorSetFunc error_setg_win32_wrapper; > struct Error **errp; /* restriction: must not be null */ > } ErrorSet; > > -- > 1.9.1 >
diff --git a/qga/vss-win32.c b/qga/vss-win32.c index 5182e3b..9a0e463 100644 --- a/qga/vss-win32.c +++ b/qga/vss-win32.c @@ -150,7 +150,7 @@ void qga_vss_fsfreeze(int *nr_volume, Error **errp, bool freeze) const char *func_name = freeze ? "requester_freeze" : "requester_thaw"; QGAVSSRequesterFunc func; ErrorSet errset = { - .error_setg_win32 = error_setg_win32_internal, + .error_setg_win32_wrapper = error_setg_win32_internal, .errp = errp, }; diff --git a/qga/vss-win32/install.cpp b/qga/vss-win32/install.cpp index b0e4426..cd9cdb4 100644 --- a/qga/vss-win32/install.cpp +++ b/qga/vss-win32/install.cpp @@ -10,8 +10,7 @@ * See the COPYING file in the top-level directory. */ -#include <stdio.h> -#include <string.h> +#include "qemu/osdep.h" #include "vss-common.h" #include "inc/win2003/vscoordint.h" diff --git a/qga/vss-win32/provider.cpp b/qga/vss-win32/provider.cpp index d5129f8..d977393 100644 --- a/qga/vss-win32/provider.cpp +++ b/qga/vss-win32/provider.cpp @@ -10,7 +10,7 @@ * See the COPYING file in the top-level directory. */ -#include <stdio.h> +#include "qemu/osdep.h" #include "vss-common.h" #include "inc/win2003/vscoordint.h" #include "inc/win2003/vsprov.h" diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp index 9b3e310..b57d517 100644 --- a/qga/vss-win32/requester.cpp +++ b/qga/vss-win32/requester.cpp @@ -10,7 +10,7 @@ * See the COPYING file in the top-level directory. */ -#include <stdio.h> +#include "qemu/osdep.h" #include "vss-common.h" #include "requester.h" #include "assert.h" @@ -23,9 +23,9 @@ /* Call QueryStatus every 10 ms while waiting for frozen event */ #define VSS_TIMEOUT_EVENT_MSEC 10 -#define err_set(e, err, fmt, ...) \ - ((e)->error_setg_win32((e)->errp, __FILE__, __LINE__, __func__, \ - err, fmt, ## __VA_ARGS__)) +#define err_set(e, err, fmt, ...) \ + ((e)->error_setg_win32_wrapper((e)->errp, __FILE__, __LINE__, __func__, \ + err, fmt, ## __VA_ARGS__)) /* Bad idea, works only when (e)->errp != NULL: */ #define err_is_set(e) ((e)->errp && *(e)->errp) /* To lift this restriction, error_propagate(), like we do in QEMU code */ diff --git a/qga/vss-win32/requester.h b/qga/vss-win32/requester.h index ad2bf3d..2a39d73 100644 --- a/qga/vss-win32/requester.h +++ b/qga/vss-win32/requester.h @@ -27,7 +27,7 @@ typedef void (*ErrorSetFunc)(struct Error **errp, int win32_err, const char *fmt, ...) GCC_FMT_ATTR(6, 7); typedef struct ErrorSet { - ErrorSetFunc error_setg_win32; + ErrorSetFunc error_setg_win32_wrapper; struct Error **errp; /* restriction: must not be null */ } ErrorSet;
requester.h relied on qemu/compiler.h definitions to handle GCC_FMT_ATTR() stub, but this include was removed as part of scripted clean-ups via 30456d5: all: Clean up includes under the assumption that all C files would have included it via qemu/osdep.h at that point. requester.cpp was likely missed due to C++ files requiring manual/special handling as well as VSS build options needing to be enabled to trigger build failures. Fix this by including qemu/osdep.h. That in turn pulls in a macro from qapi/error.h that conflicts with a struct field name in requester.h, so fix that as well by renaming the field. While we're at it, fix up provider.cpp/install.cpp to include osdep.h as well. Cc: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> --- qga/vss-win32.c | 2 +- qga/vss-win32/install.cpp | 3 +-- qga/vss-win32/provider.cpp | 2 +- qga/vss-win32/requester.cpp | 8 ++++---- qga/vss-win32/requester.h | 2 +- 5 files changed, 8 insertions(+), 9 deletions(-)