Hi Paolo,

>> Strictly speaking only -std=gnu99 support the usage of typeof and for
>> easier inclusion in external projects, it is better to use __typeof__.
>>   CC       libvhost-user.o
>> libvhost-user.c: In function ‘vu_log_queue_fill’:
>> libvhost-user.c:86:13: error: implicit declaration of function ‘typeof’ 
>> [-Werror=implicit-function-declaration]
>>    86 |             typeof(x) _min1 = (x);              \
>>       |             ^~~~~~
>> Changing these two users of typeof makes the compiler happy and no extra
>> flags or pragmas need to be provided.
>> Signed-off-by: Marcel Holtmann<mar...@holtmann.org>
>> Reviewed-by: Philippe Mathieu-Daudé<phi...@linaro.org>
> 
> The build system uses "c_std=gnu99".  If you are extracting libvhost-user and 
> not using its build files, you need to add --std=gnu99 yourself when 
> compiling.
> 
> If you really don't want to do that, as long as it's just a couple 
> underscores that's fine I guess, but mixed declarations and code are going to 
> reappear sooner or later.  Please add a patch like this:
> 
> diff --git a/subprojects/libvhost-user/meson.build 
> b/subprojects/libvhost-user/meson.build
> index 39825d9404ae..5deecbfe377d 100644
> --- a/subprojects/libvhost-user/meson.build
> +++ b/subprojects/libvhost-user/meson.build
> @@ -1,6 +1,13 @@
> project('libvhost-user', 'c',
>         license: 'GPL-2.0-or-later',
> -        default_options: ['c_std=gnu99'])
> +        default_options: ['warning_level=1', 'c_std=gnu99'])
> +
> +cc = meson.get_compiler('c')
> +add_project_arguments(cc.get_supported_arguments(
> +  '-Wsign-compare',
> +  '-Wdeclaration-after-statement',
> +  '-Wstrict-aliasing'),
> +  native: false, language: 'c')

good idea. I included that in v4 patchset.

Regards

Marcel


Reply via email to