--- /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 ========================================================