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 |
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 --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
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(-)