diff options
author | Ilya Maximets <i.maximets@ovn.org> | 2022-07-08 15:34:01 +0200 |
---|---|---|
committer | Ilya Maximets <i.maximets@ovn.org> | 2022-07-12 15:45:42 +0200 |
commit | 23d496ac50d49870881e91cd1e58dcb7e303d319 (patch) | |
tree | 9ff39da28e8b6b523c5a17c8a7a29427d0067840 | |
parent | e773140ec3f6d296e4a3877d709fb26fb51bc6ee (diff) | |
download | openvswitch-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.m4 | 4 | ||||
-rw-r--r-- | configure.ac | 2 |
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 |