mozilla-disable-neon-option.patch
changeset 371 ead21d122ed0
child 382 67f876aafae8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-disable-neon-option.patch	Sun Jan 22 13:11:39 2012 +0100
@@ -0,0 +1,157 @@
+# HG changeset patch
+# User Joop Boonen <joop.boonen@opensuse.org>
+# Parent be20a0ae420eb2b3584ce2c5d241e2817bac8593
+Add configure option to allow disabling of neon.
+
+diff --git a/configure.in b/configure.in
+--- a/configure.in
++++ b/configure.in
+@@ -1674,41 +1674,47 @@ if test -n "$all_flags"; then
+     ASFLAGS="$ASFLAGS $all_flags"
+     if test -n "$thumb_flag"; then
+         LDFLAGS="$LDFLAGS $thumb_flag"
+     fi
+ fi
+ 
+ AC_SUBST(MOZ_THUMB2)
+ 
+-if test "$CPU_ARCH" = "arm"; then
+-  AC_MSG_CHECKING(for ARM SIMD support in compiler)
+-  # We try to link so that this also fails when
+-  # building with LTO.
+-  AC_TRY_LINK([],
+-                 [asm("uqadd8 r1, r1, r2");],
+-                 result="yes", result="no")
+-  AC_MSG_RESULT("$result")
+-  if test "$result" = "yes"; then
+-      AC_DEFINE(HAVE_ARM_SIMD)
+-      HAVE_ARM_SIMD=1
+-  fi
+-
+-  AC_MSG_CHECKING(for ARM NEON support in compiler)
+-  # We try to link so that this also fails when
+-  # building with LTO.
+-  AC_TRY_LINK([],
+-                 [asm(".fpu neon\n vadd.i8 d0, d0, d0");],
+-                 result="yes", result="no")
+-  AC_MSG_RESULT("$result")
+-  if test "$result" = "yes"; then
+-      AC_DEFINE(HAVE_ARM_NEON)
+-      HAVE_ARM_NEON=1
+-  fi
+-fi # CPU_ARCH = arm
++MOZ_ARG_DISABLE_BOOL(neon,
++[  --disable-neon       Disable neon extensions],
++    NS_DISABLE_NEON=1,
++    NS_DISABLE_NEON= )
++if test "$NS_DISABLE_NEON" != "1"; then
++  if test "$CPU_ARCH" = "arm"; then
++    AC_MSG_CHECKING(for ARM SIMD support in compiler)
++    # We try to link so that this also fails when
++    # building with LTO.
++    AC_TRY_LINK([],
++                   [asm("uqadd8 r1, r1, r2");],
++                   result="yes", result="no")
++    AC_MSG_RESULT("$result")
++    if test "$result" = "yes"; then
++        AC_DEFINE(HAVE_ARM_SIMD)
++        HAVE_ARM_SIMD=1
++    fi
++
++    AC_MSG_CHECKING(for ARM NEON support in compiler)
++    # We try to link so that this also fails when
++    # building with LTO.
++    AC_TRY_LINK([],
++                   [asm(".fpu neon\n vadd.i8 d0, d0, d0");],
++                   result="yes", result="no")
++    AC_MSG_RESULT("$result")
++    if test "$result" = "yes"; then
++        AC_DEFINE(HAVE_ARM_NEON)
++        HAVE_ARM_NEON=1
++    fi
++  fi # CPU_ARCH = arm
++fi
+ 
+ AC_SUBST(HAVE_ARM_SIMD)
+ AC_SUBST(HAVE_ARM_NEON)
+ 
+ dnl ========================================================
+ dnl Android libstdc++, placed here so it can use MOZ_ARCH
+ dnl computed above.
+ dnl ========================================================
+diff --git a/js/src/configure.in b/js/src/configure.in
+--- a/js/src/configure.in
++++ b/js/src/configure.in
+@@ -1604,41 +1604,47 @@ if test -n "$all_flags"; then
+     ASFLAGS="$ASFLAGS $all_flags"
+     if test -n "$thumb_flag"; then
+         LDFLAGS="$LDFLAGS $thumb_flag"
+     fi
+ fi
+ 
+ AC_SUBST(MOZ_THUMB2)
+ 
+-if test "$CPU_ARCH" = "arm"; then
+-  AC_MSG_CHECKING(for ARM SIMD support in compiler)
+-  # We try to link so that this also fails when
+-  # building with LTO.
+-  AC_TRY_LINK([],
+-                 [asm("uqadd8 r1, r1, r2");],
+-                 result="yes", result="no")
+-  AC_MSG_RESULT("$result")
+-  if test "$result" = "yes"; then
+-      AC_DEFINE(HAVE_ARM_SIMD)
+-      HAVE_ARM_SIMD=1
+-  fi
+-
+-  AC_MSG_CHECKING(for ARM NEON support in compiler)
+-  # We try to link so that this also fails when
+-  # building with LTO.
+-  AC_TRY_LINK([],
+-                 [asm(".fpu neon\n vadd.i8 d0, d0, d0");],
+-                 result="yes", result="no")
+-  AC_MSG_RESULT("$result")
+-  if test "$result" = "yes"; then
+-      AC_DEFINE(HAVE_ARM_NEON)
+-      HAVE_ARM_NEON=1
+-  fi
+-fi # CPU_ARCH = arm
++MOZ_ARG_DISABLE_BOOL(neon,
++[  --disable-neon       Disable neon extensions],
++    NS_DISABLE_NEON=1,
++    NS_DISABLE_NEON= )
++if test "$NS_DISABLE_NEON" != "1"; then
++  if test "$CPU_ARCH" = "arm"; then
++    AC_MSG_CHECKING(for ARM SIMD support in compiler)
++    # We try to link so that this also fails when
++    # building with LTO.
++    AC_TRY_LINK([],
++                   [asm("uqadd8 r1, r1, r2");],
++                   result="yes", result="no")
++    AC_MSG_RESULT("$result")
++    if test "$result" = "yes"; then
++        AC_DEFINE(HAVE_ARM_SIMD)
++        HAVE_ARM_SIMD=1
++    fi
++
++    AC_MSG_CHECKING(for ARM NEON support in compiler)
++    # We try to link so that this also fails when
++    # building with LTO.
++    AC_TRY_LINK([],
++                   [asm(".fpu neon\n vadd.i8 d0, d0, d0");],
++                   result="yes", result="no")
++    AC_MSG_RESULT("$result")
++    if test "$result" = "yes"; then
++        AC_DEFINE(HAVE_ARM_NEON)
++        HAVE_ARM_NEON=1
++    fi
++  fi # CPU_ARCH = arm
++fi
+ 
+ AC_SUBST(HAVE_ARM_SIMD)
+ AC_SUBST(HAVE_ARM_NEON)
+ 
+ dnl ========================================================
+ dnl Android libstdc++, placed here so it can use MOZ_ARCH
+ dnl computed above.
+ dnl ========================================================