introduce --disable-neon option and use on ARM
authorJoop Boonen <joop.boonen@opensuse.org>
Sun, 22 Jan 2012 13:11:39 +0100
changeset 371 ead21d122ed0
parent 370 fb2107b60ba2
child 372 5a5bf0116f26
introduce --disable-neon option and use on ARM
MozillaFirefox/MozillaFirefox.changes
MozillaFirefox/MozillaFirefox.spec
mozilla-disable-neon-option.patch
series
xulrunner/xulrunner.spec
--- a/MozillaFirefox/MozillaFirefox.changes	Sun Jan 22 12:57:26 2012 +0100
+++ b/MozillaFirefox/MozillaFirefox.changes	Sun Jan 22 13:11:39 2012 +0100
@@ -1,3 +1,13 @@
+-------------------------------------------------------------------
+Sun Jan 22 12:08:07 UTC 2012 - joop.boonen@opensuse.org
+
+- Disable neon for arm as it doesn't build correctly
+
+-------------------------------------------------------------------
+Sun Jan 22 12:07:39 UTC 2012 - wr@rosenauer.org
+
+- update to Firefox 10.0b5
+
 -------------------------------------------------------------------
 Fri Dec 23 17:02:01 UTC 2011 - wr@rosenauer.org
 
--- a/MozillaFirefox/MozillaFirefox.spec	Sun Jan 22 12:57:26 2012 +0100
+++ b/MozillaFirefox/MozillaFirefox.spec	Sun Jan 22 13:11:39 2012 +0100
@@ -86,6 +86,7 @@
 Patch11:        mozilla-sle11.patch
 Patch12:        mozilla-linux3.patch
 Patch13:        mozilla-a11y.patch
+Patch14:        mozilla-disable-neon-option.patch
 # Firefox/browser
 Patch31:        firefox-browser-css.patch
 Patch32:        firefox-cross-desktop.patch
@@ -213,6 +214,7 @@
 %endif
 %patch12 -p1
 %patch13 -p1
+%patch14 -p1
 #
 %patch31 -p1
 %patch32 -p1
@@ -298,6 +300,12 @@
 ac_add_options --disable-crashreporter
 EOF
 %endif
+# Disable neon for arm as it does not build correctly
+%ifarch %arm
+cat << EOF >> $MOZCONFIG
+ac_add_options --disable-neon
+EOF
+%endif
 make -f client.mk build
 
 %install
--- /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 ========================================================
--- a/series	Sun Jan 22 12:57:26 2012 +0100
+++ b/series	Sun Jan 22 13:11:39 2012 +0100
@@ -17,6 +17,7 @@
 mozilla-sle11.patch
 mozilla-linux3.patch
 mozilla-a11y.patch
+mozilla-disable-neon-option.patch
 
 # Firefox patches
 firefox-browser-css.patch
--- a/xulrunner/xulrunner.spec	Sun Jan 22 12:57:26 2012 +0100
+++ b/xulrunner/xulrunner.spec	Sun Jan 22 13:11:39 2012 +0100
@@ -1,8 +1,8 @@
 #
 # spec file for package xulrunner
 #
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
-#               2006-2011 Wolfgang Rosenauer
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+#               2006-2012 Wolfgang Rosenauer
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -77,6 +77,7 @@
 Patch14:        mozilla-linux3.patch
 Patch15:        mozilla-ppc64.patch
 Patch16:        mozilla-a11y.patch
+Patch17:        mozilla-disable-neon-option.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Requires:       mozilla-js = %{version}
 Requires(post):  update-alternatives coreutils
@@ -196,6 +197,7 @@
 %patch14 -p1
 %patch15 -p1
 %patch16 -p1
+%patch17 -p1
 
 %build
 # no need to add build time to binaries
@@ -282,6 +284,12 @@
 ac_add_options --disable-ipc
 EOF
 %endif
+# Disable neon for arm as it does not build correctly
+%ifarch %arm
+cat << EOF >> $MOZCONFIG
+ac_add_options --disable-neon
+EOF
+%endif
 make -f client.mk build
 
 %install