@@ -310,6 +310,7 @@ smartcard=""
libusb=""
usb_redir=""
opengl=""
+ifunc=""
zlib="yes"
lzo=""
snappy=""
@@ -1827,6 +1828,20 @@ EOF
fi
##########################################
+# ifunc check
+
+cat > $TMPC << EOF
+static void bar(void) {}
+static void foo(void) __attribute__((ifunc("bar")));
+int main(void) { foo(); return 0; }
+EOF
+if compile_prog "" "" ; then
+ ifunc="yes"
+else
+ ifunc="no"
+fi
+
+#########################################
# zlib check
if test "$zlib" != "no" ; then
@@ -4837,6 +4852,7 @@ echo "libssh2 support $libssh2"
echo "TPM passthrough $tpm_passthrough"
echo "QOM debugging $qom_cast_debug"
echo "vhdx $vhdx"
+echo "ifunc support $ifunc"
echo "lzo support $lzo"
echo "snappy support $snappy"
echo "bzip2 support $bzip2"
@@ -5221,6 +5237,10 @@ if test "$opengl" = "yes" ; then
echo "OPENGL_LIBS=$opengl_libs" >> $config_host_mak
fi
+if test "$ifunc" = "yes" ; then
+ echo "CONFIG_IFUNC=y" >> $config_host_mak
+fi
+
if test "$lzo" = "yes" ; then
echo "CONFIG_LZO=y" >> $config_host_mak
fi
Detect if the compiler can support the ifunc attribute, the avx2 optimization depends on ifunc attribute. Signed-off-by: Liang Li <liang.z.li@intel.com> --- configure | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)