On 3/22/22 18:15, Thomas Huth wrote:
Newer compiler versions sometimes introduce new warnings - and compiling
with -Werror will fail there, of course. Thus users of the kvm-unit-tests
like the buildroot project have to disable the "-Werror" in the Makefile
with an additional patch, which is cumbersome.
Thus let's add a switch to the configure script that allows to explicitly
turn the -Werror switch on or off. And enable it only by default for
developer builds (i.e. in checked-out git repositories) ... and for
tarball releases, it's nicer if it is disabled by default, so that the
end users do not have to worry about this.
Signed-off-by: Thomas Huth <thuth@xxxxxxxxxx>
I'm tempted to introduce a -W-unused-* switch so the compiler doesn't
annoy me anymore when I'm working on new things. But on the other hand
I'd forget to disable it before submission :-)
Anyway:
Acked-by: Janosch Frank <frankja@xxxxxxxxxxxxx>
---
See also the patch from the buildroot project:
https://git.busybox.net/buildroot/tree/package/kvm-unit-tests/0001-Makefile-remove-Werror-to-avoid-build-failures.patch
Makefile | 2 +-
configure | 16 ++++++++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 24686dd..6ed5dea 100644
--- a/Makefile
+++ b/Makefile
@@ -62,7 +62,7 @@ include $(SRCDIR)/$(TEST_DIR)/Makefile
COMMON_CFLAGS += -g $(autodepend-flags) -fno-strict-aliasing -fno-common
COMMON_CFLAGS += -Wall -Wwrite-strings -Wempty-body -Wuninitialized
-COMMON_CFLAGS += -Wignored-qualifiers -Werror -Wno-missing-braces
+COMMON_CFLAGS += -Wignored-qualifiers -Wno-missing-braces $(CONFIG_WERROR)
frame-pointer-flag=-f$(if $(KEEP_FRAME_POINTER),no-,)omit-frame-pointer
fomit_frame_pointer := $(call cc-option, $(frame-pointer-flag), "")
diff --git a/configure b/configure
index c4fb4a2..86c3095 100755
--- a/configure
+++ b/configure
@@ -31,6 +31,13 @@ page_size=
earlycon=
efi=
+# Enable -Werror by default for git repositories only (i.e. developer builds)
+if [ -e "$srcdir"/.git ]; then
+ werror=-Werror
+else
+ werror=
+fi
+
usage() {
cat <<-EOF
Usage: $0 [options]
@@ -75,6 +82,8 @@ usage() {
Specify a PL011 compatible UART at address ADDR. Supported
register stride is 32 bit only.
--[enable|disable]-efi Boot and run from UEFI (disabled by default, x86_64 only)
+ --[enable|disable]-werror
+ Select whether to compile with the -Werror compiler flag
EOF
exit 1
}
@@ -148,6 +157,12 @@ while [[ "$1" = -* ]]; do
--disable-efi)
efi=n
;;
+ --enable-werror)
+ werror=-Werror
+ ;;
+ --disable-werror)
+ werror=
+ ;;
--help)
usage
;;
@@ -371,6 +386,7 @@ WA_DIVIDE=$wa_divide
GENPROTIMG=${GENPROTIMG-genprotimg}
HOST_KEY_DOCUMENT=$host_key_document
CONFIG_EFI=$efi
+CONFIG_WERROR=$werror
GEN_SE_HEADER=$gen_se_header
EOF
if [ "$arch" = "arm" ] || [ "$arch" = "arm64" ]; then