pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/www/firefox52 firefox52: hacks for sparc64/big endian ...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/0fe34916f285
branches:  trunk
changeset: 368282:0fe34916f285
user:      martin <martin%pkgsrc.org@localhost>
date:      Wed Sep 13 10:03:47 2017 +0000

description:
firefox52: hacks for sparc64/big endian platforms

While graphics support for big endian platforms ist still not quite
right, we prefer slightly garbled display (or missing items) over
browser crashes.

diffstat:

 www/firefox52/distinfo                                    |   4 ++-
 www/firefox52/patches/patch-gfx_2d_DataSurfaceHelpers.cpp |  20 +++++++++++++++
 www/firefox52/patches/patch-gfx_2d_HelpersCairo.h         |  18 +++++++++++++
 3 files changed, 41 insertions(+), 1 deletions(-)

diffs (64 lines):

diff -r 8d020345555b -r 0fe34916f285 www/firefox52/distinfo
--- a/www/firefox52/distinfo    Wed Sep 13 10:01:10 2017 +0000
+++ b/www/firefox52/distinfo    Wed Sep 13 10:03:47 2017 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.5 2017/08/19 04:13:51 ryoon Exp $
+$NetBSD: distinfo,v 1.6 2017/09/13 10:03:47 martin Exp $
 
 SHA1 (firefox-52.3.0esr.source.tar.xz) = 10c9b836167b3d1dc500decd6e324adfebd6f854
 RMD160 (firefox-52.3.0esr.source.tar.xz) = 9f43af8abbd449ea3921583d1b47de40b2b302a7
@@ -29,6 +29,8 @@
 SHA1 (patch-dom_plugins_ipc_PluginModuleChild.h) = 15c01df2fa7f989b533ef769ce77438b5e9bfdb9
 SHA1 (patch-dom_system_OSFileConstants.cpp) = e932ca46cbc78eb8486b9ff704434a962645c6b2
 SHA1 (patch-extensions_spellcheck_hunspell_glue_mozHunspell.cpp) = 2aaf5f82a57dbb375558442718c239e2e7da1406
+SHA1 (patch-gfx_2d_DataSurfaceHelpers.cpp) = e18b002f51fc0a191d579fa49025aac2c5000d81
+SHA1 (patch-gfx_2d_HelpersCairo.h) = f910d634624fdf288a042c2a0c636598103ef289
 SHA1 (patch-gfx_cairo_libpixman_src_pixman-arm-neon-asm.S) = 6e91ca436b73affe42ed4e683b3400beb28c4bc6
 SHA1 (patch-gfx_gl_GLContextProviderGLX.cpp) = 2cc997cab71a84c1f50a791693519a0626564426
 SHA1 (patch-gfx_graphite2_moz-gr-update.sh) = 09eb2fa66109d38a3aedc940fcaaee5f91e216ae
diff -r 8d020345555b -r 0fe34916f285 www/firefox52/patches/patch-gfx_2d_DataSurfaceHelpers.cpp
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox52/patches/patch-gfx_2d_DataSurfaceHelpers.cpp Wed Sep 13 10:03:47 2017 +0000
@@ -0,0 +1,20 @@
+$NetBSD: patch-gfx_2d_DataSurfaceHelpers.cpp,v 1.1 2017/09/13 10:03:47 martin Exp $
+
+On big endian platforms this happens a lot - swap an application crash
+for slightly broken display while we are still hunting the real bug.
+
+--- gfx/2d/DataSurfaceHelpers.cpp.orig 2017-04-11 04:13:04.000000000 +0200
++++ gfx/2d/DataSurfaceHelpers.cpp      2017-09-13 11:29:20.039199172 +0200
+@@ -320,6 +320,12 @@ CopyRect(DataSourceSurface* aSrc, DataSo
+     MOZ_CRASH("GFX: we should never be getting invalid rects at this point");
+   }
+ 
++#if MOZ_BIG_ENDIAN
++  // hack: avoid a crash, we cope with the bogus display result for now
++  if (aSrc->GetFormat() != aDest->GetFormat())
++    return false;
++#endif
++
+   MOZ_RELEASE_ASSERT(aSrc->GetFormat() == aDest->GetFormat(),
+                      "GFX: different surface formats");
+   MOZ_RELEASE_ASSERT(IntRect(IntPoint(), aSrc->GetSize()).Contains(aSrcRect),
diff -r 8d020345555b -r 0fe34916f285 www/firefox52/patches/patch-gfx_2d_HelpersCairo.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox52/patches/patch-gfx_2d_HelpersCairo.h Wed Sep 13 10:03:47 2017 +0000
@@ -0,0 +1,18 @@
+$NetBSD: patch-gfx_2d_HelpersCairo.h,v 1.1 2017/09/13 10:03:47 martin Exp $
+
+Total hack: avoid lots of debug spew on big endian platforms
+(there is a real bug involved here, but this does not help
+debugging)
+
+--- gfx/2d/HelpersCairo.h.orig 2017-04-11 04:13:04.000000000 +0200
++++ gfx/2d/HelpersCairo.h      2017-09-13 11:19:21.840242779 +0200
+@@ -160,7 +160,9 @@ GfxFormatToCairoFormat(SurfaceFormat for
+     case SurfaceFormat::R5G6B5_UINT16:
+       return CAIRO_FORMAT_RGB16_565;
+     default:
++#if MOZ_LITTLE_ENDIAN
+       gfxCriticalError() << "Unknown image format " << (int)format;
++#endif
+       return CAIRO_FORMAT_ARGB32;
+   }
+ }



Home | Main Index | Thread Index | Old Index