ARM: SIMD: Try without any CFLAGS before forcing -mcpu=
authorLoïc Minier <loic.minier@ubuntu.com>
Tue, 9 Mar 2010 19:57:34 +0000 (20:57 +0100)
committerSiarhei Siamashka <siarhei.siamashka@nokia.com>
Sun, 14 Mar 2010 11:15:34 +0000 (13:15 +0200)
http://bugs.launchpad.net/bugs/535183

configure.ac

index dcfbfa9..fed97b1 100644 (file)
@@ -363,18 +363,28 @@ AM_CONDITIONAL(USE_VMX, test $have_vmx_intrinsics = yes)
 
 dnl ===========================================================================
 dnl Check for ARM SIMD instructions
-ARM_SIMD_CFLAGS="-mcpu=arm1136j-s"
+ARM_SIMD_CFLAGS=""
 
 have_arm_simd=no
 AC_MSG_CHECKING(whether to use ARM SIMD assembler)
-xserver_save_CFLAGS=$CFLAGS
-CFLAGS="$ARM_SIMD_CFLAGS $CFLAGS"
+# check with default CFLAGS in case the toolchain turns on a sufficiently recent -mcpu=
 AC_COMPILE_IFELSE([
 int main () {
     asm("uqadd8 r1, r1, r2");
     return 0;
-}], have_arm_simd=yes)
-CFLAGS=$xserver_save_CFLAGS
+}], have_arm_simd=yes,
+    # check again with an explicit -mcpu= in case the toolchain defaults to an
+    # older one; note that uqadd8 isn't available in Thumb mode on arm1136j-s
+    # so we force ARM mode
+    ARM_SIMD_CFLAGS="-mcpu=arm1136j-s -marm"
+    xserver_save_CFLAGS=$CFLAGS
+    CFLAGS="$ARM_SIMD_CFLAGS $CFLAGS"
+    AC_COMPILE_IFELSE([
+    int main () {
+        asm("uqadd8 r1, r1, r2");
+        return 0;
+    }], have_arm_simd=yes)
+    CFLAGS=$xserver_save_CFLAGS)
 
 AC_ARG_ENABLE(arm-simd,
    [AC_HELP_STRING([--disable-arm-simd],