configure: Provide option to explicitly disable AVX2

The configure script detects if the compiler has AVX2 support and
automatically sets avx2_opt="yes" which in turn defines CONFIG_AVX2_OPT.
There is no way of explicitly overriding this setting so this commit adds
two command-line options: --enable-avx2 and --disable-avx2.

The default behaviour, when no option is specified, is to maintain the
current behaviour and enable AVX2 if the compiler supports it.

Signed-off-by: Liam Merwick <Liam.Merwick@oracle.com>
Reviewed-by: Darren Kenny <Darren.Kenny@oracle.com>
Reviewed-by: Mark Kanda <Mark.Kanda@oracle.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Liam Merwick 2018-10-19 21:38:59 +01:00 committed by Thomas Huth
parent ba27877618
commit 86583a07c4
1 changed files with 9 additions and 2 deletions

11
configure vendored
View File

@ -428,7 +428,7 @@ usb_redir=""
opengl="" opengl=""
opengl_dmabuf="no" opengl_dmabuf="no"
cpuid_h="no" cpuid_h="no"
avx2_opt="no" avx2_opt=""
zlib="yes" zlib="yes"
capstone="" capstone=""
lzo="" lzo=""
@ -1329,6 +1329,10 @@ for opt do
;; ;;
--disable-glusterfs) glusterfs="no" --disable-glusterfs) glusterfs="no"
;; ;;
--disable-avx2) avx2_opt="no"
;;
--enable-avx2) avx2_opt="yes"
;;
--enable-glusterfs) glusterfs="yes" --enable-glusterfs) glusterfs="yes"
;; ;;
--disable-virtio-blk-data-plane|--enable-virtio-blk-data-plane) --disable-virtio-blk-data-plane|--enable-virtio-blk-data-plane)
@ -1703,6 +1707,7 @@ disabled with --disable-FEATURE, default is enabled if available:
libxml2 for Parallels image format libxml2 for Parallels image format
tcmalloc tcmalloc support tcmalloc tcmalloc support
jemalloc jemalloc support jemalloc jemalloc support
avx2 AVX2 optimization support
replication replication support replication replication support
vhost-vsock virtio sockets device support vhost-vsock virtio sockets device support
opengl opengl support opengl opengl support
@ -5032,7 +5037,7 @@ fi
# There is no point enabling this if cpuid.h is not usable, # There is no point enabling this if cpuid.h is not usable,
# since we won't be able to select the new routines. # since we won't be able to select the new routines.
if test $cpuid_h = yes; then if test "$cpuid_h" = "yes" -a "$avx2_opt" != "no"; then
cat > $TMPC << EOF cat > $TMPC << EOF
#pragma GCC push_options #pragma GCC push_options
#pragma GCC target("avx2") #pragma GCC target("avx2")
@ -5046,6 +5051,8 @@ int main(int argc, char *argv[]) { return bar(argv[0]); }
EOF EOF
if compile_object "" ; then if compile_object "" ; then
avx2_opt="yes" avx2_opt="yes"
else
avx2_opt="no"
fi fi
fi fi