[arch-commits] Commit in firefox/trunk (7 files)

Jan Steffens heftig at archlinux.org
Fri Sep 29 04:05:00 UTC 2017


    Date: Friday, September 29, 2017 @ 04:05:00
  Author: heftig
Revision: 306460

56.0-1

Added:
  firefox/trunk/0001-Bug-1384062-Make-SystemResourceMonitor.stop-more-res.patch
  firefox/trunk/no-plt.diff
  firefox/trunk/plugin-crash.diff
Modified:
  firefox/trunk/PKGBUILD
Deleted:
  firefox/trunk/clip-ft-glyph.diff
  firefox/trunk/harmony-fix.diff
  firefox/trunk/no-crmf.diff

-----------------------------------------------------------------+
 0001-Bug-1384062-Make-SystemResourceMonitor.stop-more-res.patch |  117 +++++++
 PKGBUILD                                                        |   60 +--
 clip-ft-glyph.diff                                              |  162 ----------
 harmony-fix.diff                                                |   16 
 no-crmf.diff                                                    |   15 
 no-plt.diff                                                     |   48 ++
 plugin-crash.diff                                               |   50 +++
 7 files changed, 246 insertions(+), 222 deletions(-)

Added: 0001-Bug-1384062-Make-SystemResourceMonitor.stop-more-res.patch
===================================================================
--- 0001-Bug-1384062-Make-SystemResourceMonitor.stop-more-res.patch	                        (rev 0)
+++ 0001-Bug-1384062-Make-SystemResourceMonitor.stop-more-res.patch	2017-09-29 04:05:00 UTC (rev 306460)
@@ -0,0 +1,117 @@
+From 2874ecd82e9671f774bdfda41fe0857fcb916c13 Mon Sep 17 00:00:00 2001
+Message-Id: <2874ecd82e9671f774bdfda41fe0857fcb916c13.1506634385.git.jan.steffens at gmail.com>
+From: Mike Hommey <mh+mozilla at glandium.org>
+Date: Wed, 16 Aug 2017 13:16:16 +0900
+Subject: [PATCH] Bug 1384062 - Make SystemResourceMonitor.stop more resilient
+ to errors. r=ahal,gps
+
+The poll() call in SystemResourceMonitor.stop might fail even though
+there is something to read from the pipe, in some corner cases, and
+python won't let us know about it. In that case, an exception is thrown,
+leaving the SystemResourceMonitor (and its callers) in a weird state. In
+practice, this leads BuildMonitor.__exit__ to recall stop, which then
+fails.
+
+So when poll() throws an exception, we pretend there's still something
+to read, and we try to read anyways. If there is something to read,
+recv() will return it, otherwise, it will throw an exception of its own,
+which we catch, pretending we're done.
+
+Furthermore, when there is nothing to read from the pipe, poll() simply
+returns False, and our loop never sets `done` to True, and we then hit
+an assert, which doesn't have its place here, so we remove it.
+
+Finally, the other end of the pipe might have died at any time, making
+sending over the pipe fail, so we also protect against that.
+
+With all these changes, it feels like the reason to backout bug 1239939
+in bug 1272782 should have been dealt with, and we can drop the timeout
+again.
+
+--HG--
+extra : rebase_source : ac72dd5b2602cf3ffddfb429f95e02380f939893
+---
+ .../mozsystemmonitor/resourcemonitor.py            | 38 +++++++++++++++-------
+ 1 file changed, 26 insertions(+), 12 deletions(-)
+
+diff --git a/testing/mozbase/mozsystemmonitor/mozsystemmonitor/resourcemonitor.py b/testing/mozbase/mozsystemmonitor/mozsystemmonitor/resourcemonitor.py
+index 8f2ac95cbe505540..38f9bc986ac2a120 100644
+--- a/testing/mozbase/mozsystemmonitor/mozsystemmonitor/resourcemonitor.py
++++ b/testing/mozbase/mozsystemmonitor/mozsystemmonitor/resourcemonitor.py
+@@ -289,47 +289,61 @@ class SystemResourceMonitor(object):
+         assert self._running
+         assert not self._stopped
+ 
+-        self._pipe.send(('terminate',))
++        try:
++            self._pipe.send(('terminate',))
++        except Exception:
++            pass
+         self._running = False
+         self._stopped = True
+ 
+         self.measurements = []
+ 
+-        done = False
+-
+         # The child process will send each data sample over the pipe
+         # as a separate data structure. When it has finished sending
+         # samples, it sends a special "done" message to indicate it
+         # is finished.
+-        while self._pipe.poll(1.0):
+-            start_time, end_time, io_diff, cpu_diff, cpu_percent, virt_mem, \
+-                swap_mem = self._pipe.recv()
++
++        # multiprocessing.Pipe is not actually a pipe on at least Linux.  that
++        # has an effect on the expected outcome of reading from it when the
++        # other end of the pipe dies, leading to possibly hanging on revc()
++        # below. So we must poll().
++        def poll():
++            try:
++                return self._pipe.poll(0.1)
++            except Exception:
++                # Poll might throw an exception even though there's still
++                # data to read. That happens when the underlying system call
++                # returns both POLLERR and POLLIN, but python doesn't tell us
++                # about it. So assume there is something to read, and we'll
++                # get an exception when trying to read the data.
++                return True
++        while poll():
++            try:
++                start_time, end_time, io_diff, cpu_diff, cpu_percent, virt_mem, \
++                    swap_mem = self._pipe.recv()
++            except Exception:
++                # Let's assume we're done here
++                break
+ 
+             # There should be nothing after the "done" message so
+             # terminate.
+             if start_time == 'done':
+-                done = True
+                 break
+ 
+             io = self._io_type(*io_diff)
+             virt = self._virt_type(*virt_mem)
+             swap = self._swap_type(*swap_mem)
+             cpu_times = [self._cpu_times_type(*v) for v in cpu_diff]
+ 
+             self.measurements.append(SystemResourceUsage(start_time, end_time,
+                                                          cpu_times, cpu_percent, io, virt, swap))
+ 
+         # We establish a timeout so we don't hang forever if the child
+         # process has crashed.
+         self._process.join(10)
+         if self._process.is_alive():
+             self._process.terminate()
+             self._process.join(10)
+-        else:
+-            # We should have received a "done" message from the
+-            # child indicating it shut down properly. This only
+-            # happens if the child shuts down cleanly.
+-            assert done
+ 
+         if len(self.measurements):
+             self.start_time = self.measurements[0].start
+-- 
+2.14.2
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2017-09-28 21:22:00 UTC (rev 306459)
+++ PKGBUILD	2017-09-29 04:05:00 UTC (rev 306460)
@@ -4,16 +4,16 @@
 # Contributor: Jakub Schmidtke <sjakub at gmail.com>
 
 pkgname=firefox
