diff -r fb2107b60ba2 -r ead21d122ed0 mozilla-disable-neon-option.patch --- /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 +# 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 ========================================================