summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Maximets <i.maximets@ovn.org>2022-07-08 15:34:01 +0200
committerIlya Maximets <i.maximets@ovn.org>2022-07-12 15:45:42 +0200
commit23d496ac50d49870881e91cd1e58dcb7e303d319 (patch)
tree9ff39da28e8b6b523c5a17c8a7a29427d0067840
parente773140ec3f6d296e4a3877d709fb26fb51bc6ee (diff)
downloadopenvswitch-23d496ac50d49870881e91cd1e58dcb7e303d319.tar.gz
acinclude: Fix double -Werror.
We're adding -Werror argument twice to every compiler invocation, if configured with --enable-Werror. The reason is the double expansion of the OVS_ENABLE_WERROR macro. It's called once from the top level in configure.ac and the second time from the AC_REQUIRE while checking CXX compatibility. AC_REQUIRE by itself protects from double expansion, but it can't protect from top level calls and it can not be used outside of AC_DEFUN. One way to fix that is to use AC_DEFUN_ONCE for OVS_ENABLE_WERROR, but it's not available in older autoconf < 2.64. So, creating a separate macro with AC_REQUIRE inside for the top level invocation to make it expanded only once. Acked-by: Ales Musil <amusil@redhat.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
-rw-r--r--acinclude.m44
-rw-r--r--configure.ac2
2 files changed, 5 insertions, 1 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index b518aa624..d15f11a4e 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -111,6 +111,10 @@ AC_DEFUN([OVS_ENABLE_WERROR],
fi
AC_SUBST([SPARSE_WERROR])])
+dnl Version for a top level invocation, since AC_REQUIRE can not be used
+dnl outside of AC_DEFUN, but needed to protect against double expansion.
+AC_DEFUN([OVS_ENABLE_WERROR_TOP], [AC_REQUIRE([OVS_ENABLE_WERROR])])
+
dnl OVS_CHECK_LINUX
dnl
dnl Configure linux kernel source tree
diff --git a/configure.ac b/configure.ac
index 59ea0a281..6f8679d7c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -181,7 +181,7 @@ OVS_ENABLE_OPTION([-Wno-null-pointer-arithmetic])
OVS_ENABLE_OPTION([-Warray-bounds-pointer-arithmetic])
OVS_CONDITIONAL_CC_OPTION([-Wno-unused], [HAVE_WNO_UNUSED])
OVS_CONDITIONAL_CC_OPTION([-Wno-unused-parameter], [HAVE_WNO_UNUSED_PARAMETER])
-OVS_ENABLE_WERROR
+OVS_ENABLE_WERROR_TOP
OVS_ENABLE_SPARSE
OVS_CTAGS_IDENTIFIERS
OVS_CHECK_DPCLS_AUTOVALIDATOR