-pkgver=55.0.3
-pkgrel=3
+pkgver=56.0
+pkgrel=1
 pkgdesc="Standalone web browser from mozilla.org"
 arch=(i686 x86_64)
 license=(MPL GPL LGPL)
 url="https://www.mozilla.org/firefox/"
 depends=(gtk3 gtk2 mozilla-common libxt startup-notification mime-types dbus-glib ffmpeg
-         nss hunspell sqlite ttf-font libpulse icu)
+         nss hunspell sqlite ttf-font libpulse)
 makedepends=(unzip zip diffutils python2 yasm mesa imake gconf inetutils xorg-server-xvfb
-             autoconf2.13 rust mercurial)
+             autoconf2.13 rust mercurial clang llvm jack)
 optdepends=('networkmanager: Location detection via available WiFi networks'
             'libnotify: Notification integration'
             'pulseaudio: Audio support'
@@ -21,20 +21,20 @@
 options=(!emptydirs !makeflags !strip)
 _repo=https://hg.mozilla.org/mozilla-unified
 source=("hg+$_repo#tag=FIREFOX_${pkgver//./_}_RELEASE"
-        $pkgname.desktop firefox-symbolic.svg
         wifi-disentangle.patch wifi-fix-interface.patch
-        clip-ft-glyph.diff harmony-fix.diff
-        firefox-install-dir.patch no-crmf.diff glibc-2.26-fix.diff)
+        0001-Bug-1384062-Make-SystemResourceMonitor.stop-more-res.patch
+        no-plt.diff plugin-crash.diff glibc-2.26-fix.diff
+        $pkgname.desktop firefox-symbolic.svg firefox-install-dir.patch)
 sha256sums=('SKIP'
+            'f068b84ad31556095145d8fefc012dd3d1458948533ed3fff6cbc7250b6e73ed'
+            'e98a3453d803cc7ddcb81a7dc83f883230dd8591bdf936fc5a868428979ed1f1'
+            'aba767995ffb1a55345e30aaba667f43d469e23bd9b1b68263cf71b8118acc96'
+            'ea8e1b871c0f1dd29cdea1b1a2e7f47bf4713e2ae7b947ec832dba7dfcc67daa'
+            'a7e5d2430bb562f6367deb07417dad4368317e8e8be5d1cfa842c3356de3cfc0'
+            'cd7ff441da66a287f8712e60cdc9e216c30355d521051e2eaae28a66d81915e8'
             'ada313750e6fb14558b37c764409a17c1672a351a46c73b350aa1fe4ea9220ef'
             'a2474b32b9b2d7e0fb53a4c89715507ad1c194bef77713d798fa39d507def9e9'
-            'f068b84ad31556095145d8fefc012dd3d1458948533ed3fff6cbc7250b6e73ed'
-            'e98a3453d803cc7ddcb81a7dc83f883230dd8591bdf936fc5a868428979ed1f1'
-            'd5e5580a96ecc4a66ce12dde0737c1ed5cb31017a6ec488ffe372192ed893e1b'
-            '16bb776e9f3039321db747b2eaece0cda1320f3711fb853a68d67247b0aa065d'
-            'd86e41d87363656ee62e12543e2f5181aadcff448e406ef3218e91865ae775cd'
-            'fb85a538044c15471c12cf561d6aa74570f8de7b054a7063ef88ee1bdfc1ccbb'
-            'cd7ff441da66a287f8712e60cdc9e216c30355d521051e2eaae28a66d81915e8')
+            'd86e41d87363656ee62e12543e2f5181aadcff448e406ef3218e91865ae775cd')
 
 # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
 # Note: These are for Arch Linux use ONLY. For your own distribution, please
