From 9bb3d7bcac12cc3f35cdffbd430c740cf8daaa8a4379936f9b63f6af976ab872 Mon Sep 17 00:00:00 2001 From: Wolfgang Rosenauer Date: Mon, 29 Oct 2018 08:28:50 +0000 Subject: [PATCH] Accepting request 644807 from home:Guillaume_G:branches:mozilla:Factory - Update _constraints for armv6/7 - Add patch to fix build on armv7: * mozilla-bmo1463035.patch - Add memory-constraints to avoid OOM errors OBS-URL: https://build.opensuse.org/request/show/644807 OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaThunderbird?expand=0&rev=436 --- MozillaThunderbird.changes | 16 +++++ MozillaThunderbird.spec | 7 +- _constraints | 9 --- mozilla-bmo1463035.patch | 130 +++++++++++++++++++++++++++++++++++++ 4 files changed, 152 insertions(+), 10 deletions(-) create mode 100644 mozilla-bmo1463035.patch diff --git a/MozillaThunderbird.changes b/MozillaThunderbird.changes index 31a8c68..bb6ac28 100644 --- a/MozillaThunderbird.changes +++ b/MozillaThunderbird.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Thu Oct 25 14:40:14 UTC 2018 - Guillaume GARDET + +- Update _constraints for armv6/7 + +------------------------------------------------------------------- +Thu Oct 25 08:26:12 UTC 2018 - Guillaume GARDET + +- Add patch to fix build on armv7: + * mozilla-bmo1463035.patch + +------------------------------------------------------------------- +Thu Oct 25 08:25:52 UTC 2018 - Guillaume GARDET + +- Add memory-constraints to avoid OOM errors + ------------------------------------------------------------------- Fri Oct 12 14:26:17 UTC 2018 - meissner@suse.com diff --git a/MozillaThunderbird.spec b/MozillaThunderbird.spec index 96f3d8c..357702c 100644 --- a/MozillaThunderbird.spec +++ b/MozillaThunderbird.spec @@ -13,7 +13,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -42,6 +42,7 @@ BuildRequires: libXcomposite-devel BuildRequires: libcurl-devel BuildRequires: libidl-devel BuildRequires: libnotify-devel +BuildRequires: memory-constraints BuildRequires: mozilla-nspr-devel >= 4.19 BuildRequires: mozilla-nss-devel >= 3.36.4 BuildRequires: python @@ -119,6 +120,7 @@ Patch7: mozilla-bmo1375074.patch Patch8: mozilla-bmo1464766.patch Patch9: mozilla-i586-DecoderDoctorLogger.patch Patch10: mozilla-i586-domPrefs.patch +Patch11: mozilla-bmo1463035.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build PreReq: coreutils fileutils textutils /bin/sh Recommends: libcanberra0 @@ -202,6 +204,7 @@ symbols meant for upload to Mozilla's crash collector database. %patch9 -p1 %patch10 -p1 %endif +%patch11 -p1 %build # no need to add build time to binaries @@ -251,6 +254,8 @@ export MOZCONFIG=$RPM_BUILD_DIR/mozconfig # is not forced into CFLAGS export MOZ_DEBUG_FLAGS="-pipe" # +# Limit RAM usage to avoid OOM +%limit_build -m 1500 cat << EOF > $MOZCONFIG mk_add_options MOZILLA_OFFICIAL=1 mk_add_options BUILD_OFFICIAL=1 diff --git a/_constraints b/_constraints index d08bc8a..ff2151c 100644 --- a/_constraints +++ b/_constraints @@ -12,15 +12,6 @@ armv6l armv7l - - - - 2600 - - - - - aarch64 diff --git a/mozilla-bmo1463035.patch b/mozilla-bmo1463035.patch new file mode 100644 index 0000000..039f039 --- /dev/null +++ b/mozilla-bmo1463035.patch @@ -0,0 +1,130 @@ + +# HG changeset patch +# User Mike Hommey +# 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 +-__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) +- +-#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 // backtrace, backtrace_symbols + #endif // def __GLIBC__ + #include // index + #include + #include + + #include "prenv.h" +-#include "mozilla/LinuxSignal.h" + #include "mozilla/PodOperations.h" + #include "mozilla/DebugOnly.h" + + #include + #include + + 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 +