On Thu, Oct 7, 2021 at 5:23 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
> Remove some special cases by moving them to Meson.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> configure | 37 -------------------------------------
> meson.build | 22 ++++++++++++++++++++--
> 2 files changed, 20 insertions(+), 39 deletions(-)
>
> diff --git a/configure b/configure
> index 499c84859d..52f89b05d6 100755
> --- a/configure
> +++ b/configure
> @@ -2401,18 +2401,6 @@ else
> l2tpv3=no
> fi
>
> -cat > $TMPC <<EOF
> -#include <sys/mman.h>
> -int main(int argc, char *argv[]) {
> - return mlockall(MCL_FUTURE);
> -}
> -EOF
> -if compile_prog "" "" ; then
> - have_mlockall=yes
> -else
> - have_mlockall=no
> -fi
> -
> #########################################
> # vhost interdependencies and host support
>
> @@ -3840,21 +3828,6 @@ if test "$fortify_source" != "no"; then
> fi
> fi
>
> -##########################################
> -# check if struct fsxattr is available via linux/fs.h
> -
> -have_fsxattr=no
> -cat > $TMPC << EOF
> -#include <linux/fs.h>
> -struct fsxattr foo;
> -int main(void) {
> - return 0;
> -}
> -EOF
> -if compile_prog "" "" ; then
> - have_fsxattr=yes
> -fi
> -
> ##########################################
> # check for usable membarrier system call
> if test "$membarrier" = "yes"; then
> @@ -4356,13 +4329,6 @@ if test "$gdbus_codegen" != "" ; then
> fi
> echo "CONFIG_TLS_PRIORITY=\"$tls_priority\"" >> $config_host_mak
>
> -# Work around a system header bug with some kernel/XFS header
> -# versions where they both try to define 'struct fsxattr':
> -# xfs headers will not try to redefine structs from linux headers
> -# if this macro is set.
> -if test "$have_fsxattr" = "yes" ; then
> - echo "HAVE_FSXATTR=y" >> $config_host_mak
> -fi
> if test "$xen" = "enabled" ; then
> echo "CONFIG_XEN_BACKEND=y" >> $config_host_mak
> echo "CONFIG_XEN_CTRL_INTERFACE_VERSION=$xen_ctrl_version" >>
> $config_host_mak
> @@ -4567,9 +4533,6 @@ fi
> if test "$parallels" = "yes" ; then
> echo "CONFIG_PARALLELS=y" >> $config_host_mak
> fi
> -if test "$have_mlockall" = "yes" ; then
> - echo "HAVE_MLOCKALL=y" >> $config_host_mak
> -fi
>
> if test "$plugins" = "yes" ; then
> echo "CONFIG_PLUGIN=y" >> $config_host_mak
> diff --git a/meson.build b/meson.build
> index 2962c24eb5..935a20c198 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1604,6 +1604,23 @@ config_host_data.set('CONFIG_SPLICE',
> cc.links(gnu_source_prefix + '''
> return 0;
> }'''))
>
> +config_host_data.set('HAVE_MLOCKALL', cc.links(gnu_source_prefix + '''
> + #include <sys/mman.h>
> + int main(int argc, char *argv[]) {
> + return mlockall(MCL_FUTURE);
> + }'''))
> +
> +# Work around a system header bug with some kernel/XFS header
> +# versions where they both try to define 'struct fsxattr':
> +# xfs headers will not try to redefine structs from linux headers
> +# if this macro is set.
> +config_host_data.set('HAVE_FSXATTR', cc.links('''
> + #include <linux/fs.h>'
> + struct fsxattr foo;
> + int main(void) {
> + return 0;
> + }'''))
> +
> # Some versions of Mac OS X incorrectly define SIZE_MAX
> config_host_data.set('HAVE_BROKEN_SIZE_MAX', not cc.compiles('''
> #include <stdint.h>
> @@ -1612,7 +1629,8 @@ config_host_data.set('HAVE_BROKEN_SIZE_MAX', not
> cc.compiles('''
> return printf("%zu", SIZE_MAX);
> }''', args: ['-Werror']))
>
> -ignored = ['CONFIG_QEMU_INTERP_PREFIX'] # actually per-target
> +ignored = ['CONFIG_QEMU_INTERP_PREFIX', # actually per-target
> + 'HAVE_GDB_BIN']
> arrays = ['CONFIG_BDRV_RW_WHITELIST', 'CONFIG_BDRV_RO_WHITELIST']
> strings = ['CONFIG_IASL']
> foreach k, v: config_host
> @@ -1627,7 +1645,7 @@ foreach k, v: config_host
> config_host_data.set('HOST_' + v.to_upper(), 1)
> elif strings.contains(k)
> config_host_data.set_quoted(k, v)
> - elif k.startswith('CONFIG_') or k.startswith('HAVE_')
> + elif k.startswith('CONFIG_')
> config_host_data.set(k, v == 'y' ? 1 : v)
> endif
> endforeach
> --
> 2.31.1
>
>
>
>
--
Marc-André Lureau