[libvirt PATCH] meson: add -Wall and -Wextra explicitly for buildtype=plain

Jim Fehlig jfehlig at suse.com
Tue Sep 1 22:37:06 UTC 2020


On 9/1/20 8:08 AM, Pavel Hrdina wrote:
> If someone runs `meson setup --buildtype plain` meson ignores
> warning_level=2 that is in our meson.build file. The implication is
> that Meson will not automatically add -Wall which enables -Wformat.
> 
> This breaks building libvirt from git with the buildtype set to plain.
> 
> There is an issue reported [1] to not ignore warning_level silently
> and the change to ignore it was done by upstream commit [2].
> 
> [1] <https://github.com/mesonbuild/meson/issues/7399>
> [2] <https://github.com/mesonbuild/meson/commit/8ee1c9a07a3a35e3ed262fbc358fd86c257a966e>
> 
> Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> ---
>   meson.build | 19 +++++++++++++++----
>   1 file changed, 15 insertions(+), 4 deletions(-)

I'm just learning meson so not particularly confident to review patches, but 
will note this change causes a warning in downstream package build where the 
%meson rpm macro is used

[   23s] Compiler for C supports arguments -Wall: YES
[   23s] Compiler for C supports arguments -Wextra: YES
[   23s] meson.build:594: WARNING: Consider using the built-in warning_level 
option instead of using "-Wall".
[   23s] meson.build:594: WARNING: Consider using the built-in warning_level 
option instead of using "-Wextra".

Regards,
Jim

> 
> diff --git a/meson.build b/meson.build
> index e193166a9b..f38785eeae 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -503,10 +503,6 @@ cc_flags_disabled = [
>     # In meson this is specified using 'c_std=gnu99' in project() function.
>     '-std=gnu99',
>   
> -  # In meson this is specified using 'warning_level=2' in project() function.
> -  '-Wall',
> -  '-Wextra',
> -
>     # don't care about C++ compiler compat
>     '-Wc++-compat',
>     '-Wabi',
> @@ -573,6 +569,21 @@ cc_flags_disabled = [
>     '-Wsuggest-attribute=malloc',
>   ]
>   
> +# In meson this is specified using 'warning_level=2' in project() function.
> +# However, meson silently ignores 'warning_level' option with 'buildtype=plain'
> +# so we have to enable them explicitly.
> +if get_option('buildtype') == 'plain'
> +  cc_flags += [
> +    '-Wall',
> +    '-Wextra',
> +  ]
> +else
> +  cc_flags_disabled += [
> +    '-Wall',
> +    '-Wextra',
> +  ]
> +endif
> +
>   foreach flag : cc_flags_disabled
>     if cc_flags.contains(flag)
>       error('@0@ is disabled but listed in cc_flags'.format(flag))
> 




More information about the libvir-list mailing list