On Fri, Jul 8, 2022 at 3:34 PM Ilya Maximets <[email protected]> wrote:
> 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. > > Signed-off-by: Ilya Maximets <[email protected]> > --- > acinclude.m4 | 4 ++++ > configure.ac | 2 +- > 2 files changed, 5 insertions(+), 1 deletion(-) > > 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 > -- > 2.34.3 > > Great, thank you. Acked-by: Ales Musil <[email protected]> -- Ales Musil Senior Software Engineer - OVN Core Red Hat EMEA <https://www.redhat.com> [email protected] IM: amusil <https://red.ht/sig> _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