@@ -55,23 +55,23 @@
   cd mozilla-unified
   patch -Np1 -i ../firefox-install-dir.patch
 
-  # https://bugzilla.mozilla.org/show_bug.cgi?id=1371991
-  patch -Np1 -i ../no-crmf.diff
-
-  # https://bugzilla.mozilla.org/show_bug.cgi?id=1385667
-  # https://bugzilla.mozilla.org/show_bug.cgi?id=1394149
-  patch -Np1 -i ../glibc-2.26-fix.diff
-
   # https://bugzilla.mozilla.org/show_bug.cgi?id=1314968
   patch -Np1 -i ../wifi-disentangle.patch
   patch -Np1 -i ../wifi-fix-interface.patch
 
-  # https://bugzilla.mozilla.org/show_bug.cgi?id=1393467
-  patch -Np1 -i ../clip-ft-glyph.diff
+  # https://bugzilla.mozilla.org/show_bug.cgi?id=1384062
+  patch -Np1 -i ../0001-Bug-1384062-Make-SystemResourceMonitor.stop-more-res.patch
 
-  # https://bugzilla.mozilla.org/show_bug.cgi?id=1400721
-  patch -Np1 -i ../harmony-fix.diff
+  # https://bugzilla.mozilla.org/show_bug.cgi?id=1382942
+  patch -Np1 -i ../no-plt.diff
 
+  # https://bugzilla.mozilla.org/show_bug.cgi?id=1400175
+  patch -Np1 -i ../plugin-crash.diff
+
+  # https://bugzilla.mozilla.org/show_bug.cgi?id=1385667
+  # https://bugzilla.mozilla.org/show_bug.cgi?id=1394149
+  patch -Np1 -i ../glibc-2.26-fix.diff
+
   echo -n "$_google_api_key" >google-api-key
   echo -n "$_mozilla_api_key" >mozilla-api-key
 
@@ -98,17 +98,15 @@
 ac_add_options --with-mozilla-api-keyfile=${PWD at Q}/mozilla-api-key
 
 # System libraries
-ac_add_options --with-system-nspr
-ac_add_options --with-system-nss
-ac_add_options --with-system-icu
 ac_add_options --with-system-zlib
 ac_add_options --with-system-bz2
 ac_add_options --enable-system-hunspell
 ac_add_options --enable-system-sqlite
 ac_add_options --enable-system-ffi
-ac_add_options --enable-system-pixman
 
 # Features
+ac_add_options --enable-alsa
+ac_add_options --enable-jack
 ac_add_options --enable-startup-notification
 ac_add_options --enable-crashreporter
 ac_add_options --disable-updater
