[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen stable-4.18] Only compile the hypervisor with -Wdeclaration-after-statement
commit a56d598e13db413f98e149f8e10cc13e8d4c1635 Author: Julien Grall <jgrall@xxxxxxxxxx> AuthorDate: Tue Dec 12 14:26:18 2023 +0100 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Tue Dec 12 14:26:18 2023 +0100 Only compile the hypervisor with -Wdeclaration-after-statement Right now, all tools and hypervisor will be complied with the option -Wdeclaration-after-statement. While most of the code in the hypervisor is controlled by us, for tools we may import external libraries. The build will fail if one of them are using the construct we are trying to prevent. This is the case when building against Python 3.12 and Yocto: | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:44, | from xen/lowlevel/xc/xc.c:8: | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h: In function 'Py_SIZE': | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/object.h:233:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] | 233 | PyVarObject *var_ob = _PyVarObject_CAST(ob); | | ^~~~~~~~~~~ | In file included from /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/Python.h:53: | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h: In function '_PyLong_CompactValue': | /srv/storage/alex/yocto/build-virt/tmp/work/core2-64-poky-linux/xen-tools/4.17+stable/recipe-sysroot/usr/include/python3.12/cpython/longintrepr.h:121:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] | 121 | Py_ssize_t sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK); | | ^~~~~~~~~~ | cc1: all warnings being treated as errors Looking at the tools directory, a fair few directory already add -Wno-declaration-after-statement to inhibit the default behavior. We have always build the hypervisor with the flag, so for now remove only the flag for anything but the hypervisor. We can decide at later time whether we want to relax. Also remove the -Wno-declaration-after-statement in some subdirectory as the flag is now unnecessary. Part of the commit message was take from Alexander's first proposal: Link: https://lore.kernel.org/xen-devel/20231128174729.3880113-1-alex@xxxxxxxxxxxxx/ Reported-by: Alexander Kanavin <alex@xxxxxxxxxxxxx> Acked-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Tested-by: Jason Andryuk <jandryuk@xxxxxxxxx> Signed-off-by: Julien Grall <jgrall@xxxxxxxxxx> xen/hypervisor: Don't use cc-option-add for -Wdeclaration-after-statement Per Andrew's comment in [1] all the compilers we support should recognize the flag. I forgot to address the comment while committing. [1] fcf00090-304a-49f7-8a61-a54347e90a3b@xxxxxxxxxx Signed-off-by: Julien Grall <jgrall@xxxxxxxxxx> master commit: 40be6307ec005539635e7b8fcef67e989dc441f6 master date: 2023-12-06 19:12:40 +0000 master commit: d4bfd3899886d0fbe259c20660dadb1e00170f2d master date: 2023-12-06 19:19:59 +0000 --- Config.mk | 2 -- stubdom/Makefile | 2 +- stubdom/vtpmmgr/Makefile | 2 +- tools/libs/light/Makefile | 3 +-- tools/libs/util/Makefile | 3 +-- tools/tests/depriv/Makefile | 2 -- tools/xl/Makefile | 3 +-- xen/Makefile | 1 + 8 files changed, 6 insertions(+), 12 deletions(-) diff --git a/Config.mk b/Config.mk index 29b0d1e12a..2a3e16d0bd 100644 --- a/Config.mk +++ b/Config.mk @@ -177,8 +177,6 @@ CFLAGS += -std=gnu99 CFLAGS += -Wall -Wstrict-prototypes -$(call cc-option-add,HOSTCFLAGS,HOSTCC,-Wdeclaration-after-statement) -$(call cc-option-add,CFLAGS,CC,-Wdeclaration-after-statement) $(call cc-option-add,CFLAGS,CC,-Wno-unused-but-set-variable) $(call cc-option-add,CFLAGS,CC,-Wno-unused-local-typedefs) diff --git a/stubdom/Makefile b/stubdom/Makefile index 0ddfce1ba2..888fa20d72 100644 --- a/stubdom/Makefile +++ b/stubdom/Makefile @@ -245,7 +245,7 @@ tpm_emulator-$(XEN_TARGET_ARCH): tpm_emulator-$(TPMEMU_VERSION).tar.gz patch -d $@ -p1 < vtpm-command-duration.patch patch -d $@ -p1 < vtpm-tpm_bn_t-addr.patch mkdir $@/build - cd $@/build; CC=${CC} $(CMAKE) .. -DCMAKE_C_FLAGS:STRING="-std=c99 -DTPM_NO_EXTERN $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -Wno-declaration-after-statement" + cd $@/build; CC=${CC} $(CMAKE) .. -DCMAKE_C_FLAGS:STRING="-std=c99 -DTPM_NO_EXTERN $(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" touch $@ TPMEMU_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libtpm.a diff --git a/stubdom/vtpmmgr/Makefile b/stubdom/vtpmmgr/Makefile index 6dae034a07..c29bb49838 100644 --- a/stubdom/vtpmmgr/Makefile +++ b/stubdom/vtpmmgr/Makefile @@ -17,7 +17,7 @@ OBJS += vtpm_disk.o disk_tpm.o disk_io.o disk_crypto.o disk_read.o disk_write.o OBJS += mgmt_authority.o CFLAGS+=-Werror -Iutil -Icrypto -Itcs -CFLAGS+=-Wno-declaration-after-statement -Wno-unused-label +CFLAGS+=-Wno-unused-label build: $(TARGET) $(TARGET): $(OBJS) diff --git a/tools/libs/light/Makefile b/tools/libs/light/Makefile index ba4c1b7933..37e4d16709 100644 --- a/tools/libs/light/Makefile +++ b/tools/libs/light/Makefile @@ -38,8 +38,7 @@ vpath static_tables.c $(ACPI_PATH)/ OBJS-$(CONFIG_X86) += $(ACPI_OBJS) -CFLAGS += -Wno-format-zero-length -Wmissing-declarations \ - -Wno-declaration-after-statement -Wformat-nonliteral +CFLAGS += -Wno-format-zero-length -Wmissing-declarations -Wformat-nonliteral CFLAGS-$(CONFIG_X86) += -DCONFIG_PCI_SUPP_LEGACY_IRQ diff --git a/tools/libs/util/Makefile b/tools/libs/util/Makefile index c3b21875dc..936ec90a31 100644 --- a/tools/libs/util/Makefile +++ b/tools/libs/util/Makefile @@ -9,8 +9,7 @@ OBJS-y += libxlu_disk.o OBJS-y += libxlu_vif.o OBJS-y += libxlu_pci.o -CFLAGS += -Wno-format-zero-length -Wmissing-declarations \ - -Wno-declaration-after-statement -Wformat-nonliteral +CFLAGS += -Wno-format-zero-length -Wmissing-declarations -Wformat-nonliteral CFLAGS += $(CFLAGS_libxenctrl) CFLAGS += $(PTHREAD_CFLAGS) diff --git a/tools/tests/depriv/Makefile b/tools/tests/depriv/Makefile index 7d9e3b01bb..5404a12f47 100644 --- a/tools/tests/depriv/Makefile +++ b/tools/tests/depriv/Makefile @@ -1,8 +1,6 @@ XEN_ROOT=$(CURDIR)/../../.. include $(XEN_ROOT)/tools/Rules.mk -CFLAGS += -Wno-declaration-after-statement - CFLAGS += $(CFLAGS_xeninclude) CFLAGS += $(CFLAGS_libxenctrl) CFLAGS += $(CFLAGS_libxencall) diff --git a/tools/xl/Makefile b/tools/xl/Makefile index 5f7aa5f46c..d742e96a5b 100644 --- a/tools/xl/Makefile +++ b/tools/xl/Makefile @@ -5,8 +5,7 @@ XEN_ROOT = $(CURDIR)/../.. include $(XEN_ROOT)/tools/Rules.mk -CFLAGS += -Wno-format-zero-length -Wmissing-declarations \ - -Wno-declaration-after-statement -Wformat-nonliteral +CFLAGS += -Wno-format-zero-length -Wmissing-declarations -Wformat-nonliteral CFLAGS += -fPIC CFLAGS += $(PTHREAD_CFLAGS) diff --git a/xen/Makefile b/xen/Makefile index e39290f638..a92709b43e 100644 --- a/xen/Makefile +++ b/xen/Makefile @@ -392,6 +392,7 @@ CFLAGS-$(CONFIG_CC_SPLIT_SECTIONS) += -ffunction-sections -fdata-sections CFLAGS += -nostdinc -fno-builtin -fno-common CFLAGS += -Werror -Wredundant-decls -Wno-pointer-arith +CFLAGS += -Wdeclaration-after-statement $(call cc-option-add,CFLAGS,CC,-Wvla) CFLAGS += -pipe -D__XEN__ -include $(srctree)/include/xen/config.h CFLAGS-$(CONFIG_DEBUG_INFO) += -g -- generated by git-patchbot for /home/xen/git/xen.git#stable-4.18
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |