|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] Only compile the hypervisor with -Wdeclaration-after-statement
commit 40be6307ec005539635e7b8fcef67e989dc441f6
Author: Julien Grall <jgrall@xxxxxxxxxx>
AuthorDate: Tue Dec 5 18:32:26 2023 +0000
Commit: Julien Grall <jgrall@xxxxxxxxxx>
CommitDate: Wed Dec 6 19:12:40 2023 +0000
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>
---
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 c184add653..98ca1e2847 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 71c9b2200e..8c503c2bf8 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 ca571103c8..360fb6dcae 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -393,6 +393,7 @@ CFLAGS-$(CONFIG_CC_SPLIT_SECTIONS) += -ffunction-sections
-fdata-sections
CFLAGS += -nostdinc -fno-builtin -fno-common
CFLAGS += -Werror -Wredundant-decls -Wwrite-strings -Wno-pointer-arith
+$(call cc-option-add,CFLAGS,CC,-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#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |