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

Reply via email to