mirror of https://github.com/xemu-project/xemu.git
meson, configure: move keyctl test to meson
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
3730a7341f
commit
2edd2c04c2
|
@ -322,7 +322,6 @@ trace_file="trace"
|
||||||
coroutine=""
|
coroutine=""
|
||||||
tls_priority="NORMAL"
|
tls_priority="NORMAL"
|
||||||
plugins="$default_feature"
|
plugins="$default_feature"
|
||||||
secret_keyring="$default_feature"
|
|
||||||
meson=""
|
meson=""
|
||||||
meson_args=""
|
meson_args=""
|
||||||
ninja=""
|
ninja=""
|
||||||
|
@ -1009,10 +1008,6 @@ for opt do
|
||||||
;;
|
;;
|
||||||
--gdb=*) gdb_bin="$optarg"
|
--gdb=*) gdb_bin="$optarg"
|
||||||
;;
|
;;
|
||||||
--enable-keyring) secret_keyring="yes"
|
|
||||||
;;
|
|
||||||
--disable-keyring) secret_keyring="no"
|
|
||||||
;;
|
|
||||||
--enable-gio) gio=yes
|
--enable-gio) gio=yes
|
||||||
;;
|
;;
|
||||||
--disable-gio) gio=no
|
--disable-gio) gio=no
|
||||||
|
@ -2440,41 +2435,6 @@ case "$slirp" in
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
##########################################
|
|
||||||
# check for usable __NR_keyctl syscall
|
|
||||||
|
|
||||||
if test "$linux" = "yes" ; then
|
|
||||||
|
|
||||||
have_keyring=no
|
|
||||||
cat > $TMPC << EOF
|
|
||||||
#include <errno.h>
|
|
||||||
#include <asm/unistd.h>
|
|
||||||
#include <linux/keyctl.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
int main(void) {
|
|
||||||
return syscall(__NR_keyctl, KEYCTL_READ, 0, NULL, NULL, 0);
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
if compile_prog "" "" ; then
|
|
||||||
have_keyring=yes
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if test "$secret_keyring" != "no"
|
|
||||||
then
|
|
||||||
if test "$have_keyring" = "yes"
|
|
||||||
then
|
|
||||||
secret_keyring=yes
|
|
||||||
else
|
|
||||||
if test "$secret_keyring" = "yes"
|
|
||||||
then
|
|
||||||
error_exit "syscall __NR_keyctl requested, \
|
|
||||||
but not implemented on your system"
|
|
||||||
else
|
|
||||||
secret_keyring=no
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# End of CC checks
|
# End of CC checks
|
||||||
# After here, no more $cc or $ld runs
|
# After here, no more $cc or $ld runs
|
||||||
|
@ -2760,10 +2720,6 @@ if test -n "$gdb_bin"; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$secret_keyring" = "yes" ; then
|
|
||||||
echo "CONFIG_SECRET_KEYRING=y" >> $config_host_mak
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "ROMS=$roms" >> $config_host_mak
|
echo "ROMS=$roms" >> $config_host_mak
|
||||||
echo "MAKE=$make" >> $config_host_mak
|
echo "MAKE=$make" >> $config_host_mak
|
||||||
echo "PYTHON=$python" >> $config_host_mak
|
echo "PYTHON=$python" >> $config_host_mak
|
||||||
|
|
|
@ -34,7 +34,9 @@ else
|
||||||
crypto_ss.add(files('hash-glib.c', 'hmac-glib.c', 'pbkdf-stub.c'))
|
crypto_ss.add(files('hash-glib.c', 'hmac-glib.c', 'pbkdf-stub.c'))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
crypto_ss.add(when: 'CONFIG_SECRET_KEYRING', if_true: files('secret_keyring.c'))
|
if have_keyring
|
||||||
|
crypto_ss.add(files('secret_keyring.c'))
|
||||||
|
endif
|
||||||
if have_afalg
|
if have_afalg
|
||||||
crypto_ss.add(if_true: files('afalg.c', 'cipher-afalg.c', 'hash-afalg.c'))
|
crypto_ss.add(if_true: files('afalg.c', 'cipher-afalg.c', 'hash-afalg.c'))
|
||||||
endif
|
endif
|
||||||
|
|
15
meson.build
15
meson.build
|
@ -1940,6 +1940,19 @@ config_host_data.set('CONFIG_GETAUXVAL', cc.links(gnu_source_prefix + '''
|
||||||
return getauxval(AT_HWCAP) == 0;
|
return getauxval(AT_HWCAP) == 0;
|
||||||
}'''))
|
}'''))
|
||||||
|
|
||||||
|
have_keyring = get_option('keyring') \
|
||||||
|
.require(targetos == 'linux', error_message: 'keyring is only available on Linux') \
|
||||||
|
.require(cc.compiles('''
|
||||||
|
#include <errno.h>
|
||||||
|
#include <asm/unistd.h>
|
||||||
|
#include <linux/keyctl.h>
|
||||||
|
#include <sys/syscall.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
int main(void) {
|
||||||
|
return syscall(__NR_keyctl, KEYCTL_READ, 0, NULL, NULL, 0);
|
||||||
|
}'''), error_message: 'keyctl syscall not available on this system').allowed()
|
||||||
|
config_host_data.set('CONFIG_SECRET_KEYRING', have_keyring)
|
||||||
|
|
||||||
have_cpuid_h = cc.links('''
|
have_cpuid_h = cc.links('''
|
||||||
#include <cpuid.h>
|
#include <cpuid.h>
|
||||||
int main(void) {
|
int main(void) {
|
||||||
|
@ -3698,7 +3711,7 @@ if nettle.found()
|
||||||
endif
|
endif
|
||||||
summary_info += {'AF_ALG support': have_afalg}
|
summary_info += {'AF_ALG support': have_afalg}
|
||||||
summary_info += {'rng-none': get_option('rng_none')}
|
summary_info += {'rng-none': get_option('rng_none')}
|
||||||
summary_info += {'Linux keyring': config_host.has_key('CONFIG_SECRET_KEYRING')}
|
summary_info += {'Linux keyring': have_keyring}
|
||||||
summary(summary_info, bool_yn: true, section: 'Crypto')
|
summary(summary_info, bool_yn: true, section: 'Crypto')
|
||||||
|
|
||||||
# Libraries
|
# Libraries
|
||||||
|
|
|
@ -90,6 +90,8 @@ option('avx2', type: 'feature', value: 'auto',
|
||||||
description: 'AVX2 optimizations')
|
description: 'AVX2 optimizations')
|
||||||
option('avx512f', type: 'feature', value: 'disabled',
|
option('avx512f', type: 'feature', value: 'disabled',
|
||||||
description: 'AVX512F optimizations')
|
description: 'AVX512F optimizations')
|
||||||
|
option('keyring', type: 'feature', value: 'auto',
|
||||||
|
description: 'Linux keyring support')
|
||||||
|
|
||||||
option('attr', type : 'feature', value : 'auto',
|
option('attr', type : 'feature', value : 'auto',
|
||||||
description: 'attr/xattr support')
|
description: 'attr/xattr support')
|
||||||
|
|
|
@ -68,6 +68,7 @@ meson_options_help() {
|
||||||
printf "%s\n" ' hvf HVF acceleration support'
|
printf "%s\n" ' hvf HVF acceleration support'
|
||||||
printf "%s\n" ' iconv Font glyph conversion support'
|
printf "%s\n" ' iconv Font glyph conversion support'
|
||||||
printf "%s\n" ' jack JACK sound support'
|
printf "%s\n" ' jack JACK sound support'
|
||||||
|
printf "%s\n" ' keyring Linux keyring support'
|
||||||
printf "%s\n" ' kvm KVM acceleration support'
|
printf "%s\n" ' kvm KVM acceleration support'
|
||||||
printf "%s\n" ' l2tpv3 l2tpv3 network backend support'
|
printf "%s\n" ' l2tpv3 l2tpv3 network backend support'
|
||||||
printf "%s\n" ' libdaxctl libdaxctl support'
|
printf "%s\n" ' libdaxctl libdaxctl support'
|
||||||
|
@ -229,6 +230,8 @@ _meson_option_parse() {
|
||||||
--disable-install-blobs) printf "%s" -Dinstall_blobs=false ;;
|
--disable-install-blobs) printf "%s" -Dinstall_blobs=false ;;
|
||||||
--enable-jack) printf "%s" -Djack=enabled ;;
|
--enable-jack) printf "%s" -Djack=enabled ;;
|
||||||
--disable-jack) printf "%s" -Djack=disabled ;;
|
--disable-jack) printf "%s" -Djack=disabled ;;
|
||||||
|
--enable-keyring) printf "%s" -Dkeyring=enabled ;;
|
||||||
|
--disable-keyring) printf "%s" -Dkeyring=disabled ;;
|
||||||
--enable-kvm) printf "%s" -Dkvm=enabled ;;
|
--enable-kvm) printf "%s" -Dkvm=enabled ;;
|
||||||
--disable-kvm) printf "%s" -Dkvm=disabled ;;
|
--disable-kvm) printf "%s" -Dkvm=disabled ;;
|
||||||
--enable-l2tpv3) printf "%s" -Dl2tpv3=enabled ;;
|
--enable-l2tpv3) printf "%s" -Dl2tpv3=enabled ;;
|
||||||
|
|
Loading…
Reference in New Issue