diff mbox series

[2/2] qga-win: fix VSS build breakage due to unintended gnu99 C++ flag

Message ID 20190212212917.26977-3-mdroth@linux.vnet.ibm.com
State New
Headers show
Series qga-win: fixes for builds with VSS/fsfreeze enabled | expand

Commit Message

Michael Roth Feb. 12, 2019, 9:29 p.m. UTC
Commit 7be41675f7c set -std=gnu99 for C code via QEMU_CFLAGS. Currently
we generate a "custom" QEMU_CXXFLAGS for VSS DLL C++ build by
filtering out some options from QEMU_CFLAGS and adding some others.
Since we don't filter out -std=gnu99 currently this breaks builds when
VSS support is enabled.

We could keep the existing approach, filter out -std=gnu99 from
QEMU_CFLAGS, and add -std=gnu++98, like configure currently does for
QEMU_CXXFLAGS, but as it turns out our resulting QEMU_CXXFLAGS would
be exactly what configure already generates, just with these filtered
out:

  -fstack-protector-all -fstack-protector-strong

and these added:

  -Wno-unknown-pragmas -Wno-delete-non-virtual-dtor

So fix the issue by re-using configure-generated QEMU_CXXFLAGS and
just handling these specific changes.

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
---
 qga/vss-win32/Makefile.objs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Daniel P. Berrangé Feb. 13, 2019, 9:13 a.m. UTC | #1
On Tue, Feb 12, 2019 at 03:29:17PM -0600, Michael Roth wrote:
> Commit 7be41675f7c set -std=gnu99 for C code via QEMU_CFLAGS. Currently
> we generate a "custom" QEMU_CXXFLAGS for VSS DLL C++ build by
> filtering out some options from QEMU_CFLAGS and adding some others.
> Since we don't filter out -std=gnu99 currently this breaks builds when
> VSS support is enabled.
> 
> We could keep the existing approach, filter out -std=gnu99 from
> QEMU_CFLAGS, and add -std=gnu++98, like configure currently does for
> QEMU_CXXFLAGS, but as it turns out our resulting QEMU_CXXFLAGS would
> be exactly what configure already generates, just with these filtered
> out:
> 
>   -fstack-protector-all -fstack-protector-strong
> 
> and these added:
> 
>   -Wno-unknown-pragmas -Wno-delete-non-virtual-dtor
> 
> So fix the issue by re-using configure-generated QEMU_CXXFLAGS and
> just handling these specific changes.
> 
> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
> ---
>  qga/vss-win32/Makefile.objs | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


Regards,
Daniel
diff mbox series

Patch

diff --git a/qga/vss-win32/Makefile.objs b/qga/vss-win32/Makefile.objs
index dad9d1b0ba..fd3ba1896b 100644
--- a/qga/vss-win32/Makefile.objs
+++ b/qga/vss-win32/Makefile.objs
@@ -3,7 +3,7 @@ 
 qga-vss-dll-obj-y += requester.o provider.o install.o
 
 obj-qga-vss-dll-obj-y = $(addprefix $(obj)/, $(qga-vss-dll-obj-y))
-$(obj-qga-vss-dll-obj-y): QEMU_CXXFLAGS = $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wold-style-declaration -Wold-style-definition -Wredundant-decls -fstack-protector-all -fstack-protector-strong, $(QEMU_CFLAGS)) -Wno-unknown-pragmas -Wno-delete-non-virtual-dtor
+$(obj-qga-vss-dll-obj-y): QEMU_CXXFLAGS := $(filter-out -fstack-protector-all -fstack-protector-strong, $(QEMU_CXXFLAGS)) -Wno-unknown-pragmas -Wno-delete-non-virtual-dtor
 
 $(obj)/qga-vss.dll: LDFLAGS = -shared -Wl,--add-stdcall-alias,--enable-stdcall-fixup -lglib-2.0 -lole32 -loleaut32 -lshlwapi -luuid -lintl -lws2_32 -static
 $(obj)/qga-vss.dll: $(obj-qga-vss-dll-obj-y) $(SRC_PATH)/$(obj)/qga-vss.def