@@ -198,4 +196,8 @@
   # https://bugzilla.mozilla.org/show_bug.cgi?id=658850
   ln -srf "$pkgdir/usr/bin/$pkgname" \
     "$pkgdir/usr/lib/$pkgname/firefox-bin"
+
+  # Use system certificates
+  ln -srf "$pkgdir/usr/lib/libnssckbi.so" \
+    "$pkgdir/usr/lib/$pkgname/libnssckbi.so"
 }

Deleted: clip-ft-glyph.diff
===================================================================
--- clip-ft-glyph.diff	2017-09-28 21:22:00 UTC (rev 306459)
+++ clip-ft-glyph.diff	2017-09-29 04:05:00 UTC (rev 306460)
@@ -1,162 +0,0 @@
-# HG changeset patch
-# User Lee Salzman <lsalzman at mozilla.com>
-# Date 1504120456 14400
-#      Wed Aug 30 15:14:16 2017 -0400
-# Node ID 708d52f954b6d7ca2497fcb5b5084c6483300e89
-# Parent  33224536ce20d942576cd4b9ffb350d6dce397bc
-clip FreeType glyph bitmap to mask in Skia
-
-MozReview-Commit-ID: 9NqLj9SkHFo
-
-diff --git a/gfx/skia/skia/src/ports/SkFontHost_FreeType_common.cpp b/gfx/skia/skia/src/ports/SkFontHost_FreeType_common.cpp
---- a/gfx/skia/skia/src/ports/SkFontHost_FreeType_common.cpp
-+++ b/gfx/skia/skia/src/ports/SkFontHost_FreeType_common.cpp
-@@ -390,65 +390,131 @@ void SkScalerContext_FreeType_Base::gene
-     const SkMatrix& bitmapTransform)
- {
-     const bool doBGR = SkToBool(fRec.fFlags & SkScalerContext::kLCD_BGROrder_Flag);
-     const bool doVert = SkToBool(fRec.fFlags & SkScalerContext::kLCD_Vertical_Flag);
- 
-     switch ( face->glyph->format ) {
-         case FT_GLYPH_FORMAT_OUTLINE: {
-             FT_Outline* outline = &face->glyph->outline;
--            FT_BBox     bbox;
--            FT_Bitmap   target;
- 
-             int dx = 0, dy = 0;
-             if (fRec.fFlags & SkScalerContext::kSubpixelPositioning_Flag) {
-                 dx = SkFixedToFDot6(glyph.getSubXFixed());
-                 dy = SkFixedToFDot6(glyph.getSubYFixed());
-                 // negate dy since freetype-y-goes-up and skia-y-goes-down
-                 dy = -dy;
-             }
--            FT_Outline_Get_CBox(outline, &bbox);
--            /*
--                what we really want to do for subpixel is
--                    offset(dx, dy)
--                    compute_bounds
--                    offset(bbox & !63)
--                but that is two calls to offset, so we do the following, which
--                achieves the same thing with only one offset call.
--            */
--            FT_Outline_Translate(outline, dx - ((bbox.xMin + dx) & ~63),
--                                          dy - ((bbox.yMin + dy) & ~63));
-+
-+            memset(glyph.fImage, 0, glyph.rowBytes() * glyph.fHeight);
- 
-             if (SkMask::kLCD16_Format == glyph.fMaskFormat) {
-+                FT_Outline_Translate(outline, dx, dy);
-                 FT_Error err = FT_Render_Glyph(face->glyph, doVert ? FT_RENDER_MODE_LCD_V :
-                                                                      FT_RENDER_MODE_LCD);
-                 if (err) {
-                     SK_TRACEFTR(err, "Could not render glyph.");
--                    sk_bzero(glyph.fImage, glyph.computeImageSize());
-                     return;
-                 }
-+
-                 SkMask mask;
-                 glyph.toMask(&mask);
-+#ifdef SK_SHOW_TEXT_BLIT_COVERAGE
-+                memset(mask.fImage, 0x80, mask.fBounds.height() * mask.fRowBytes);
-+#endif
-+                FT_GlyphSlotRec& ftGlyph = *face->glyph;
-+
-+                if (!SkIRect::Intersects(mask.fBounds,
-+                                         SkIRect::MakeXYWH( ftGlyph.bitmap_left,
-+                                                           -ftGlyph.bitmap_top,
-+                                                            ftGlyph.bitmap.width,
-+                                                            ftGlyph.bitmap.rows)))
-+                {
-+                    return;
-+                }
-+
-+                // If the FT_Bitmap extent is larger, discard bits of the bitmap outside the mask.
-+                // If the SkMask extent is larger, shrink mask to fit bitmap (clearing discarded).
-+                unsigned char* origBuffer = ftGlyph.bitmap.buffer;
-+                // First align the top left (origin).
-+                if (-ftGlyph.bitmap_top < mask.fBounds.fTop) {
-+                    int32_t topDiff = mask.fBounds.fTop - (-ftGlyph.bitmap_top);
-+                    ftGlyph.bitmap.buffer += ftGlyph.bitmap.pitch * topDiff;
-+                    ftGlyph.bitmap.rows -= topDiff;
-+                    ftGlyph.bitmap_top = -mask.fBounds.fTop;
-+                }
-+                if (ftGlyph.bitmap_left < mask.fBounds.fLeft) {
-+                    int32_t leftDiff = mask.fBounds.fLeft - ftGlyph.bitmap_left;
-+                    ftGlyph.bitmap.buffer += leftDiff;
-+                    ftGlyph.bitmap.width -= leftDiff;
-+                    ftGlyph.bitmap_left = mask.fBounds.fLeft;
-+                }
-+                if (mask.fBounds.fTop < -ftGlyph.bitmap_top) {
-+                    mask.fImage += mask.fRowBytes * (-ftGlyph.bitmap_top - mask.fBounds.fTop);
-+                    mask.fBounds.fTop = -ftGlyph.bitmap_top;
-+                }
-+                if (mask.fBounds.fLeft < ftGlyph.bitmap_left) {
-+                    mask.fImage += sizeof(uint16_t) * (ftGlyph.bitmap_left - mask.fBounds.fLeft);
-+                    mask.fBounds.fLeft = ftGlyph.bitmap_left;
-+                }
-+                // Origins aligned, clean up the width and height.
-+                int ftVertScale = (doVert ? 3 : 1);
-+                int ftHoriScale = (doVert ? 1 : 3);
-+                if (mask.fBounds.height() * ftVertScale < SkToInt(ftGlyph.bitmap.rows)) {
-+                    ftGlyph.bitmap.rows = mask.fBounds.height() * ftVertScale;
-+                }
-+                if (mask.fBounds.width() * ftHoriScale < SkToInt(ftGlyph.bitmap.width)) {
-+                    ftGlyph.bitmap.width = mask.fBounds.width() * ftHoriScale;
-+                }
-+                if (SkToInt(ftGlyph.bitmap.rows) < mask.fBounds.height() * ftVertScale) {
-+                    mask.fBounds.fBottom = mask.fBounds.fTop + ftGlyph.bitmap.rows / ftVertScale;
-+                }
-+                if (SkToInt(ftGlyph.bitmap.width) < mask.fBounds.width() * ftHoriScale) {
-+                    mask.fBounds.fRight = mask.fBounds.fLeft + ftGlyph.bitmap.width / ftHoriScale;
-+                }
-                 if (fPreBlend.isApplicable()) {
--                    copyFT2LCD16<true>(face->glyph->bitmap, mask, doBGR,
-+                    copyFT2LCD16<true>(ftGlyph.bitmap, mask, doBGR,
-                                        fPreBlend.fR, fPreBlend.fG, fPreBlend.fB);
-                 } else {
--                    copyFT2LCD16<false>(face->glyph->bitmap, mask, doBGR,
-+                    copyFT2LCD16<false>(ftGlyph.bitmap, mask, doBGR,
-                                         fPreBlend.fR, fPreBlend.fG, fPreBlend.fB);
-                 }
-+                // Restore the buffer pointer so FreeType can properly free it.
-+                ftGlyph.bitmap.buffer = origBuffer;
-             } else {
-+                FT_BBox     bbox;
-+                FT_Bitmap   target;
-+                FT_Outline_Get_CBox(outline, &bbox);
-+                /*
-+                    what we really want to do for subpixel is
-+                        offset(dx, dy)
-+                        compute_bounds
-+                        offset(bbox & !63)
-+                    but that is two calls to offset, so we do the following, which
-+                    achieves the same thing with only one offset call.
-+                */
-+                FT_Outline_Translate(outline, dx - ((bbox.xMin + dx) & ~63),
-+                                              dy - ((bbox.yMin + dy) & ~63));
-+
-                 target.width = glyph.fWidth;
-                 target.rows = glyph.fHeight;
-                 target.pitch = glyph.rowBytes();
-                 target.buffer = reinterpret_cast<uint8_t*>(glyph.fImage);
-                 target.pixel_mode = compute_pixel_mode( (SkMask::Format)fRec.fMaskFormat);
-                 target.num_grays = 256;
- 
--                memset(glyph.fImage, 0, glyph.rowBytes() * glyph.fHeight);
-                 FT_Outline_Get_Bitmap(face->glyph->library, outline, &target);
-+#ifdef SK_SHOW_TEXT_BLIT_COVERAGE
-+                for (int y = 0; y < glyph.fHeight; ++y) {
-+                    for (int x = 0; x < glyph.fWidth; ++x) {
-+                        uint8_t& a = ((uint8_t*)glyph.fImage)[(glyph.rowBytes() * y) + x];
-+                        a = SkTMax<uint8_t>(a, 0x20);
-+                    }
-+                }
-+#endif
-             }
-         } break;
- 
-         case FT_GLYPH_FORMAT_BITMAP: {
-             FT_Pixel_Mode pixel_mode = static_cast<FT_Pixel_Mode>(face->glyph->bitmap.pixel_mode);
-             SkMask::Format maskFormat = static_cast<SkMask::Format>(glyph.fMaskFormat);
- 
-             // Assume that the other formats do not exist.

Deleted: harmony-fix.diff
===================================================================
--- harmony-fix.diff	2017-09-28 21:22:00 UTC (rev 306459)
+++ harmony-fix.diff	2017-09-29 04:05:00 UTC (rev 306460)
@@ -1,16 +0,0 @@
-diff --git i/gfx/skia/skia/src/ports/SkFontHost_cairo.cpp w/gfx/skia/skia/src/ports/SkFontHost_cairo.cpp
-index 42da19280fce8235..2c221c32d097b462 100644
---- i/gfx/skia/skia/src/ports/SkFontHost_cairo.cpp
-+++ w/gfx/skia/skia/src/ports/SkFontHost_cairo.cpp
-@@ -666,10 +666,7 @@ void SkScalerContext_CairoFT::generateMetrics(SkGlyph* glyph)
-         glyph->fTop    = -SkToS16(SkFDot6Floor(bbox.yMax));
-         glyph->fLeft   = SkToS16(SkFDot6Floor(bbox.xMin));
- 
--        if (isLCD(fRec) &&
--            gSetLcdFilter &&
--            (fLcdFilter == FT_LCD_FILTER_DEFAULT ||
--             fLcdFilter == FT_LCD_FILTER_LIGHT)) {
-+        if (isLCD(fRec)) {
-             if (fRec.fFlags & kLCD_Vertical_Flag) {
-                 glyph->fTop -= 1;
-                 glyph->fHeight += 2;

Deleted: no-crmf.diff
===================================================================
--- no-crmf.diff	2017-09-28 21:22:00 UTC (rev 306459)
+++ no-crmf.diff	2017-09-29 04:05:00 UTC (rev 306460)
@@ -1,15 +0,0 @@
-diff --git i/old-configure.in w/old-configure.in
-index 0a06e470d2085922..d41c8e9d5dd2dbfb 100644
---- i/old-configure.in
-+++ w/old-configure.in
-@@ -2020,9 +2020,7 @@ if test -n "$_USE_SYSTEM_NSS"; then
-     AM_PATH_NSS(3.31, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
- fi
- 
--if test -n "$MOZ_SYSTEM_NSS"; then
--   NSS_LIBS="$NSS_LIBS -lcrmf"
--else
-+if test -z "$MOZ_SYSTEM_NSS"; then
-    NSS_CFLAGS="-I${DIST}/include/nss"
-    case "${OS_ARCH}" in
-         # Only few platforms have been tested with GYP

Added: no-plt.diff
===================================================================
--- no-plt.diff	                        (rev 0)
+++ no-plt.diff	2017-09-29 04:05:00 UTC (rev 306460)
@@ -0,0 +1,48 @@
+diff --git i/security/nss/lib/freebl/mpi/mpi_x86.s w/security/nss/lib/freebl/mpi/mpi_x86.s
+index 8f7e2130c3264754..b3ca1ce5b41b3771 100644
+--- i/security/nss/lib/freebl/mpi/mpi_x86.s
++++ w/security/nss/lib/freebl/mpi/mpi_x86.s
+@@ -22,22 +22,41 @@ is_sse: .long	-1
+ #
+ .ifndef NO_PIC
+ .macro GET   var,reg
+-    movl   \var at GOTOFF(%ebx),\reg
++    call   thunk.ax
++    addl   $_GLOBAL_OFFSET_TABLE_, %eax
++    movl   \var at GOTOFF(%eax),\reg
+ .endm
+ .macro PUT   reg,var
+-    movl   \reg,\var at GOTOFF(%ebx)
++    call   thunk.dx
++    addl   $_GLOBAL_OFFSET_TABLE_, %edx
++    movl   \reg,\var at GOTOFF(%edx)
+ .endm
+ .else
+ .macro GET   var,reg
+     movl   \var,\reg
+ .endm
+ .macro PUT   reg,var
+     movl   \reg,\var
+ .endm
+ .endif
+ 
+ .text
+ 
++.ifndef NO_PIC
++.globl	thunk.ax
++.hidden	thunk.ax
++.type	thunk.ax, @function
++thunk.ax:
++       movl   (%esp),%eax
++       ret
++
++.globl	thunk.dx
++.hidden	thunk.dx
++.type	thunk.dx, @function
++thunk.dx:
++       movl   (%esp),%edx
++       ret
++.endif
+ 
+  #  ebp - 36:	caller's esi
+  #  ebp - 32:	caller's edi

Added: plugin-crash.diff
===================================================================
--- plugin-crash.diff	                        (rev 0)
+++ plugin-crash.diff	2017-09-29 04:05:00 UTC (rev 306460)
@@ -0,0 +1,50 @@
+
+# HG changeset patch
+# User Jan Steffens <jan.steffens at gmail.com>
+# Date 1505475854 -7200
+# Node ID 3cd2263687293a229277037090add3bea2531057
+# Parent  70f5f23a429f3d621e44307c191fa84c77fb2f61
+Bug 1400175 - Stub gdk_screen_get_monitor_workarea in mozgtk2; r?karlt
+
+MozReview-Commit-ID: 72K6U17JuoK
+
+diff --git a/widget/gtk/mozgtk/mozgtk.c b/widget/gtk/mozgtk/mozgtk.c
+--- a/widget/gtk/mozgtk/mozgtk.c
++++ b/widget/gtk/mozgtk/mozgtk.c
+@@ -56,17 +56,16 @@
+ STUB(gdk_screen_get_default)
+ STUB(gdk_screen_get_display)
+ STUB(gdk_screen_get_font_options)
+ STUB(gdk_screen_get_height)
+ STUB(gdk_screen_get_height_mm)
+ STUB(gdk_screen_get_n_monitors)
+ STUB(gdk_screen_get_monitor_at_window)
+ STUB(gdk_screen_get_monitor_geometry)
+-STUB(gdk_screen_get_monitor_workarea)
+ STUB(gdk_screen_get_monitor_height_mm)
+ STUB(gdk_screen_get_number)
+ STUB(gdk_screen_get_resolution)
+ STUB(gdk_screen_get_rgba_visual)
+ STUB(gdk_screen_get_root_window)
+ STUB(gdk_screen_get_system_visual)
+ STUB(gdk_screen_get_width)
+ STUB(gdk_screen_height)
+@@ -514,16 +513,17 @@
+ #ifdef GTK3_SYMBOLS
+ STUB(gdk_device_get_source)
+ STUB(gdk_device_manager_get_client_pointer)
+ STUB(gdk_disable_multidevice)
+ STUB(gdk_device_manager_list_devices)
+ STUB(gdk_display_get_device_manager)
+ STUB(gdk_error_trap_pop_ignored)
+ STUB(gdk_event_get_source_device)
++STUB(gdk_screen_get_monitor_workarea)
+ STUB(gdk_window_get_type)
+ STUB(gdk_window_get_window_type)
+ STUB(gdk_x11_window_get_xid)
+ STUB(gdk_x11_display_get_type)
+ STUB(gdk_wayland_display_get_type)
+ STUB(gtk_box_new)
+ STUB(gtk_cairo_should_draw_window)
+ STUB(gtk_cairo_transform_to_window)
+



More information about the arch-commits mailing list