ARM updates firefox63
authorGuillaume GARDET <guillaume.gardet@opensuse.org>
Mon, 29 Oct 2018 15:14:41 +0100
branchfirefox63
changeset 1076 2823eb50c9a9
parent 1075 0831123bc28a
child 1077 d8601c72c87b
ARM updates
MozillaFirefox/MozillaFirefox.changes
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/_constraints
MozillaFirefox/mozilla-bmo1463035.patch
mozilla-bmo1463035.patch
series
--- a/MozillaFirefox/MozillaFirefox.changes	Mon Oct 29 15:08:22 2018 +0100
+++ b/MozillaFirefox/MozillaFirefox.changes	Mon Oct 29 15:14:41 2018 +0100
@@ -11,6 +11,17 @@
 - requires NSPR 4.20, NSS 3.39 and Rust 1.28
 
 -------------------------------------------------------------------
+Thu Oct 25 14:39:04 UTC 2018 - guillaume.gardet@opensuse.org
+
+- Update _constraints for armv6/7
+
+-------------------------------------------------------------------
+Thu Oct 25 08:50:24 UTC 2018 - guillaume.gardet@opensuse.org
+
+- Add patch to fix build on armv7:
+  * mozilla-bmo1463035.patch
+
+-------------------------------------------------------------------
 Tue Oct  2 21:28:31 UTC 2018 - astieger@suse.com
 
 - Mozilla Firefox 62.0.3:
--- a/MozillaFirefox/MozillaFirefox.spec	Mon Oct 29 15:08:22 2018 +0100
+++ b/MozillaFirefox/MozillaFirefox.spec	Mon Oct 29 15:14:41 2018 +0100
@@ -158,6 +158,7 @@
 Patch6:         mozilla-reduce-files-per-UnifiedBindings.patch
 Patch7:         mozilla-aarch64-startup-crash.patch
 Patch8:         mozilla-bmo256180.patch
+Patch9:         mozilla-bmo1463035.patch
 # Firefox/browser
 Patch101:       firefox-kde.patch
 Patch102:       firefox-branded-icons.patch
@@ -266,6 +267,7 @@
 %endif
 %patch7 -p1
 %patch8 -p1
+%patch9 -p1
 # Firefox
 %patch101 -p1
 %patch102 -p1
--- a/MozillaFirefox/_constraints	Mon Oct 29 15:08:22 2018 +0100
+++ b/MozillaFirefox/_constraints	Mon Oct 29 15:14:41 2018 +0100
@@ -12,15 +12,6 @@
     <conditions>
       <arch>armv6l</arch>
       <arch>armv7l</arch>
-    </conditions>
-    <hardware>
-      <memory>
-        <size unit="M">2600</size>
-      </memory>
-    </hardware>
-  </overwrite>
-  <overwrite>
-    <conditions>
       <arch>aarch64</arch>
     </conditions>
     <hardware>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MozillaFirefox/mozilla-bmo1463035.patch	Mon Oct 29 15:14:41 2018 +0100
