On Thu, Oct 7, 2021 at 5:23 PM Paolo Bonzini wrote: > Remove some special cases by moving them to Meson. > > Signed-off-by: Paolo Bonzini > Reviewed-by: Marc-André Lureau > --- > 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 < -#include > -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 > -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 > + 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 ' > + 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 > @@ -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