summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWolfgang Mauerer <wolfgang.mauerer@siemens.com>2011-07-11 14:57:43 +0200
committerAnthony Liguori <aliguori@us.ibm.com>2011-08-04 16:19:04 -0500
commit9096de69fff3cf34a848e8db3ffddc55cc64adb8 (patch)
treece18a72333187d1c573249dd116d993d1949f86b
parent09afeef1abb4cb5086da2933c4f5606acace4ca1 (diff)
downloadqemu-9096de69fff3cf34a848e8db3ffddc55cc64adb8.tar.gz
vhost build fix for i386
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)
-rwxr-xr-xconfigure23
1 files changed, 23 insertions, 0 deletions
diff --git a/configure b/configure
index a691e74473..a5b01739de 100755
--- a/configure
+++ b/configure
@@ -2521,6 +2521,29 @@ if test "$trace_backend" = "dtrace"; then
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