]> git.proxmox.com Git - qemu.git/commitdiff
vhost build fix for i386
authorWolfgang Mauerer <wolfgang.mauerer@siemens.com>
Mon, 11 Jul 2011 12:57:43 +0000 (14:57 +0200)
committerAnthony Liguori <aliguori@us.ibm.com>
Thu, 4 Aug 2011 21:19:04 +0000 (16:19 -0500)
vhost.c uses __sync_fetch_and_and(), which is only
available for -march=i486 and above (see
https://bugzilla.redhat.com/show_bug.cgi?id=624279).

Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
(cherry picked from commit 023367e6cd41199521613674b44e9c703c8be1a1)

configure

index a691e74473a15a58834f6ebfb50ef6473f3b24f9..a5b01739de4bb0b1cf3cdad2167cc49c0cff7f40 100755 (executable)
--- a/configure
+++ b/configure
@@ -2520,6 +2520,29 @@ if test "$trace_backend" = "dtrace"; then
   fi
 fi
 
+##########################################
+# __sync_fetch_and_and requires at least -march=i486. Many toolchains
+# use i686 as default anyway, but for those that don't, an explicit
+# specification is necessary
+if test $vhost_net = "yes" && test $cpu = "i386"; then
+  cat > $TMPC << EOF
+int sfaa(unsigned *ptr)
+{
+  return __sync_fetch_and_and(ptr, 0);
+}
+
+int main(int argc, char **argv)
+{
+  int val = 42;
+  sfaa(&val);
+  return val;
+}
+EOF
+  if ! compile_prog "" "" ; then
+    CFLAGS+="-march=i486"
+  fi
+fi
+
 ##########################################
 # End of CC checks
 # After here, no more $cc or $ld runs