@@ -0,0 +1,1 @@
+../mozilla-bmo1463035.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-bmo1463035.patch	Mon Oct 29 15:14:41 2018 +0100
@@ -0,0 +1,130 @@
+
+# HG changeset patch
+# User Mike Hommey <mh+mozilla@glandium.org>
+# Date 1526871862 -32400
+# Node ID 94f21505ff13cd089f7129cd24927cf8b31a0f43
+# Parent  1800b8895c08bc0c60302775dc0a4b5ea4deb310
+Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r?darchons
+
+For some reason, GNU as is not happy with the assembly generated after
+bug 1238661 anymore on Debian armel.
+
+OTOH, as mentioned in bug 1238661 comment 4, we actually don't need this
+workaround anymore, so let's just kill it.
+
+
+diff --git a/mfbt/LinuxSignal.h b/mfbt/LinuxSignal.h
+deleted file mode 100644
+--- a/mfbt/LinuxSignal.h
++++ /dev/null
+@@ -1,45 +0,0 @@
+-/* This Source Code Form is subject to the terms of the Mozilla Public
+- * License, v. 2.0. If a copy of the MPL was not distributed with this
+- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+-
+-#ifndef mozilla_LinuxSignal_h
+-#define mozilla_LinuxSignal_h
+-
+-namespace mozilla {
+-
+-#if defined(__arm__)
+-
+-// Some (old) Linux kernels on ARM have a bug where a signal handler
+-// can be called without clearing the IT bits in CPSR first. The result
+-// is that the first few instructions of the handler could be skipped,
+-// ultimately resulting in crashes. To workaround this bug, the handler
+-// on ARM is a trampoline that starts with enough NOP instructions, so
+-// that even if the IT bits are not cleared, only the NOP instructions
+-// will be skipped over.
+-
+-template <void (*H)(int, siginfo_t*, void*)>
+-__attribute__((naked)) void
+-SignalTrampoline(int aSignal, siginfo_t* aInfo, void* aContext)
+-{
+-  asm volatile (
+-    "nop; nop; nop; nop"
+-    : : : "memory");
+-
+-  asm volatile (
+-    "b %0"
+-    :
+-    : "X"(H)
+-    : "memory");
+-}
+-
+-# define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline<h>)
+-
+-#else // __arm__
+-
+-# define MOZ_SIGNAL_TRAMPOLINE(h) (h)
+-
+-#endif // __arm__
+-
+-} // namespace mozilla
+-
+-#endif // mozilla_LinuxSignal_h
+diff --git a/mfbt/moz.build b/mfbt/moz.build
+--- a/mfbt/moz.build
++++ b/mfbt/moz.build
+@@ -117,20 +117,16 @@ EXPORTS["double-conversion"] = [
+ LOCAL_INCLUDES += [
+     '/mfbt/double-conversion',
+ ]
+ 
+ if CONFIG['OS_ARCH'] == 'WINNT':
+     EXPORTS.mozilla += [
+         'WindowsVersion.h',
+     ]
+-elif CONFIG['OS_ARCH'] == 'Linux':
+-    EXPORTS.mozilla += [
+-        'LinuxSignal.h',
+-    ]
+ 
+ UNIFIED_SOURCES += [
+     'Assertions.cpp',
+     'ChaosMode.cpp',
+     'double-conversion/double-conversion/bignum-dtoa.cc',
+     'double-conversion/double-conversion/bignum.cc',
+     'double-conversion/double-conversion/cached-powers.cc',
+     'double-conversion/double-conversion/diy-fp.cc',
+diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp
+--- a/tools/profiler/core/platform-linux-android.cpp
++++ b/tools/profiler/core/platform-linux-android.cpp
+@@ -55,17 +55,16 @@
+ #ifdef __GLIBC__
+ #include <execinfo.h>   // backtrace, backtrace_symbols
+ #endif  // def __GLIBC__
+ #include <strings.h>    // index
+ #include <errno.h>
+ #include <stdarg.h>
+ 
+ #include "prenv.h"
+-#include "mozilla/LinuxSignal.h"
+ #include "mozilla/PodOperations.h"
+ #include "mozilla/DebugOnly.h"
+ 
+ #include <string.h>
+ #include <list>
+ 
+ using namespace mozilla;
+ 
+@@ -272,17 +271,17 @@ Sampler::Sampler(PSLockRef aLock)
+ 
+   // NOTE: We don't initialize LUL here, instead initializing it in
+   // SamplerThread's constructor. This is because with the
+   // profiler_suspend_and_sample_thread entry point, we want to be able to
+   // sample without waiting for LUL to be initialized.
+ 
+   // Request profiling signals.
+   struct sigaction sa;
+-  sa.sa_sigaction = MOZ_SIGNAL_TRAMPOLINE(SigprofHandler);
++  sa.sa_sigaction = SigprofHandler;
+   sigemptyset(&sa.sa_mask);
+   sa.sa_flags = SA_RESTART | SA_SIGINFO;
+   if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {
+     MOZ_CRASH("Error installing SIGPROF handler in the profiler");
+   }
+ }
+ 
+ void
+
--- a/series	Mon Oct 29 15:08:22 2018 +0100
+++ b/series	Mon Oct 29 15:14:41 2018 +0100
@@ -7,6 +7,7 @@
 mozilla-reduce-files-per-UnifiedBindings.patch
 mozilla-aarch64-startup-crash.patch
 mozilla-bmo256180.patch
+mozilla-bmo1463035.patch
 
 # Firefox patches
 firefox-kde.patch