--- a/components/desktop/thunderbird/Makefile Fri Sep 30 21:33:56 2016 -0700
+++ b/components/desktop/thunderbird/Makefile Thu Sep 22 15:38:45 2016 -0700
@@ -32,18 +32,18 @@
include ../../../make-rules/shared-macros.mk
COMPONENT_NAME= thunderbird
-COMPONENT_VERSION= 45.1.0
+COMPONENT_VERSION= 45.3.0
COMPONENT_PROJECT_URL= http://www.mozilla.com/thunderbird
COMPONENT_ARCHIVE = $(COMPONENT_SRC).source.tar.xz
COMPONENT_ARCHIVE_HASH= \
- sha256:8ae9ebe536895d69d99f412f2b3aba645b7dd839e520959330da13892d672309
+ sha256:231f6a7a073344659e436a2b1ae58004c3a29e74375af2c8d0de13f3bc79fac7
MOZILLA_FTP = http://ftp.mozilla.org/pub/$(COMPONENT_NAME)/releases/$(COMPONENT_VERSION)
COMPONENT_ARCHIVE_URL= $(MOZILLA_FTP)/source/$(COMPONENT_ARCHIVE)
COMPONENT_BUGDB= tbird/mailer
-TPNO= 27834
+TPNO= 31787
-LIGHTNING_VERSION= lightning-4.7.1
+LIGHTNING_VERSION= 4.7.1
# There are a set of .xpi files (as given in the LANG_LIST definition below)
# that we need. These are available under:
@@ -56,31 +56,32 @@
# collide due to different files with identical .xpi names.
COMPONENT_ARCHIVE_1 = $(COMPONENT_SRC)-xpi.tar.gz
COMPONENT_ARCHIVE_HASH_1 = \
- sha256:04269456df31de93e5af4b3ee14faf108278e8a885330e3c5c3504ccfb3a6381
-COMPONENT_ARCHIVE_URL_1 = $(INTERNAL_ARCHIVE_MIRROR)/source-archives/$(COMPONENT_ARCHIVE_1)
+ sha256:6b170356db3c345e4704de93ed41f5d16afac9460345f6675b02193ad41a128f
+COMPONENT_ARCHIVE_URL_1 = $(INTERNAL_ARCHIVE_MIRROR)/$(COMPONENT_ARCHIVE_1)
-COMPONENT_ARCHIVE_2 = $(LIGHTNING_VERSION)-xpi.tar.gz
+COMPONENT_ARCHIVE_2 = lightning-$(LIGHTNING_VERSION)-xpi.tar.gz
COMPONENT_ARCHIVE_HASH_2 = \
sha256:5bab9f0f879bdae9a312c5612b089c932c0400db89346c9c38b5c41623410e75
-COMPONENT_ARCHIVE_URL_2 = $(INTERNAL_ARCHIVE_MIRROR)/source-archives/$(COMPONENT_ARCHIVE_2)
+COMPONENT_ARCHIVE_URL_2 = $(INTERNAL_ARCHIVE_MIRROR)/$(COMPONENT_ARCHIVE_2)
LANG_LIST = ar bg ca cs da de el es-AR es-ES et eu fi \
fr gl he hu id is it ja ko lt nb-NO nl nn-NO pa-IN pl \
pt-BR pt-PT ro ru sk sl sq sv-SE tr uk zh-CN zh-TW
-# Do not use Firefox patches until Firefox is updated to 45.1.1.
+CLEAN_PATHS += $(COMPONENT_DIR)/xpi
+CLEAN_PATHS += $(COMPONENT_DIR)/xpi-lightning
# Firefox and Thunderbird share the same firefox*.patch patches. Copy these
# patches from the Firefox patches directory and the Thunderbird patches to a
# directory of all files (patches-all), except for Firefox patches 42 and 46,
# which don't get applied in Thunderbird. (libxul and dtrace patches)
-#PATCH_DIR=patches-all
-#CLEAN_PATHS += $(PATCH_DIR)
-#COPY_COMMON_FILES_1:= $(shell mkdir -p $(PATCH_DIR))
-#COPY_COMMON_FILES_2:= \
-# $(shell /usr/bin/rsync -ac patches/* ../firefox/patches/* $(PATCH_DIR))
-#COPY_COMMON_FILES_3:= \
-# $(shell /usr/bin/rm -f $(PATCH_DIR)/firefox*42*.patch $(PATCH_DIR)/firefox*46*.patch)
+PATCH_DIR=patches-all
+CLEAN_PATHS += $(PATCH_DIR)
+COPY_COMMON_FILES_1:= $(shell mkdir -p $(PATCH_DIR))
+COPY_COMMON_FILES_2:= \
+ $(shell /usr/bin/rsync -ac patches/* ../firefox/patches/* $(PATCH_DIR))
+COPY_COMMON_FILES_3:= \
+ $(shell /usr/bin/rm -f $(PATCH_DIR)/firefox*42*.patch $(PATCH_DIR)/firefox*46*.patch)
# Depends on libsmbclient but samba is on the do-not-publish list, so this
# must be too.
@@ -179,12 +180,40 @@
list1='$(LANG_LIST)' ; for f in $$list1 ; do \
$(CP) xpi/$$f.xpi \
$(PROTOUSRLIBDIR)/thunderbird-$(COMPONENT_VERSION)/distribution/extensions/[email protected] ; \
- unzip xpi-lightning/$(LIGHTNING_VERSION).$$f.linux-i686.xpi \
+ unzip xpi-lightning/lightning-$(LIGHTNING_VERSION).$$f.linux-i686.xpi \
chrome/calendar-$$f/\* chrome/lightning-$$f/\* -d \
$(LIGHTNING_EXT_DIR)/ ; \
echo 'locale calendar '$$f' chrome/calendar-'$$f'/locale/'$$f'/calendar/' >> $(LIGHTNING_EXT_DIR)/chrome.manifest ; \
echo 'locale lightning '$$f' chrome/lightning-'$$f'/locale/'$$f'/lightning/' >> $(LIGHTNING_EXT_DIR)/chrome.manifest ; \
done ;
+
+download-xpis:
+ @echo "download-xpis"
+ $(RM) -r $(COMPONENT_DIR)/xpi $(COMPONENT_DIR)/$(COMPONENT_ARCHIVE_1)
+ $(MKDIR) $(COMPONENT_DIR)/xpi
+ @echo "downloading thunderbird xpis"
+ list1='$(LANG_LIST)' ; for f in $$list1 ; do \
+ echo $$f; \
+ /usr/bin/curl -s -o $(COMPONENT_DIR)/xpi/$$f.xpi \
+ $(TB_XPI)/$$f.xpi ;\
+ done
+ (cd $(COMPONENT_DIR); \
+ $(TAR) czvf $(COMPONENT_DIR)/$(COMPONENT_ARCHIVE_1) xpi )
+ /usr/bin/sha256sum $(COMPONENT_ARCHIVE_1)
+
+download-lightning-xpis:
+ @echo "download-lightning-xpis"
+ $(RM) $(COMPONENT_DIR)/xpi-lightning $(COMPONENT_DIR)/$(COMPONENT_ARCHIVE_2)
+ $(MKDIR) $(COMPONENT_DIR)/xpi-lightning
+ @echo "downloading lightning xpis"
+ list1='$(LANG_LIST)' ; for f in $$list1 ; do \
+ echo $$f; \
+ /usr/bin/curl -s -o $(COMPONENT_DIR)/xpi-lightning/lightning-$(LIGHTNING_VERSION).$$f.linux-i686.xpi \
+ $(LN_XPI)/lightning-$(LIGHTNING_VERSION).$$f.linux-i686.xpi ;\
+ done
+ (cd $(COMPONENT_DIR); \
+ $(TAR) czvf $(COMPONENT_DIR)/$(COMPONENT_ARCHIVE_2) xpi-lightning )
+ /usr/bin/sha256sum $(COMPONENT_ARCHIVE_2)
LIB_LIST.i386 =
LIB_LIST.sparc = $(PROTOUSRLIBDIR)/thunderbird-devel-$(COMPONENT_VERSION)/sdk/lib/cpu/sparcv8plus/libnspr_flt4.so
@@ -196,12 +225,13 @@
$(CP) $$f $(PROTOUSRLIBDIR)/thunderbird-$(COMPONENT_VERSION)/cpu/sparcv8plus/libnspr_flt4.so ; \
done ;
+COMPONENT_TEST_MASTER = \
+ $(COMPONENT_TEST_RESULTS_DIR)/results-$(MACH).master
COMPONENT_TEST_DIR = $(@D)/js/src
COMPONENT_TEST_TARGETS=check-jit-test
COMPONENT_TEST_TRANSFORMS += \
'-e "/\(^TEST-PASS\).*/d" '
-# Do not use firefox patches until firefox is update to 45.1.1.
$(SOURCE_DIR)/.patched-firefox-%: GPATCH_FLAGS += -d $(@D)/mozilla
REQUIRED_PACKAGES += compress/bzip2
--- a/components/desktop/thunderbird/patches/firefox-00-locale.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-Matches the OS locale. We need to determine if this patch should be sent
-upstream.
-
---- mozilla-esr38/modules/libpref/init/all.js.orig 2015-02-18 16:39:16.189950136 +0530
-+++ mozilla-esr38/modules/libpref/init/all.js 2015-02-18 16:40:56.002524458 +0530
-@@ -1461,7 +1461,7 @@ pref("intl.charset.detector",
- pref("intl.charset.fallback.override", "");
- pref("intl.charset.fallback.tld", true);
- pref("intl.ellipsis", "chrome://global-platform/locale/intl.properties");
--pref("intl.locale.matchOS", false);
-+pref("intl.locale.matchOS", true);
- // fallback charset list for Unicode conversion (converting from Unicode)
- // currently used for mail send only to handle symbol characters (e.g Euro, trademark, smartquotes)
- // for ISO-8859-1
--- a/components/desktop/thunderbird/patches/firefox-01-cairo-perf.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-This enables tracking of ARGB values for image masks, since some machines do
-not use ARGB values.
-See Mozilla bug #716462 - Performance regression with xBGR visual and no
-RENDER extension.
-We would like to try to get this upstream in the future.
-
-diff --git a/gfx/cairo/cairo/src/cairo-xlib-surface.c b/gfx/cairo/cairo/src/cairo-xlib-surface.c
---- a/gfx/cairo/cairo/src/cairo-xlib-surface.c
-+++ b/gfx/cairo/cairo/src/cairo-xlib-surface.c
-@@ -2325,6 +2325,7 @@
- cairo_region_t *clip_region)
- {
- cairo_image_surface_t *image;
-+ cairo_format_masks_t image_masks;
- cairo_rectangle_int_t extents;
- cairo_status_t status;
- int tx, ty;
-@@ -2341,6 +2342,16 @@
- (image->base.content & CAIRO_CONTENT_ALPHA) == 0)))
- return CAIRO_INT_STATUS_UNSUPPORTED;
-
-+ if (image->base.backend->type == CAIRO_SURFACE_TYPE_IMAGE) {
-+ if (_pixman_format_to_masks (image->pixman_format, &image_masks)) {
-+ if (! ((image_masks.alpha_mask == surface->a_mask || surface->a_mask == 0) &&
-+ (image_masks.red_mask == surface->r_mask || surface->r_mask == 0) &&
-+ (image_masks.green_mask == surface->g_mask || surface->g_mask == 0) &&
-+ (image_masks.blue_mask == surface->b_mask || surface->b_mask == 0)))
-+ return CAIRO_INT_STATUS_UNSUPPORTED;
-+ }
-+ }
-+
- if (image->base.backend->type != CAIRO_SURFACE_TYPE_IMAGE) {
- if (image->base.backend->type == CAIRO_INTERNAL_SURFACE_TYPE_SNAPSHOT) {
- image = (cairo_image_surface_t *) ((cairo_surface_snapshot_t *) image)->target;
--- a/components/desktop/thunderbird/patches/firefox-02-libnspr_flt4.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-This adds a library necessary for sparc.
-This will not be sent upstream because it would be difficult to
-add a sparc-only ifdef condition for this.
-
-diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
---- a/browser/installer/package-manifest.in
-+++ b/browser/installer/package-manifest.in
-@@ -804,6 +804,7 @@
- bin/libfreebl_32fpu_3.so
- bin/libfreebl_32int_3.so
- bin/libfreebl_32int64_3.so
-+bin/cpu/sparcv8plus/libnspr_flt4.so
- #endif
-
- ; [Updater]
--- a/components/desktop/thunderbird/patches/firefox-03-strcasestr.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-The 'uname' part is necessary because the uname() function returns a
-non-negative value.
-
-diff --git a/widget/GfxInfoX11.cpp b/widget/GfxInfoX11.cpp
---- a/widget/GfxInfoX11.cpp
-+++ b/widget/GfxInfoX11.cpp
-@@ -135,7 +136,7 @@
- // only useful for Linux kernel version check for FGLRX driver.
- // assumes X client == X server, which is sad.
- struct utsname unameobj;
-- if (!uname(&unameobj))
-+ if (uname(&unameobj) >= 0)
- {
- mOS.Assign(unameobj.sysname);
- mOSRelease.Assign(unameobj.release);
--- a/components/desktop/thunderbird/patches/firefox-04-check_test.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-This patch is for testing. Potential for sending upstream.
-
-diff --git a/testing/runcppunittests.py b/testing/runcppunittests.py
---- a/testing/runcppunittests.py
-+++ b/testing/runcppunittests.py
-@@ -103,6 +103,8 @@
- libpath = self.xre_path
- if mozinfo.os == "linux":
- pathvar = "LD_LIBRARY_PATH"
-+ if mozinfo.os == "unix":
-+ pathvar = "LD_LIBRARY_PATH"
- elif mozinfo.os == "mac":
- applibpath = os.path.join(os.path.dirname(libpath), 'MacOS')
- if os.path.exists(applibpath):
--- a/components/desktop/thunderbird/patches/firefox-05-sqlite3-unix-excl.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-This provides the option to set the indicator for a NFS profile to true.
-It may be necessary for users on NFS to use bookmarks/logging.
-Will not be sending upstream.
-
-diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
---- a/browser/app/profile/firefox.js
-+++ b/browser/app/profile/firefox.js
-@@ -1075,6 +1075,9 @@
- // allow META refresh by default
- pref("accessibility.blockautorefresh", false);
-
-+// Whether profile is on NFS
-+pref("storage.nfs_filesystem", true);
-+
- // Whether history is enabled or not.
- pref("places.history.enabled", true);
-
--- a/components/desktop/thunderbird/patches/firefox-06-hnjfile.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-This allows us to access some function from wchar.h that other platforms
-can get from stdio.h.
-Potentially add an ifdef Solaris statement to try and send upstream.
-
-diff --git a/intl/hyphenation/glue/hnjalloc.h b/intl/hyphenation/glue/hnjalloc.h
---- a/intl/hyphenation/glue/hnjalloc.h
-+++ b/intl/hyphenation/glue/hnjalloc.h
-@@ -24,6 +24,7 @@
- */
-
- #include <stdio.h> /* ensure stdio.h is loaded before our macros */
-+#include <wchar.h>
-
- #undef FILE
- #define FILE hnjFile
--- a/components/desktop/thunderbird/patches/firefox-07-nsMathUtils.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-This allows us to get some function from math.h that other platforms are
-getting from ieeefp.h.
-Can send upstream since it already has an ifdef statement for Solaris.
-
-diff --git a/xpcom/ds/nsMathUtils.h b/xpcom/ds/nsMathUtils.h
---- a/xpcom/ds/nsMathUtils.h
-+++ b/xpcom/ds/nsMathUtils.h
-@@ -13,6 +13,7 @@
- #include <float.h>
-
- #ifdef SOLARIS
-+#include <math.h>
- #include <ieeefp.h>
- #endif
-
--- a/components/desktop/thunderbird/patches/firefox-08-skip_mozbuild_test.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-For testing. Runs the test from a different environment than the Mozilla
-default.
-
-diff --git a/python/mozbuild/mozbuild/test/test_base.py b/python/mozbuild/mozbuild/test/test_base.py
---- a/python/mozbuild/mozbuild/test/test_base.py
-+++ b/python/mozbuild/mozbuild/test/test_base.py
-@@ -393,5 +393,5 @@
- self.assertEqual(p.srcdir_path(), "/src/foo/bar")
- self.assertEqual(p.objdir_path(), "/src/obj/foo/bar")
-
--if __name__ == '__main__':
-- main()
-+#if __name__ == '__main__':
-+# main()
-diff --git a/python/mozbuild/mozbuild/test/test_mozconfig.py b/python/mozbuild/mozbuild/test/test_mozconfig.py
---- a/python/mozbuild/mozbuild/test/test_mozconfig.py
-+++ b/python/mozbuild/mozbuild/test/test_mozconfig.py
-@@ -477,5 +477,5 @@
- self.assertEquals(e.exception.output, ['hello world'])
-
-
--if __name__ == '__main__':
-- main()
-+#if __name__ == '__main__':
-+# main()
--- a/components/desktop/thunderbird/patches/firefox-09-gthread-dlopen.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-See Mozilla bug #675585 - crash [@ g_slice_free1] when run firefox-bin -no-
-remote -process-updates.
-
-diff --git a/xpcom/glue/standalone/nsXPCOMGlue.cpp b/xpcom/glue/standalone/nsXPCOMGlue.cpp
---- a/xpcom/glue/standalone/nsXPCOMGlue.cpp
-+++ b/xpcom/glue/standalone/nsXPCOMGlue.cpp
-@@ -386,6 +386,8 @@
- }
- }
-
-+ static void* gthreadso = dlopen("libgthread-2.0.so.0", RTLD_GLOBAL | RTLD_LAZY);
-+
- GetFrozenFunctionsFunc sym =
- (GetFrozenFunctionsFunc)GetSymbol(sTop->libHandle,
- LEADING_UNDERSCORE "NS_GetFrozenFunctions");
--- a/components/desktop/thunderbird/patches/firefox-10-webaudio_math.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-This allows us to get some function from math.h that other platforms are
-getting elsewhere.
-Can potentially send upstream with ifdef Solaris statement.
-
-diff --git a/dom/media/webaudio/ThreeDPoint.h b/dom/media/webaudio/ThreeDPoint.h
---- a/dom/media/webaudio/ThreeDPoint.h
-+++ b/dom/media/webaudio/ThreeDPoint.h
-@@ -8,6 +8,7 @@
- #define ThreeDPoint_h_
-
- #include <cmath>
-+#include <math.h>
- #include <algorithm>
-
- namespace mozilla {
-diff --git a/dom/media/webaudio/blink/DenormalDisabler.h b/dom/media/webaudio/blink/DenormalDisabler.h
---- a/dom/media/webaudio/blink/DenormalDisabler.h
-+++ b/dom/media/webaudio/blink/DenormalDisabler.h
-@@ -27,6 +27,7 @@
-
- #define _USE_MATH_DEFINES
- #include <cmath>
-+#include <math.h>
- #include <float.h>
-
- namespace WebCore {
--- a/components/desktop/thunderbird/patches/firefox-11-donot-delay-stopping-realplayer.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-See Mozilla bug #451007 - Reload page causing problems with
-RealPlayer/Helix plugin.
-We can potentially drop this patch since RealPlayer is no longer being
-supported, but some people may still be using it.
-
-diff --git a/dom/base/nsObjectLoadingContent.cpp b/dom/base/nsObjectLoadingContent.cpp
---- a/dom/base/nsObjectLoadingContent.cpp
-+++ b/dom/base/nsObjectLoadingContent.cpp
-@@ -2902,7 +2902,8 @@
- bool aDelayedStop)
- {
- // Don't delay stopping QuickTime (bug 425157), Flip4Mac (bug 426524),
-- // XStandard (bug 430219), CMISS Zinc (bug 429604).
-+ // XStandard (bug 430219), CMISS Zinc (bug 429604),
-+ // RealPlayer/Helix (bug 451007).
- if (aDelayedStop
- #if !(defined XP_WIN || defined MOZ_X11)
- && !aInstanceOwner->MatchPluginName("QuickTime")
-@@ -2910,6 +2911,8 @@
- && !aInstanceOwner->MatchPluginName("XStandard plugin")
- && !aInstanceOwner->MatchPluginName("CMISS Zinc Plugin")
- #endif
-+ && !aInstanceOwner->MatchPluginName("RealPlayer")
-+ && !aInstanceOwner->MatchPluginName("Helix")
- ) {
- nsCOMPtr<nsIRunnable> evt =
- new nsStopPluginRunnable(aInstanceOwner, aContent);
--- a/components/desktop/thunderbird/patches/firefox-12-package_warning.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-Disables fatal warnings. Inside package-manifest.in, there is a sparc-specific
-line that we can't ifdef out. So we want to make sure this doesn't exit on
-an error for x86.
-We will want to redo this patch with an ifdef for x86 vs sparc.
-
-diff --git a/browser/installer/Makefile.in b/browser/installer/Makefile.in
---- a/browser/installer/Makefile.in
-+++ b/browser/installer/Makefile.in
-@@ -13,7 +13,7 @@ MOZ_PKG_MANIFEST = $(srcdir)/package-man
-
- # Some files have been already bundled with xulrunner
- ifndef MOZ_MULET
--MOZ_PKG_FATAL_WARNINGS = 1
-+#MOZ_PKG_FATAL_WARNINGS = 1
- else
- DEFINES += -DMOZ_MULET
- endif
--- a/components/desktop/thunderbird/patches/firefox-13-LocalFileUnix.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-Another ifdef Solaris patch. Some function is defined in limits.h that other
-platforms can get elsewhere.
-Can potentially send upstream with ifdef Solaris statement.
-
-diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
---- a/xpcom/io/nsLocalFileUnix.cpp
-+++ b/xpcom/io/nsLocalFileUnix.cpp
-@@ -14,6 +14,7 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
-+#include <limits.h>
- #include <fcntl.h>
- #include <errno.h>
- #include <utime.h>
--- a/components/desktop/thunderbird/patches/firefox-14-uname.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-The uname() function on Solaris can return a non-negative value.
-Solaris specific patch, will not send upstream
-
-diff --git a/toolkit/components/startup/nsUserInfoUnix.cpp b/toolkit/components/startup/nsUserInfoUnix.cpp
---- a/toolkit/components/startup/nsUserInfoUnix.cpp
-+++ b/toolkit/components/startup/nsUserInfoUnix.cpp
-@@ -106,7 +106,7 @@
- char *domainname = nullptr;
-
- // is this portable? that is a POSIX compliant call, but I need to check
-- if (uname(&buf)) {
-+ if (uname(&buf) < 0) {
- return rv;
- }
-
--- a/components/desktop/thunderbird/patches/firefox-15-ion_AsmJS_x86.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-REG_EIP is already defined elsewhere for Linux.
-Can potentially send upstream.
-
-diff --git a/js/src/asmjs/AsmJSSignalHandlers.cpp b/js/src/asmjs/AsmJSSignalHandlers.cpp
---- a/js/src/asmjs/AsmJSSignalHandlers.cpp
-+++ b/js/src/asmjs/AsmJSSignalHandlers.cpp
-@@ -116,6 +116,9 @@
- # define R14_sig(p) ((p)->sc_r14)
- # define R15_sig(p) ((p)->sc_r15)
- #elif defined(__linux__) || defined(SOLARIS)
-+# if defined(SOLARIS)
-+# define REG_EIP EIP
-+# endif
- # if defined(__linux__)
- # define XMM_sig(p,i) ((p)->uc_mcontext.fpregs->_xmm[i])
- # define EIP_sig(p) ((p)->uc_mcontext.gregs[REG_EIP])
--- a/components/desktop/thunderbird/patches/firefox-16-mftt_infinity.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-We use a different function from the one in ieeefp.h.
-This may be a studio specific patch. Need to investigate if this can be
-removed.
-
-diff --git a/mfbt/decimal/Decimal.cpp b/mfbt/decimal/Decimal.cpp
---- a/mfbt/decimal/Decimal.cpp
-+++ b/mfbt/decimal/Decimal.cpp
-@@ -33,6 +33,7 @@
-
- #include <algorithm>
- #include <float.h>
-+#include <ieeefp.h>
-
- using namespace moz_decimal_utils;
-
-@@ -686,13 +687,13 @@
-
- Decimal Decimal::fromDouble(double doubleValue)
- {
-- if (std::isfinite(doubleValue))
-+ if (finite(doubleValue))
- return fromString(mozToString(doubleValue));
-
-- if (std::isinf(doubleValue))
-- return infinity(doubleValue < 0 ? Negative : Positive);
-+ if (isnand(doubleValue))
-+ return nan();
-
-- return nan();
-+ return infinity(doubleValue < 0 ? Negative : Positive);
- }
-
- Decimal Decimal::fromString(const String& str)
--- a/components/desktop/thunderbird/patches/firefox-17-xpt-as-flag.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-We need the xptcstubsdef_asm file for Sun Studio, but not necessary for GCC.
-One of the files was placed in the wrong location and needs to be moved. This
-part can probably be sent upstream.
-
-diff --git a/xpcom/reflect/xptcall/md/unix/moz.build b/xpcom/reflect/xptcall/md/unix/moz.build
---- a/xpcom/reflect/xptcall/md/unix/moz.build
-+++ b/xpcom/reflect/xptcall/md/unix/moz.build
-@@ -267,9 +270,6 @@
- ]
-
- if CONFIG['OS_ARCH'] == 'SunOS' and '86' in CONFIG['OS_TEST']:
-- GENERATED_FILES = [
-- 'xptcstubsdef_asm.solx86',
-- ]
- if CONFIG['OS_TEST'] == 'x86_64':
- if CONFIG['GNU_CC']:
- SOURCES += [
--- a/components/desktop/thunderbird/patches/firefox-18-libvpx_compile.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-Can probably send upstream.
-
---- a/media/libvpx/moz.build
-+++ b/media/libvpx/moz.build
-@@ -97,3 +97,8 @@ if CONFIG['OS_TARGET'] == 'Android':
- ASFLAGS += [
- '-D__ANDROID__'
- ]
-+
-+if CONFIG['OS_TARGET'] == 'SunOS':
-+ ASFLAGS += [
-+ '-DSOLARIS'
-+ ]
-diff --git a/media/libvpx/Makefile.in b/media/libvpx/Makefile.in
---- a/media/libvpx/Makefile.in
-+++ b/media/libvpx/Makefile.in
-@@ -121,7 +125,7 @@
- # Workaround a bug of Sun Studio (CR 6963410)
- ifdef SOLARIS_SUNPRO_CC
- ifeq (86,$(findstring 86,$(OS_TEST)))
--filter.o: filter.c Makefile.in
-+filter.o: vp8/common/filter.c Makefile.in
- $(REPORT_BUILD)
- @$(MAKE_DEPS_AUTO_CC)
- $(CC) -o $@ -c $(patsubst -xO[45],-xO3,$(COMPILE_CFLAGS)) $<
-diff --git a/media/libvpx/vpx_ports/x86_abi_support.asm b/media/libvpx/vpx_ports/x86_abi_support.asm
---- a/media/libvpx/vpx_ports/x86_abi_support.asm
-+++ b/media/libvpx/vpx_ports/x86_abi_support.asm
-@@ -225,9 +225,13 @@
- %ifdef CHROMIUM
- %ifidn __OUTPUT_FORMAT__,macho32
- %define HIDDEN_DATA(x) x:private_extern
-+ %elifidn SOLARIS,1
-+ %define HIDDEN_DATA(x) x:data hidden
- %else
- %define HIDDEN_DATA(x) x
- %endif
-+ %elifidn SOLARIS,1
-+ %define HIDDEN_DATA(x) x:data hidden
- %else
- %define HIDDEN_DATA(x) x
- %endif
-@@ -244,9 +248,13 @@
- %elifidn __OUTPUT_FORMAT__,macho64
- %ifdef CHROMIUM
- %define HIDDEN_DATA(x) x:private_extern
-+ %elifidn SOLARIS,1
-+ %define HIDDEN_DATA(x) x:data hidden
- %else
- %define HIDDEN_DATA(x) x
- %endif
-+ %elifidn SOLARIS,1
-+ %define HIDDEN_DATA(x) x:data hidden
- %else
- %define HIDDEN_DATA(x) x
- %endif
--- a/components/desktop/thunderbird/patches/firefox-19-cubeb.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,547 +0,0 @@
-For SunAudio audio playback. We need to investigate whether we care about
-this or whether we are just going to support PulseAudio.
-
-diff --git a/media/libcubeb/src/cubeb.c b/media/libcubeb/src/cubeb.c
---- a/media/libcubeb/src/cubeb.c
-+++ b/media/libcubeb/src/cubeb.c
-@@ -56,6 +56,9 @@
- #if defined(USE_AUDIOTRACK)
- int audiotrack_init(cubeb ** context, char const * context_name);
- #endif
-+#if defined(USE_SUN)
-+int sunaudio_init(cubeb ** context, char const * context_name);
-+#endif
-
- int
- validate_stream_params(cubeb_stream_params stream_params)
-@@ -122,6 +125,9 @@
- #if defined(USE_AUDIOTRACK)
- audiotrack_init,
- #endif
-+#if defined(USE_SUN)
-+ sunaudio_init,
-+#endif
- };
- int i;
-
-diff --git a/media/libcubeb/src/moz.build b/media/libcubeb/src/moz.build
---- a/media/libcubeb/src/moz.build
-+++ b/media/libcubeb/src/moz.build
-@@ -31,6 +31,12 @@
- ]
- DEFINES['USE_SNDIO'] = True
-
-+if CONFIG['OS_ARCH'] == 'SunOS':
-+ SOURCES += [
-+ 'cubeb_sun.c',
-+ ]
-+ DEFINES['USE_SUN'] = True
-+
- if CONFIG['OS_TARGET'] == 'Darwin':
- SOURCES += [
- 'cubeb_audiounit.c',
-diff --git a/media/libcubeb/src/cubeb_sun.c b/media/libcubeb/src/cubeb_sun.c
-new file mode 100644
---- /dev/null
-+++ b/media/libcubeb/src/cubeb_sun.c
-@@ -0,0 +1,500 @@
-+/*
-+ * Copyright (c) 2013 Ginn Chen <[email protected]>
-+ *
-+ * This program is made available under an ISC-style license. See the
-+ * accompanying file LICENSE for details.
-+ */
-+#include <poll.h>
-+#include <pthread.h>
-+#include <stdlib.h>
-+#include <stdio.h>
-+#include <errno.h>
-+#include <fcntl.h>
-+#include <sys/audio.h>
-+#include <sys/stat.h>
-+#include <unistd.h>
-+#include <sys/stropts.h>
-+#include "cubeb/cubeb.h"
-+#include "cubeb-internal.h"
-+
-+/* Macros copied from audio_oss.h */
-+/*
-+ * CDDL HEADER START
-+ *
-+ * The contents of this file are subject to the terms of the
-+ * Common Development and Distribution License (the "License").
-+ * You may not use this file except in compliance with the License.
-+ *
-+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-+ * or http://www.opensolaris.org/os/licensing.
-+ * See the License for the specific language governing permissions
-+ * and limitations under the License.
-+ *
-+ * When distributing Covered Code, include this CDDL HEADER in each
-+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-+ * If applicable, add the following below this CDDL HEADER, with the
-+ * fields enclosed by brackets "[]" replaced with your own identifying
-+ * information: Portions Copyright [yyyy] [name of copyright owner]
-+ *
-+ * CDDL HEADER END
-+ */
-+/*
-+ * Copyright (C) 4Front Technologies 1996-2008.
-+ *
-+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
-+ * Use is subject to license terms.
-+ */
-+#define OSSIOCPARM_MASK 0x1fff /* parameters must be < 8192 bytes */
-+#define OSSIOC_VOID 0x00000000 /* no parameters */
-+#define OSSIOC_OUT 0x20000000 /* copy out parameters */
-+#define OSSIOC_IN 0x40000000 /* copy in parameters */
-+#define OSSIOC_INOUT (OSSIOC_IN|OSSIOC_OUT)
-+#define OSSIOC_SZ(t) ((sizeof (t) & OSSIOCPARM_MASK) << 16)
-+#define __OSSIO(x, y) ((int)(OSSIOC_VOID|(x<<8)|y))
-+#define __OSSIOR(x, y, t) ((int)(OSSIOC_OUT|OSSIOC_SZ(t)|(x<<8)|y))
-+#define __OSSIOWR(x, y, t) ((int)(OSSIOC_INOUT|OSSIOC_SZ(t)|(x<<8)|y))
-+#define SNDCTL_DSP_SPEED __OSSIOWR('P', 2, int)
-+#define SNDCTL_DSP_CHANNELS __OSSIOWR('P', 6, int)
-+#define SNDCTL_DSP_SETFMT __OSSIOWR('P', 5, int) /* Selects ONE fmt */
-+#define SNDCTL_DSP_GETODELAY __OSSIOR('P', 23, int)
-+#define SNDCTL_DSP_HALT_OUTPUT __OSSIO('P', 34)
-+#define AFMT_S16_LE 0x00000010
-+#define AFMT_S16_BE 0x00000020
-+
-+#if defined(WORDS_BIGENDIAN) || defined(__BIG_ENDIAN__)
-+#define AFMT_S16_NE AFMT_S16_BE
-+#else
-+#define AFMT_S16_NE AFMT_S16_LE
-+#endif
-+
-+#define DEFAULT_AUDIO_DEVICE "/dev/audio"
-+#define DEFAULT_DSP_DEVICE "/dev/dsp"
-+
-+#define BUF_SIZE_MS 10
-+
-+#if defined(CUBEB_SUNAUDIO_DEBUG)
-+#define DPR(...) fprintf(stderr, __VA_ARGS__);
-+#else
-+#define DPR(...) do {} while(0)
-+#endif
-+
-+static struct cubeb_ops const sunaudio_ops;
-+
-+struct cubeb {
-+ struct cubeb_ops const * ops;
-+};
-+
-+struct cubeb_stream {
-+ cubeb * context;
-+ pthread_t th; /* to run real-time audio i/o */
-+ pthread_mutex_t mutex; /* protects fd and frm_played */
-+ int fd; /* link us to sunaudio */
-+ int active; /* cubec_start() called */
-+ int conv; /* need float->s16 conversion */
-+ int using_oss;
-+ unsigned char *buf; /* data is prepared here */
-+ unsigned int rate;
-+ unsigned int n_channles;
-+ unsigned int bytes_per_ch;
-+ unsigned int n_frm;
-+ unsigned int buffer_size;
-+ int64_t frm_played;
-+ cubeb_data_callback data_cb; /* cb to preapare data */
-+ cubeb_state_callback state_cb; /* cb to notify about state changes */
-+ void *arg; /* user arg to {data,state}_cb */
-+};
-+
-+static void
-+float_to_s16(void *ptr, long nsamp)
-+{
-+ int16_t *dst = ptr;
-+ float *src = ptr;
-+
-+ while (nsamp-- > 0)
-+ *(dst++) = *(src++) * 32767;
-+}
-+
-+static void *
-+sunaudio_mainloop(void *arg)
-+{
-+ struct cubeb_stream *s = arg;
-+ int state;
-+
-+ DPR("sunaudio_mainloop()\n");
-+
-+ s->state_cb(s, s->arg, CUBEB_STATE_STARTED);
-+
-+ pthread_mutex_lock(&s->mutex);
-+ DPR("sunaudio_mainloop(), started\n");
-+
-+ for (;;) {
-+ if (!s->active) {
-+ DPR("sunaudio_mainloop() stopped\n");
-+ state = CUBEB_STATE_STOPPED;
-+ break;
-+ }
-+
-+ if (!s->using_oss) {
-+ audio_info_t info;
-+ ioctl(s->fd, AUDIO_GETINFO, &info);
-+ if (s->frm_played > info.play.samples + 3 * s->n_frm) {
-+ pthread_mutex_unlock(&s->mutex);
-+ struct timespec ts = {0, 10000}; // 10 ms
-+ nanosleep(&ts, NULL);
-+ pthread_mutex_lock(&s->mutex);
-+ continue;
-+ }
-+ }
-+
-+ pthread_mutex_unlock(&s->mutex);
-+ unsigned int got = s->data_cb(s, s->arg, s->buf, s->n_frm);
-+ DPR("sunaudio_mainloop() ask %d got %d\n", s->n_frm, got);
-+ pthread_mutex_lock(&s->mutex);
-+
-+ if (got < 0) {
-+ DPR("sunaudio_mainloop() cb err\n");
-+ state = CUBEB_STATE_ERROR;
-+ break;
-+ }
-+
-+ if (s->conv) {
-+ float_to_s16(s->buf, got * s->n_channles);
-+ }
-+
-+ unsigned int avail = got * 2 * s->n_channles; // coverted to s16
-+ unsigned int pos = 0;
-+
-+ while (avail > 0 && s->active) {
-+ int written = write(s->fd, s->buf + pos, avail);
-+ if (written == -1) {
-+ if (errno != EINTR && errno != EWOULDBLOCK) {
-+ DPR("sunaudio_mainloop() write err\n");
-+ state = CUBEB_STATE_ERROR;
-+ break;
-+ }
-+ pthread_mutex_unlock(&s->mutex);
-+ struct timespec ts = {0, 10000}; // 10 ms
-+ nanosleep(&ts, NULL);
-+ pthread_mutex_lock(&s->mutex);
-+ } else {
-+ pos += written;
-+ DPR("sunaudio_mainloop() write %d pos %d\n", written, pos);
-+ s->frm_played += written / 2 / s->n_channles;
-+ avail -= written;
-+ }
-+ }
-+
-+ if ((got < s->n_frm)) {
-+ DPR("sunaudio_mainloop() drained\n");
-+ state = CUBEB_STATE_DRAINED;
-+ break;
-+ }
-+ }
-+
-+ pthread_mutex_unlock(&s->mutex);
-+ s->state_cb(s, s->arg, state);
-+
-+ return NULL;
-+}
-+
-+/*static*/ int
-+sunaudio_init(cubeb **context, char const *context_name)
-+{
-+ DPR("sunaudio_init(%s)\n", context_name);
-+ *context = malloc(sizeof(*context));
-+ (*context)->ops = &sunaudio_ops;
-+ (void)context_name;
-+ return CUBEB_OK;
-+}
-+
-+static char const *
-+sunaudio_get_backend_id(cubeb *context)
-+{
-+ return "sunaudio";
-+}
-+
-+static void
-+sunaudio_destroy(cubeb *context)
-+{
-+ DPR("sunaudio_destroy()\n");
-+ free(context);
-+}
-+
-+static int
-+sunaudio_stream_init(cubeb *context,
-+ cubeb_stream **stream,
-+ char const *stream_name,
-+ cubeb_stream_params stream_params, unsigned int latency,
-+ cubeb_data_callback data_callback,
-+ cubeb_state_callback state_callback,
-+ void *user_ptr)
-+{
-+ struct cubeb_stream *s;
-+ DPR("sunaudio_stream_init(%s)\n", stream_name);
-+ size_t size;
-+
-+ s = malloc(sizeof(struct cubeb_stream));
-+ if (s == NULL)
-+ return CUBEB_ERROR;
-+ s->context = context;
-+
-+ // If UTAUDIODEV is set, use it with Sun Audio interface
-+ char * sa_device_name = getenv("UTAUDIODEV");
-+ char * dsp_device_name = NULL;
-+ if (!sa_device_name) {
-+ dsp_device_name = getenv("AUDIODSP");
-+ if (!dsp_device_name) {
-+ dsp_device_name = DEFAULT_DSP_DEVICE;
-+ }
-+ sa_device_name = getenv("AUDIODEV");
-+ if (!sa_device_name) {
-+ sa_device_name = DEFAULT_AUDIO_DEVICE;
-+ }
-+ }
-+
-+ s->using_oss = 0;
-+ // Try to use OSS if available
-+ if (dsp_device_name) {
-+ s->fd = open(dsp_device_name, O_WRONLY | O_NONBLOCK);
-+ if (s->fd >= 0) {
-+ s->using_oss = 1;
-+ }
-+ }
-+
-+ // Try Sun Audio
-+ if (!s->using_oss) {
-+ s->fd = open(sa_device_name, O_WRONLY | O_NONBLOCK);
-+ }
-+
-+ if (s->fd < 0) {
-+ free(s);
-+ DPR("sunaudio_stream_init(), open() failed\n");
-+ return CUBEB_ERROR;
-+ }
-+
-+ if (s->using_oss) {
-+ if (ioctl(s->fd, SNDCTL_DSP_SPEED, &stream_params.rate) < 0) {
-+ DPR("ioctl SNDCTL_DSP_SPEED failed.\n");
-+ close(s->fd);
-+ free(s);
-+ return CUBEB_ERROR_INVALID_FORMAT;
-+ }
-+
-+ if (ioctl(s->fd, SNDCTL_DSP_CHANNELS, &stream_params.channels) < 0) {
-+ DPR("ioctl SNDCTL_DSP_CHANNELS failed.\n");
-+ close(s->fd);
-+ free(s);
-+ return CUBEB_ERROR_INVALID_FORMAT;
-+ }
-+
-+ int format = AFMT_S16_NE;
-+ if (ioctl(s->fd, SNDCTL_DSP_SETFMT, &format) < 0) {
-+ DPR("ioctl SNDCTL_DSP_SETFMT failed.\n");
-+ close(s->fd);
-+ free(s);
-+ return CUBEB_ERROR_INVALID_FORMAT;
-+ }
-+ } else {
-+ audio_info_t audio_info;
-+ AUDIO_INITINFO(&audio_info)
-+ audio_info.play.sample_rate = stream_params.rate;
-+ audio_info.play.channels = stream_params.channels;
-+ audio_info.play.encoding = AUDIO_ENCODING_LINEAR;
-+ audio_info.play.precision = 16;
-+ if (ioctl(s->fd, AUDIO_SETINFO, &audio_info) == -1) {
-+ DPR("ioctl AUDIO_SETINFO failed.\n");
-+ close(s->fd);
-+ free(s);
-+ return CUBEB_ERROR_INVALID_FORMAT;
-+ }
-+ }
-+
-+ s->conv = 0;
-+ switch (stream_params.format) {
-+ case CUBEB_SAMPLE_S16NE:
-+ s->bytes_per_ch = 2;
-+ break;
-+ case CUBEB_SAMPLE_FLOAT32NE:
-+ s->bytes_per_ch = 4;
-+ s->conv = 1;
-+ break;
-+ default:
-+ DPR("sunaudio_stream_init() unsupported format\n");
-+ close(s->fd);
-+ free(s);
-+ return CUBEB_ERROR_INVALID_FORMAT;
-+ }
-+
-+ s->active = 0;
-+ s->rate = stream_params.rate;
-+ s->n_channles = stream_params.channels;
-+ s->data_cb = data_callback;
-+ s->state_cb = state_callback;
-+ s->arg = user_ptr;
-+ if (pthread_mutex_init(&s->mutex, NULL) != 0) {
-+ free(s);
-+ return CUBEB_ERROR;
-+ }
-+ s->frm_played = 0;
-+ s->n_frm = s->rate * BUF_SIZE_MS / 1000;
-+ s->buffer_size = s->bytes_per_ch * s->n_channles * s->n_frm;
-+ s->buf = malloc(s->buffer_size);
-+ if (s->buf == NULL) {
-+ close(s->fd);
-+ free(s);
-+ return CUBEB_ERROR;
-+ }
-+
-+ *stream = s;
-+ DPR("sunaudio_stream_init() end, ok\n");
-+ return CUBEB_OK;
-+}
-+
-+static void
-+sunaudio_stream_destroy(cubeb_stream *s)
-+{
-+ DPR("sunaudio_stream_destroy()\n");
-+ if (s->fd > 0) {
-+ // Flush buffer
-+ if (s->using_oss) {
-+ ioctl(s->fd, SNDCTL_DSP_HALT_OUTPUT);
-+ } else {
-+ ioctl(s->fd, I_FLUSH);
-+ }
-+ close(s->fd);
-+ }
-+ free(s->buf);
-+ free(s);
-+}
-+
-+static int
-+sunaudio_stream_start(cubeb_stream *s)
-+{
-+ int err;
-+
-+ DPR("sunaudio_stream_start()\n");
-+ s->active = 1;
-+ err = pthread_create(&s->th, NULL, sunaudio_mainloop, s);
-+ if (err) {
-+ s->active = 0;
-+ return CUBEB_ERROR;
-+ }
-+ return CUBEB_OK;
-+}
-+
-+static int
-+sunaudio_stream_stop(cubeb_stream *s)
-+{
-+ void *dummy;
-+
-+ DPR("sunaudio_stream_stop()\n");
-+ if (s->active) {
-+ s->active = 0;
-+ pthread_join(s->th, &dummy);
-+ }
-+ return CUBEB_OK;
-+}
-+
-+static int
-+sunaudio_stream_get_position(cubeb_stream *s, uint64_t *p)
-+{
-+ int rv = CUBEB_OK;
-+ pthread_mutex_lock(&s->mutex);
-+ if (s->active && s->fd > 0) {
-+ if (s->using_oss) {
-+ int delay;
-+ ioctl(s->fd, SNDCTL_DSP_GETODELAY, &delay);
-+ int64_t t = s->frm_played - delay / s->n_channles / 2;
-+ if (t < 0) {
-+ *p = 0;
-+ } else {
-+ *p = t;
-+ }
-+ } else {
-+ audio_info_t info;
-+ ioctl(s->fd, AUDIO_GETINFO, &info);
-+ *p = info.play.samples;
-+ }
-+ DPR("sunaudio_stream_get_position() %lld\n", *p);
-+ } else {
-+ rv = CUBEB_ERROR;
-+ }
-+ pthread_mutex_unlock(&s->mutex);
-+ return rv;
-+}
-+
-+static int
-+sunaudio_get_max_channel_count(cubeb * ctx, uint32_t * max_channels)
-+{
-+ if (!ctx || !max_channels)
-+ return CUBEB_ERROR;
-+
-+ *max_channels = 2;
-+
-+ return CUBEB_OK;
-+}
-+
-+static int
-+sunaudio_get_preferred_sample_rate(cubeb * ctx, uint32_t * rate)
-+{
-+ if (!ctx || !rate)
-+ return CUBEB_ERROR;
-+
-+ // XXX Not yet implemented.
-+ *rate = 44100;
-+
-+ return CUBEB_OK;
-+}
-+
-+static int
-+sunaudio_get_min_latency(cubeb * ctx, cubeb_stream_params params, uint32_t * latency_ms)
-+{
-+ if (!ctx || !latency_ms)
-+ return CUBEB_ERROR;
-+
-+ // XXX Not yet implemented.
-+ *latency_ms = 20;
-+
-+ return CUBEB_OK;
-+}
-+
-+static int
-+sunaudio_stream_get_latency(cubeb_stream * s, uint32_t * latency)
-+{
-+ if (!s || !latency)
-+ return CUBEB_ERROR;
-+
-+ int rv = CUBEB_OK;
-+ pthread_mutex_lock(&s->mutex);
-+ if (s->active && s->fd > 0) {
-+ if (s->using_oss) {
-+ int delay;
-+ ioctl(s->fd, SNDCTL_DSP_GETODELAY, &delay);
-+ *latency = delay / s->n_channles / 2 / s->rate;
-+ } else {
-+ audio_info_t info;
-+ ioctl(s->fd, AUDIO_GETINFO, &info);
-+ *latency = (s->frm_played - info.play.samples) / s->rate;
-+ }
-+ DPR("sunaudio_stream_get_position() %lld\n", *p);
-+ } else {
-+ rv = CUBEB_ERROR;
-+ }
-+ pthread_mutex_unlock(&s->mutex);
-+ return rv;
-+}
-+
-+static struct cubeb_ops const sunaudio_ops = {
-+ .init = sunaudio_init,
-+ .get_backend_id = sunaudio_get_backend_id,
-+ .destroy = sunaudio_destroy,
-+ .get_preferred_sample_rate = sunaudio_get_preferred_sample_rate,
-+ .stream_init = sunaudio_stream_init,
-+ .stream_destroy = sunaudio_stream_destroy,
-+ .stream_start = sunaudio_stream_start,
-+ .stream_stop = sunaudio_stream_stop,
-+ .stream_get_position = sunaudio_stream_get_position,
-+ .get_max_channel_count = sunaudio_get_max_channel_count,
-+ .get_min_latency = sunaudio_get_min_latency,
-+ .stream_get_latency = sunaudio_stream_get_latency
-+};
--- a/components/desktop/thunderbird/patches/firefox-20-gfx.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-Compiler specific. Can potentially send upstream with an ifdef Solaris
-statement.
-
-diff --git a/gfx/2d/FilterProcessingSIMD-inl.h b/gfx/2d/FilterProcessingSIMD-inl.h
---- a/gfx/2d/FilterProcessingSIMD-inl.h
-+++ b/gfx/2d/FilterProcessingSIMD-inl.h
-@@ -490,7 +490,7 @@
- // int16_t rows_ra[8] == { rB, rG, rR, rA, aB, aG, aR, aA }.
- // int32_t bias[4] == { _B, _G, _R, _A }.
-
-- i32x4_t sum = bias;
-+ i32x4_t sum = (i32x4_t)bias;
-
- // int16_t bg[8] = { b, g, b, g, b, g, b, g };
- i16x8_t bg = simd::ShuffleHi16<1,0,1,0>(simd::ShuffleLo16<1,0,1,0>(p));
-diff --git a/gfx/2d/SIMD.h b/gfx/2d/SIMD.h
---- a/gfx/2d/SIMD.h
-+++ b/gfx/2d/SIMD.h
-@@ -10,8 +10,8 @@
- * Consumers of this file need to #define SIMD_COMPILE_SSE2 before including it
- * if they want access to the SSE2 functions.
- */
--
- #ifdef SIMD_COMPILE_SSE2
-+#include <emmintrin.h>
- #include <xmmintrin.h>
- #endif
-
--- a/components/desktop/thunderbird/patches/firefox-21-mozconfig_loader_bash.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-This patch is needed because the default shell on Solaris has issues.
-Still needed for ksh93 on S11 and S12.
-
-diff --git a/python/mozbuild/mozbuild/mozconfig_loader b/python/mozbuild/mozbuild/mozconfig_loader
---- a/python/mozbuild/mozbuild/mozconfig_loader
-+++ b/python/mozbuild/mozbuild/mozconfig_loader
-@@ -1,4 +1,4 @@
--#!/bin/sh
-+#!/bin/bash
- # 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/.
--- a/components/desktop/thunderbird/patches/firefox-22-snappy.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-Defined Endians.
-Can potentially go upstream.
-
-diff --git a/configure b/configure
---- a/configure
-+++ b/configure
-@@ -9620,6 +9620,18 @@
- #define SOLARIS 1
- EOF
-
-+ if test "$CPU_ARCH" = "sparc"; then
-+ cat >> confdefs.pytmp <<\EOF
-+ (''' WORDS_BIGENDIAN ''', ' 1 ')
-+ (''' IS_BIG_ENDIAN ''', ' 1 ')
-+EOF
-+cat >> confdefs.h <<\EOF
-+#define WORDS_BIGENDIAN 1
-+#define IS_BIG_ENDIAN 1
-+EOF
-+
-+ fi
-+
- TARGET_NSPR_MDCPUCFG='\"md/_solaris.cfg\"'
- MOZ_FIX_LINK_PATHS=
- # $ORIGIN/.. is for shared libraries under components/ to locate shared
--- a/components/desktop/thunderbird/patches/firefox-23-skia_gpu.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-Returns an error if big endian. We probably don't need to worry about this
-since we don't use Skia gpu.
-Seems sparc specific. To be investigated.
-
-diff --git a/gfx/skia/skia/include/gpu/GrTypes.h b/gfx/skia/skia/include/gpu/GrTypes.h
---- a/gfx/skia/skia/include/gpu/GrTypes.h
-+++ b/gfx/skia/skia/include/gpu/GrTypes.h
-@@ -309,9 +309,9 @@
- static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1;
-
- // Aliases for pixel configs that match skia's byte order.
--#ifndef SK_CPU_LENDIAN
-- #error "Skia gpu currently assumes little endian"
--#endif
-+// #ifndef SK_CPU_LENDIAN
-+// #error "Skia gpu currently assumes little endian"
-+// #endif
- #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
- static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig;
- #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
--- a/components/desktop/thunderbird/patches/firefox-24-test.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-For testing. Commented out some tests that are known not to work on Solaris.
-Solaris-specific patch.
-
-diff --git a/docshell/test/unit/test_bug414201_jfif.js b/docshell/test/unit/test_bug414201_jfif.js
---- a/docshell/test/unit/test_bug414201_jfif.js
-+++ b/docshell/test/unit/test_bug414201_jfif.js
-@@ -20,8 +20,9 @@
- /* Check whether the primary extension is what we'd expect */
- for (var mimetype in types) {
- var exts = types[mimetype];
-- var primary = ms.getFromTypeAndExtension(mimetype, null).primaryExtension.toLowerCase();
-+// Known issue on Solaris
-+// var primary = ms.getFromTypeAndExtension(mimetype, null).primaryExtension.toLowerCase();
-
-- do_check_true (exts.indexOf(primary) != -1);
-+// do_check_true (exts.indexOf(primary) != -1);
- }
- }
-diff --git a/dom/tests/unit/test_geolocation_provider.js b/dom/tests/unit/test_geolocation_provider.js
---- a/dom/tests/unit/test_geolocation_provider.js
-+++ b/dom/tests/unit/test_geolocation_provider.js
-@@ -70,6 +70,7 @@
- // needs a place where it can store databases.
- do_get_profile();
-
-+/* Network issue
- // only kill this test when shutdown is called on the provider.
- do_test_pending();
-
-@@ -89,4 +90,5 @@
-
- geolocation = Cc["@mozilla.org/geolocation;1"].getService(Ci.nsISupports);
- watchID = geolocation.watchPosition(successCallback, errorCallback);
-+*/
- }
-diff --git a/gfx/tests/gtest/TestLayers.cpp b/gfx/tests/gtest/TestLayers.cpp
---- a/gfx/tests/gtest/TestLayers.cpp
-+++ b/gfx/tests/gtest/TestLayers.cpp
-@@ -102,7 +102,7 @@
-
- TEST(Layers, Defaults) {
- TestContainerLayer layer(nullptr);
-- ASSERT_EQ(1.0, layer.GetOpacity());
-+ ASSERT_EQ(1.0f, layer.GetOpacity());
- ASSERT_EQ(1.0f, layer.GetPostXScale());
- ASSERT_EQ(1.0f, layer.GetPostYScale());
-
--- a/components/desktop/thunderbird/patches/firefox-25-rules_mk.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-The ninstall... function is not callable for some reason, so we need to copy
-the definition when using install_cmd.
-
-diff --git a/config/rules.mk b/config/rules.mk
---- a/config/rules.mk
-+++ b/config/rules.mk
-@@ -1402,7 +1402,7 @@
- nsinstall_is_usable = $(if $(wildcard $(DEPTH)/config/nsinstall$(HOST_BIN_SUFFIX)),yes)
-
- define install_cmd_override
--$(1): install_cmd = $$(if $$(nsinstall_is_usable),$$(INSTALL),$$(NSINSTALL_PY) -t) $$(1)
-+$(1): install_cmd = $$(if $(wildcard $(DIST)/bin/nsinstall$(HOST_BIN_SUFFIX)),$$(INSTALL),$$(NSINSTALL_PY) -t) $$(1)
- endef
- endif
- endif
--- a/components/desktop/thunderbird/patches/firefox-26-jit-test-multi-processes.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-For testing. This reduces memory needed for JIT test. The -f flag will print
-the full patch of failures (want to keep this).
-In-house patch for testing.
-
-diff --git a/js/src/Makefile.in b/js/src/Makefile.in
---- a/js/src/Makefile.in
-+++ b/js/src/Makefile.in
-@@ -134,7 +134,7 @@
-
- check-jit-test::
- $(JITTEST_SANITIZER_ENV) $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/jit-test/jit_test.py \
-- --no-slow --no-progress --format=automation --jitflags=all \
-+ --no-slow --no-progress --format=automation --jitflags=all -j 2 -f \
- $(JITTEST_VALGRIND_FLAG) \
- $(JITTEST_EXTRA_ARGS) \
- $(DIST)/bin/$(JS_SHELL_NAME)$(BIN_SUFFIX)
--- a/components/desktop/thunderbird/patches/firefox-27-stacksize.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-For sparc. Our function frame is very big, so on sparc we need more stack size.
-Potentially send upstream.
-
-diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp
---- a/js/src/jsapi.cpp
-+++ b/js/src/jsapi.cpp
-@@ -1491,6 +1491,9 @@
- static void
- SetNativeStackQuotaAndLimit(JSRuntime* rt, StackKind kind, size_t stackSize)
- {
-+#ifdef JS_CPU_SPARC
-+ stackSize = stackSize * 8 < 7 * 1024 * 1024 ? stackSize * 8 : 7 * 1024 * 1024;
-+#endif
- rt->nativeStackQuota[kind] = stackSize;
-
- #if JS_STACK_GROWTH_DIRECTION > 0
--- a/components/desktop/thunderbird/patches/firefox-28-configure.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-Shell translations.
-
-diff --git a/js/src/configure b/js/src/configure
---- a/js/src/configure
-+++ b/js/src/configure
-@@ -1230,7 +1230,7 @@
- fi
-
- fi
-- IS_GCC=$($CC -v 2>&1 | grep gcc)
-+ IS_GCC=`$CC -v 2>&1 | grep gcc`
- if test -n "$IS_GCC"
- then
- echo gcc is known to be broken on OS X, please use clang.
-@@ -4426,7 +4426,7 @@
- for base in $MOZILLA_CENTRAL_PATH $_topsrcdir $_topsrcdir/../..; do
- possible=$base/python/mozbuild/mozbuild/virtualenv.py
-
-- if test -e $possible; then
-+ if test -f $possible; then
- _virtualenv_topsrcdir=$base
- _virtualenv_populate_path=$possible
- break
-@@ -8743,12 +8743,12 @@
-
- if test "$GNU_CC" -a -n "$MOZ_FORCE_GOLD"; then
- if $CC -Wl,--version 2>&1 | grep -q "GNU ld"; then
-- GOLD=$($CC -print-prog-name=ld.gold)
-+ GOLD=`$CC -print-prog-name=ld.gold`
- case "$GOLD" in
- /*)
- ;;
- *)
-- GOLD=$(which $GOLD)
-+ GOLD=`which $GOLD`
- ;;
- esac
- if test -n "$GOLD"; then
-@@ -16322,9 +16322,12 @@
-
-
- rm -fr confdefs* $ac_clean_files
--if test "$no_create" != yes && ! ${PYTHON} $CONFIG_STATUS; then
-+if test "$no_create" != yes; then
-+ ${PYTHON} $CONFIG_STATUS
-+ if test "$?" != 0; then
- trap '' EXIT
- exit 1
--fi
--
--fi
-+ fi
-+fi
-+
-+fi
--- a/components/desktop/thunderbird/patches/firefox-30-other-buildissue.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-Various ifdef Solaris fixes.
-Recast for getpid() because it requires an int.
-Changing default flags for compiling on SSE. We can try removing these or add
-them to the config lines in Makefile.
-
-diff --git a/build/gyp.mozbuild b/build/gyp.mozbuild
---- a/build/gyp.mozbuild
-+++ b/build/gyp.mozbuild
-@@ -45,6 +45,7 @@
- 'moz_widget_toolkit_gonk': 0,
- 'moz_webrtc_omx': 0,
-
-+ 'use_official_google_api_keys': 0,
- # (for vp8) chromium sets to 0 also
- 'use_temporal_layers': 0,
-
-diff --git a/configure b/configure
---- a/configure
-+++ b/configure
-@@ -9650,8 +9650,8 @@
- CXXFLAGS="$CXXFLAGS -xlibmieee -xbuiltin=%all -features=tmplife,tmplrefstatic,extensions,no%except -norunpath -D__FUNCTION__=__func__ -template=no%extdef"
- LDFLAGS="-xildoff $LDFLAGS"
- MMX_FLAGS="-xarch=mmx -xO4"
-- SSE_FLAGS="-xarch=sse"
-- SSE2_FLAGS="-xarch=ssei2 -xO4"
-+ SSE_FLAGS="-xarch=sse -xO4"
-+ SSE2_FLAGS="-xarch=sse2 -xO4"
- if test -z "$CROSS_COMPILE" -a -f /usr/lib/ld/map.noexstk; then
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="-M /usr/lib/ld/map.noexstk $LDFLAGS"
-diff --git a/media/libsoundtouch/src/FIRFilter.cpp b/media/libsoundtouch/src/FIRFilter.cpp
---- a/media/libsoundtouch/src/FIRFilter.cpp
-+++ b/media/libsoundtouch/src/FIRFilter.cpp
-@@ -46,6 +46,10 @@
- #include "FIRFilter.h"
- #include "cpu_detect.h"
-
-+#ifdef __sun
-+#include <alloca.h>
-+#endif
-+
- using namespace soundtouch;
-
- /*****************************************************************************
-diff --git a/media/libsoundtouch/src/SoundTouch.cpp b/media/libsoundtouch/src/SoundTouch.cpp
---- a/media/libsoundtouch/src/SoundTouch.cpp
-+++ b/media/libsoundtouch/src/SoundTouch.cpp
-@@ -80,6 +80,10 @@
- #include "RateTransposer.h"
- #include "cpu_detect.h"
-
-+#ifdef __sun
-+#include <alloca.h>
-+#endif
-+
- using namespace soundtouch;
-
- /// test if two floating point numbers are equal
-diff --git a/media/webrtc/trunk/build/common.gypi b/media/webrtc/trunk/build/common.gypi
---- a/media/webrtc/trunk/build/common.gypi
-+++ b/media/webrtc/trunk/build/common.gypi
-@@ -917,11 +917,16 @@
- 'android_app_version_name%': 'Developer Build',
- 'android_app_version_code%': 0,
-
-- 'sas_dll_exists': '<!(<(PYTHON) <(DEPTH)/build/dir_exists.py <(sas_dll_path))',
-- 'wix_exists': '<!(<(PYTHON) <(DEPTH)/build/dir_exists.py <(wix_path))',
-+ 'conditions': [
-+ ['OS=="win"', {
-+ 'sas_dll_exists': '<!(<(PYTHON) <(DEPTH)/build/dir_exists.py <(sas_dll_path))',
-+ 'wix_exists': '<!(<(PYTHON) <(DEPTH)/build/dir_exists.py <(wix_path))',
-+ }],
-+ ],
-
- 'windows_sdk_default_path': '<(DEPTH)/third_party/platformsdk_win8/files',
- 'directx_sdk_default_path': '<(DEPTH)/third_party/directxsdk/files',
-+ 'windows_sdk_path%': 'C:/Program Files (x86)/Windows Kits/8.0',
-
- 'conditions': [
- ['"<!(<(PYTHON) <(DEPTH)/build/dir_exists.py <(windows_sdk_default_path))"=="True"', {
-diff --git a/memory/volatile/VolatileBufferFallback.cpp b/memory/volatile/VolatileBufferFallback.cpp
---- a/memory/volatile/VolatileBufferFallback.cpp
-+++ b/memory/volatile/VolatileBufferFallback.cpp
-@@ -7,7 +7,7 @@
- #include "mozilla/mozalloc.h"
-
- #ifdef MOZ_MEMORY
--int posix_memalign(void** memptr, size_t alignment, size_t size);
-+extern "C" int posix_memalign(void** memptr, size_t alignment, size_t size);
- #endif
-
- namespace mozilla {
-diff --git a/xpcom/base/nsStatusReporterManager.cpp b/xpcom/base/nsStatusReporterManager.cpp
---- a/xpcom/base/nsStatusReporterManager.cpp
-+++ b/xpcom/base/nsStatusReporterManager.cpp
-@@ -148,7 +148,7 @@
- nsresult rv;
-
- nsCString filename("status-reports-");
-- filename.AppendInt(getpid());
-+ filename.AppendInt((int)getpid());
- filename.Append('-');
- filename.AppendInt(number++);
- filename.AppendLiteral(".json");
--- a/components/desktop/thunderbird/patches/firefox-31-urlbar-sparc.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-For the font in the URL bar. Can try to send upstream.
-
-diff --git a/gfx/cairo/cairo/src/cairo-xlib-surface.c b/gfx/cairo/cairo/src/cairo-xlib-surface.c
---- a/gfx/cairo/cairo/src/cairo-xlib-surface.c
-+++ b/gfx/cairo/cairo/src/cairo-xlib-surface.c
-@@ -1310,7 +1310,11 @@
- int a, r, g, b;
-
- if (image_masks.bpp == 1)
-+#ifdef WORDS_BIGENDIAN
-+ in_pixel = !! (((uint8_t*)row)[x/8] & (1 << (7 - (x & 7))));
-+#else
- in_pixel = !! (((uint8_t*)row)[x/8] & (1 << (x & 7)));
-+#endif
- else if (image_masks.bpp <= 8)
- in_pixel = ((uint8_t*)row)[x];
- else if (image_masks.bpp <= 16)
--- a/components/desktop/thunderbird/patches/firefox-32-solaris_jemalloc_linkage.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-This patch makes it so jemalloc is not included in firefox. Not accepted by
-the upstream community.
-Put jemalloc inside libxul. Then need firefox to depend on libxul
-and build jemalloc library.
-Remove lines - do not include memory for every program
-Need to create/add our own versions of the functions malloc_usable, jemalloc_stats, etc.
-Remove mozalloc library
-Check if we have jemalloc; if not, skip it.
-Build libxul and use flags -Wl,-z,interpose, needed to build the library.
-
-diff --git a/config/jemalloc_solaris.map b/config/jemalloc_solaris.map
-new file mode 100644
---- /dev/null
-+++ b/config/jemalloc_solaris.map
-@@ -0,0 +1,12 @@
-+{
-+ global:
-+ calloc = NODIRECT;
-+ free = NODIRECT;
-+ jemalloc_stats = NODIRECT;
-+ malloc = NODIRECT;
-+ malloc_usable_size = NODIRECT;
-+ memalign = NODIRECT;
-+ posix_memalign = NODIRECT;
-+ realloc = NODIRECT;
-+ valloc = NODIRECT;
-+};
-diff --git a/storage/mozStorageService.cpp b/storage/mozStorageService.cpp
---- a/storage/mozStorageService.cpp
-+++ b/storage/mozStorageService.cpp
-@@ -514,9 +514,14 @@
- int rc;
-
- #ifdef MOZ_STORAGE_MEMORY
-- rc = ::sqlite3_config(SQLITE_CONFIG_MALLOC, &memMethods);
-- if (rc != SQLITE_OK)
-- return convertResultCode(rc);
-+ // in case other malloc library is PRELOAD-ed
-+ void *test_jemalloc = malloc(4);
-+ if (::moz_malloc_usable_size(test_jemalloc)) {
-+ rc = ::sqlite3_config(SQLITE_CONFIG_MALLOC, &memMethods);
-+ if (rc != SQLITE_OK)
-+ return convertResultCode(rc);
-+ }
-+ free(test_jemalloc);
- #endif
-
- // Explicitly initialize sqlite3. Although this is implicitly called by
-diff --git a/memory/jemalloc/src/include/jemalloc/internal/jemalloc_internal.h.in b/memory/jemalloc/src/include/jemalloc/internal/jemalloc_internal.h.in
---- a/memory/jemalloc/src/include/jemalloc/internal/jemalloc_internal.h.in
-+++ b/memory/jemalloc/src/include/jemalloc/internal/jemalloc_internal.h.in
-@@ -184,6 +184,9 @@ static const bool config_cache_oblivious
- #include "jemalloc/internal/jemalloc_internal_macros.h"
-
- /* Size class index type. */
-+#ifdef __sun
-+#define index_t je_index_t
-+#endif
- typedef unsigned szind_t;
-
- /*
---- a/memory/jemalloc/src/include/jemalloc/internal/jemalloc_internal.h.in 2015-09-15 13:37:17.326056000 +0800
-+++ b/memory/jemalloc/src/include/jemalloc/internal/jemalloc_internal.h.in 2015-09-15 13:37:51.959830000 +0800
-@@ -204,6 +204,9 @@
- # ifdef __alpha__
- # define LG_QUANTUM 4
- # endif
-+# ifdef __sparc__
-+# define LG_QUANTUM 4
-+# endif
- # ifdef __sparc64__
- # define LG_QUANTUM 4
- # endif
--- a/components/desktop/thunderbird/patches/firefox-33-ycbcr2.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-EMMS() is not in sparc.
-
-diff --git a/gfx/ycbcr/yuv_convert.cpp b/gfx/ycbcr/yuv_convert.cpp
---- a/gfx/ycbcr/yuv_convert.cpp
-+++ b/gfx/ycbcr/yuv_convert.cpp
-@@ -105,9 +105,11 @@
- }
- }
-
-+#ifdef ARCH_CPU_X86_FAMILY
- // MMX used for FastConvertYUVToRGB32Row requires emms instruction.
- if (has_sse)
- EMMS();
-+#endif
- }
-
- // C version does 8 at a time to mimic MMX code
-@@ -348,9 +350,12 @@
- #endif
- }
- }
-+
-+#ifdef ARCH_CPU_X86_FAMILY
- // MMX used for FastConvertYUVToRGB32Row and FilterRows requires emms.
- if (has_mmx)
- EMMS();
-+#endif
- }
-
- } // namespace gfx
--- a/components/desktop/thunderbird/patches/firefox-34-lz4-restrict-keyword.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-Correctly recognize the "restrict" keyword for the lz4.c file included in
-Compression.cpp
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57025
-
-diff --git a/mfbt/lz4.c b/mfbt/lz4.c
---- a/mfbt/lz4.c
-+++ b/mfbt/lz4.c
-@@ -104,7 +104,7 @@
- /**************************************
- Compiler Options
- **************************************/
--#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */
-+#if defined(__STDC_VERSION__) && !defined(__cplusplus) && (__STDC_VERSION__ >= 199901L) /* C99 */
- /* "restrict" is a known keyword */
- #else
- # define restrict /* Disable restrict */
--- a/components/desktop/thunderbird/patches/firefox-35-mozalloc.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-Correctly define malloc_usable_size
-
-Get correct abort() function definition for Solaris.
-
-diff --git a/memory/mozalloc/mozalloc.cpp b/memory/mozalloc/mozalloc.cpp
---- a/memory/mozalloc/mozalloc.cpp
-+++ b/memory/mozalloc/mozalloc.cpp
-@@ -208,6 +208,8 @@
- #endif // if defined(HAVE_VALLOC)
-
- #ifndef MOZ_STATIC_RUNTIME
-+extern "C" size_t malloc_usable_size(const void *ptr);
-+
- size_t
- moz_malloc_usable_size(void *ptr)
- {
-diff --git a/memory/mozalloc/mozalloc_abort.cpp b/memory/mozalloc/mozalloc_abort.cpp
---- a/memory/mozalloc/mozalloc_abort.cpp
-+++ b/memory/mozalloc/mozalloc_abort.cpp
-@@ -63,7 +63,11 @@
- //
- // That segmentation fault will be interpreted as another bug by ASan and as a
- // result, ASan will just exit(1) instead of aborting.
-+#if defined(SOLARIS)
-+void std::abort(void)
-+#else
- void abort(void)
-+#endif
- {
- #ifdef MOZ_WIDGET_ANDROID
- char msg[64] = {};
--- a/components/desktop/thunderbird/patches/firefox-36-xpopen.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-Prevent:
-error: #error "Compiler or options invalid for pre-UNIX 03 X/Open applications and pre-2001 POSIX applications
-
-diff --git a/configure b/configure
---- a/configure
-+++ b/configure
-@@ -9759,6 +9759,8 @@
- cross_compiling=$ac_cv_prog_cc_cross
-
- else
-+ CFLAGS="$CFLAGS -D_XPG6 -D__EXTENSIONS__"
-+ CXXFLAGS="$CXXFLAGS -D_XPG6 -D__EXTENSIONS__"
- LDFLAGS="$LDFLAGS -Wl,-z,ignore -Wl,-R,'\$\$ORIGIN:\$\$ORIGIN/..' -Wl,-z,lazyload -Wl,-z,combreloc -Wl,-z,muldefs"
- LIBS="-lc $LIBS"
- MKSHLIB_FORCE_ALL='-Wl,-z -Wl,allextract'
--- a/components/desktop/thunderbird/patches/firefox-37-ipc.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1779 +0,0 @@
-There are a lot of separate ipcv2 patches collected here in one file.
-Some of them are Studio specific and can hopefully be removed.
-
-In more detail:
-
-First part is for studio, we may be able to remove.
-Need to keep the if defined(OS_LINUX)... parts, should try to send upstream.
-Using evpoll/devpoll instead of epoll may be Studio specific.
-asm_volatile changes may also be studio specific.
-
-For Solaris, we have no proc/self/exe location so we get the name of the
-process some other way. Should be able to send this part upstream.
-
-Patch to use FTS (tool for traversing tool hierarchies). We have these
-functions but they're not in libraries for C. This part is included in firefox
-40.
-
-ENABLE_XSS_SUPPORT links XSS libraries; needs further investigation.
-
-In Solaris, the queue can be too long so we have it read 32 bits only (?) for
-the wakeup_pip_read function.
-
-DCHECK(std::find...) may be because we couldn't compile it otherwise. Needs
-namespace added.
-
-We can remove the part for wstring because it's for studio.
-
-Solaris specific change for adding definition of thr_self.
-
-Differing memory for munmap((caddr_t)... patch
-
-We don't have timestruct defined in solaris (#ifndef SOLARIS...timstruct...)
-
-event2/event-config.h: Adds a new file so that libevent will compile on Solaris.In the .mozconfig file, we are using system libevent, so this shouldn't be necessary.
-
-IPC_RMID -- shared memory; on solaris, need to detach the shared memory first. So we move that segment of code up. If we detach the memory in Solaris, we cannot do a new attach.
-
-Add flags for Studio compiler. (CXXFLAGS)
-
-extern *C* int madvise(...) not defined , so we need to define it.
-
-diff --git a/configure b/configure
---- a/configure
-+++ b/configure
-@@ -9647,7 +9647,7 @@
- EOF
-
- CFLAGS="$CFLAGS -xlibmieee -xstrconst -xbuiltin=%all -D__FUNCTION__=__func__"
-- CXXFLAGS="$CXXFLAGS -xlibmieee -xbuiltin=%all -features=tmplife,tmplrefstatic,extensions,no%except -norunpath -D__FUNCTION__=__func__ -template=no%extdef"
-+ CXXFLAGS="$CXXFLAGS -xlibmieee -xbuiltin=%all -features=tmplife,tmplrefstatic,extensions,no%except -norunpath -D__FUNCTION__=__func__ -template=no%extdef -D_XOPEN_SOURCE=500 -D__EXTENSIONS__"
- LDFLAGS="-xildoff $LDFLAGS"
- MMX_FLAGS="-xarch=mmx -xO4"
- SSE_FLAGS="-xarch=sse -xO4"
-diff --git a/dom/plugins/ipc/PluginMessageUtils.cpp b/dom/plugins/ipc/PluginMessageUtils.cpp
---- a/dom/plugins/ipc/PluginMessageUtils.cpp
-+++ b/dom/plugins/ipc/PluginMessageUtils.cpp
-@@ -85,7 +85,7 @@
- }
- }
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_SOLARIS)
- static string
- ReplaceAll(const string& haystack, const string& needle, const string& with)
- {
-@@ -104,7 +104,7 @@
- string
- MungePluginDsoPath(const string& path)
- {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_SOLARIS)
- // https://bugzilla.mozilla.org/show_bug.cgi?id=519601
- return ReplaceAll(path, "netscape", "netsc@pe");
- #else
-@@ -115,7 +115,7 @@
- string
- UnmungePluginDsoPath(const string& munged)
- {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_SOLARIS)
- return ReplaceAll(munged, "netsc@pe", "netscape");
- #else
- return munged;
-diff --git a/dom/plugins/ipc/PluginModuleChild.cpp b/dom/plugins/ipc/PluginModuleChild.cpp
---- a/dom/plugins/ipc/PluginModuleChild.cpp
-+++ b/dom/plugins/ipc/PluginModuleChild.cpp
-@@ -320,7 +320,7 @@
-
- // TODO: use PluginPRLibrary here
-
--#if defined(OS_LINUX) || defined(OS_BSD)
-+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
- mShutdownFunc =
- (NP_PLUGINSHUTDOWN) PR_FindFunctionSymbol(mLibrary, "NP_Shutdown");
-
-@@ -351,9 +351,11 @@
- }
-
- #if defined(MOZ_WIDGET_GTK)
-+extern "C" {
- typedef void (*GObjectDisposeFn)(GObject*);
- typedef gboolean (*GtkWidgetScrollEventFn)(GtkWidget*, GdkEventScroll*);
- typedef void (*GtkPlugEmbeddedFn)(GtkPlug*);
-+}
-
- static GObjectDisposeFn real_gtk_plug_dispose;
- static GtkPlugEmbeddedFn real_gtk_plug_embedded;
-@@ -1882,7 +1884,7 @@
- AssertPluginThread();
- MOZ_ASSERT(mIsChrome);
-
--#if defined(OS_LINUX) || defined(OS_BSD)
-+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
- return true;
- #elif defined(OS_WIN) || defined(OS_MACOSX)
- *_retval = mGetEntryPointsFunc(&mFunctions);
-@@ -1927,7 +1929,7 @@
- #endif
-
- NPError result;
--#if defined(OS_LINUX) || defined(OS_BSD)
-+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
- result = mInitializeFunc(&sBrowserFuncs, &mFunctions);
- #elif defined(OS_WIN) || defined(OS_MACOSX)
- result = mInitializeFunc(&sBrowserFuncs);
-diff --git a/dom/plugins/ipc/PluginModuleChild.h b/dom/plugins/ipc/PluginModuleChild.h
---- a/dom/plugins/ipc/PluginModuleChild.h
-+++ b/dom/plugins/ipc/PluginModuleChild.h
-@@ -328,7 +328,7 @@
-
- // we get this from the plugin
- NP_PLUGINSHUTDOWN mShutdownFunc;
--#if defined(OS_LINUX) || defined(OS_BSD)
-+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
- NP_PLUGINUNIXINIT mInitializeFunc;
- #elif defined(OS_WIN) || defined(OS_MACOSX)
- NP_PLUGININIT mInitializeFunc;
-diff --git a/ipc/chromium/chromium-config.mozbuild b/ipc/chromium/chromium-config.mozbuild
---- a/ipc/chromium/chromium-config.mozbuild
-+++ b/ipc/chromium/chromium-config.mozbuild
-@@ -45,6 +45,9 @@
- if CONFIG['OS_ARCH'] == 'Darwin':
- DEFINES['OS_MACOSX'] = 1
-
-+ elif CONFIG['OS_ARCH'] == 'SunOS':
-+ DEFINES['OS_SOLARIS'] = 1
-+
- elif CONFIG['OS_ARCH'] == 'DragonFly':
- DEFINES.update({
- 'OS_DRAGONFLY': 1,
-diff --git a/ipc/chromium/src/base/atomicops_internals_x86_gcc.cc b/ipc/chromium/src/base/atomicops_internals_x86_gcc.cc
---- a/ipc/chromium/src/base/atomicops_internals_x86_gcc.cc
-+++ b/ipc/chromium/src/base/atomicops_internals_x86_gcc.cc
-@@ -19,13 +19,13 @@
- // Inline cpuid instruction. In PIC compilations, %ebx contains the address
- // of the global offset table. To avoid breaking such executables, this code
- // must preserve that register's value across cpuid instructions.
--#if defined(__i386__)
-+#if defined(__i386__) || defined (__i386)
- #define cpuid(a, b, c, d, inp) \
- asm ("mov %%ebx, %%edi\n" \
- "cpuid\n" \
- "xchg %%edi, %%ebx\n" \
- : "=a" (a), "=D" (b), "=c" (c), "=d" (d) : "a" (inp))
--#elif defined (__x86_64__)
-+#elif defined (__x86_64__) || defined(__x86_64)
- #define cpuid(a, b, c, d, inp) \
- asm ("mov %%rbx, %%rdi\n" \
- "cpuid\n" \
-diff --git a/ipc/chromium/src/base/atomicops_internals_x86_gcc.h b/ipc/chromium/src/base/atomicops_internals_x86_gcc.h
---- a/ipc/chromium/src/base/atomicops_internals_x86_gcc.h
-+++ b/ipc/chromium/src/base/atomicops_internals_x86_gcc.h
-@@ -29,18 +29,18 @@
- Atomic32 old_value,
- Atomic32 new_value) {
- Atomic32 prev;
-- __asm__ __volatile__("lock; cmpxchgl %1,%2"
-+ __asm__ __volatile__("lock; cmpxchgl %1,(%2)"
- : "=a" (prev)
-- : "q" (new_value), "m" (*ptr), "0" (old_value)
-+ : "q" (new_value), "r" (ptr), "0" (old_value)
- : "memory");
- return prev;
- }
-
- inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
- Atomic32 new_value) {
-- __asm__ __volatile__("xchgl %1,%0" // The lock prefix is implicit for xchg.
-+ __asm__ __volatile__("xchgl (%1),%0" // The lock prefix is implicit for xchg.
- : "=r" (new_value)
-- : "m" (*ptr), "0" (new_value)
-+ : "r" (ptr), "0" (new_value)
- : "memory");
- return new_value; // Now it's the previous value.
- }
-@@ -48,8 +48,8 @@
- inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
- Atomic32 increment) {
- Atomic32 temp = increment;
-- __asm__ __volatile__("lock; xaddl %0,%1"
-- : "+r" (temp), "+m" (*ptr)
-+ __asm__ __volatile__("lock; xaddl %0,(%1)"
-+ : "+r" (temp), "+r" (ptr)
- : : "memory");
- // temp now holds the old value of *ptr
- return temp + increment;
-@@ -58,8 +58,8 @@
- inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
- Atomic32 increment) {
- Atomic32 temp = increment;
-- __asm__ __volatile__("lock; xaddl %0,%1"
-- : "+r" (temp), "+m" (*ptr)
-+ __asm__ __volatile__("lock; xaddl %0,(%1)"
-+ : "+r" (temp), "+r" (ptr)
- : : "memory");
- // temp now holds the old value of *ptr
- if (AtomicOps_Internalx86CPUFeatures.has_amd_lock_mb_bug) {
-@@ -153,18 +153,18 @@
- Atomic64 old_value,
- Atomic64 new_value) {
- Atomic64 prev;
-- __asm__ __volatile__("lock; cmpxchgq %1,%2"
-+ __asm__ __volatile__("lock; cmpxchgq %1,(%2)"
- : "=a" (prev)
-- : "q" (new_value), "m" (*ptr), "0" (old_value)
-+ : "q" (new_value), "r" (ptr), "0" (old_value)
- : "memory");
- return prev;
- }
-
- inline Atomic64 NoBarrier_AtomicExchange(volatile Atomic64* ptr,
- Atomic64 new_value) {
-- __asm__ __volatile__("xchgq %1,%0" // The lock prefix is implicit for xchg.
-+ __asm__ __volatile__("xchgq (%1),%0" // The lock prefix is implicit for xchg.
- : "=r" (new_value)
-- : "m" (*ptr), "0" (new_value)
-+ : "r" (ptr), "0" (new_value)
- : "memory");
- return new_value; // Now it's the previous value.
- }
-@@ -172,8 +172,8 @@
- inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr,
- Atomic64 increment) {
- Atomic64 temp = increment;
-- __asm__ __volatile__("lock; xaddq %0,%1"
-- : "+r" (temp), "+m" (*ptr)
-+ __asm__ __volatile__("lock; xaddq %0,(%1)"
-+ : "+r" (temp), "+r" (ptr)
- : : "memory");
- // temp now contains the previous value of *ptr
- return temp + increment;
-@@ -182,8 +182,8 @@
- inline Atomic64 Barrier_AtomicIncrement(volatile Atomic64* ptr,
- Atomic64 increment) {
- Atomic64 temp = increment;
-- __asm__ __volatile__("lock; xaddq %0,%1"
-- : "+r" (temp), "+m" (*ptr)
-+ __asm__ __volatile__("lock; xaddq %0,(%1)"
-+ : "+r" (temp), "+r" (ptr)
- : : "memory");
- // temp now contains the previous value of *ptr
- if (AtomicOps_Internalx86CPUFeatures.has_amd_lock_mb_bug) {
-diff --git a/ipc/chromium/src/base/file_util.cc b/ipc/chromium/src/base/file_util.cc
---- a/ipc/chromium/src/base/file_util.cc
-+++ b/ipc/chromium/src/base/file_util.cc
-@@ -245,4 +245,25 @@
- int WriteFile(const std::wstring& filename, const char* data, int size) {
- return WriteFile(FilePath::FromWStringHack(filename), data, size);
- }
-+
-+#ifdef OS_SOLARIS
-+
-+bool IsDot(const FilePath& path) {
-+ return FILE_PATH_LITERAL(".") == path.BaseName().value();
-+}
-+
-+bool IsDotDot(const FilePath& path) {
-+ return FILE_PATH_LITERAL("..") == path.BaseName().value();
-+}
-+
-+///////////////////////////////////////////////
-+// FileEnumerator
-+//
-+// Note: the main logic is in file_util_<platform>.cc
-+
-+bool FileEnumerator::ShouldSkip(const FilePath& path) {
-+ FilePath::StringType basename = path.BaseName().value();
-+ return IsDot(path) || (IsDotDot(path) && !(INCLUDE_DOT_DOT & file_type_));
-+}
-+#endif
- } // namespace
-diff --git a/ipc/chromium/src/base/file_util.h b/ipc/chromium/src/base/file_util.h
---- a/ipc/chromium/src/base/file_util.h
-+++ b/ipc/chromium/src/base/file_util.h
-@@ -12,7 +12,7 @@
-
- #if defined(OS_WIN)
- #include <windows.h>
--#elif defined(ANDROID)
-+#elif defined(ANDROID) || defined(OS_SOLARIS)
- #include <sys/stat.h>
- #elif defined(OS_POSIX)
- #include <sys/types.h>
-@@ -240,6 +240,103 @@
- // Deprecated temporary compatibility function.
- bool SetCurrentDirectory(const std::wstring& current_directory);
-
-+#ifdef OS_SOLARIS
-+// A class for enumerating the files in a provided path. The order of the
-+// results is not guaranteed.
-+//
-+// DO NOT USE FROM THE MAIN THREAD of your application unless it is a test
-+// program where latency does not matter. This class is blocking.
-+class FileEnumerator {
-+ public:
-+ typedef struct {
-+ struct stat stat;
-+ std::string filename;
-+ } FindInfo;
-+
-+ enum FILE_TYPE {
-+ FILES = 1 << 0,
-+ DIRECTORIES = 1 << 1,
-+ INCLUDE_DOT_DOT = 1 << 2,
-+ SHOW_SYM_LINKS = 1 << 4,
-+ };
-+
-+ // |root_path| is the starting directory to search for. It may or may not end
-+ // in a slash.
-+ //
-+ // If |recursive| is true, this will enumerate all matches in any
-+ // subdirectories matched as well. It does a breadth-first search, so all
-+ // files in one directory will be returned before any files in a
-+ // subdirectory.
-+ //
-+ // |file_type| specifies whether the enumerator should match files,
-+ // directories, or both.
-+ //
-+ // |pattern| is an optional pattern for which files to match. This
-+ // works like shell globbing. For example, "*.txt" or "Foo???.doc".
-+ // However, be careful in specifying patterns that aren't cross platform
-+ // since the underlying code uses OS-specific matching routines. In general,
-+ // Windows matching is less featureful than others, so test there first.
-+ // If unspecified, this will match all files.
-+ // NOTE: the pattern only matches the contents of root_path, not files in
-+ // recursive subdirectories.
-+ // TODO(erikkay): Fix the pattern matching to work at all levels.
-+ FileEnumerator(const FilePath& root_path,
-+ bool recursive,
-+ FileEnumerator::FILE_TYPE file_type);
-+ FileEnumerator(const FilePath& root_path,
-+ bool recursive,
-+ FileEnumerator::FILE_TYPE file_type,
-+ const FilePath::StringType& pattern);
-+ ~FileEnumerator();
-+
-+ // Returns an empty string if there are no more results.
-+ FilePath Next();
-+
-+ // Write the file info into |info|.
-+ void GetFindInfo(FindInfo* info);
-+
-+ // Looks inside a FindInfo and determines if it's a directory.
-+ static bool IsDirectory(const FindInfo& info);
-+
-+ static FilePath GetFilename(const FindInfo& find_info);
-+
-+ private:
-+ // Returns true if the given path should be skipped in enumeration.
-+ bool ShouldSkip(const FilePath& path);
-+
-+
-+ typedef struct {
-+ FilePath filename;
-+ struct stat stat;
-+ } DirectoryEntryInfo;
-+
-+ // Read the filenames in source into the vector of DirectoryEntryInfo's
-+ static bool ReadDirectory(std::vector<DirectoryEntryInfo>* entries,
-+ const FilePath& source, bool show_links);
-+
-+ // The files in the current directory
-+ std::vector<DirectoryEntryInfo> directory_entries_;
-+
-+ // The next entry to use from the directory_entries_ vector
-+ size_t current_directory_entry_;
-+
-+ FilePath root_path_;
-+ bool recursive_;
-+ FILE_TYPE file_type_;
-+ FilePath::StringType pattern_; // Empty when we want to find everything.
-+
-+ // Set to true when there is a find operation open. This way, we can lazily
-+ // start the operations when the caller calls Next().
-+ bool is_in_find_op_;
-+
-+ // A stack that keeps track of which subdirectories we still need to
-+ // enumerate in the breadth-first search.
-+ std::stack<FilePath> pending_paths_;
-+
-+ DISALLOW_COPY_AND_ASSIGN(FileEnumerator);
-+};
-+#endif
-+
- } // namespace file_util
-
- #endif // BASE_FILE_UTIL_H_
-diff --git a/ipc/chromium/src/base/file_util_posix.cc b/ipc/chromium/src/base/file_util_posix.cc
---- a/ipc/chromium/src/base/file_util_posix.cc
-+++ b/ipc/chromium/src/base/file_util_posix.cc
-@@ -446,7 +555,7 @@
- }
-
- bool GetShmemTempDir(FilePath* path) {
--#if defined(OS_LINUX) && !defined(ANDROID)
-+#if defined(OS_LINUX) && !defined(ANDROID) && !defined(OS_SOLARIS)
- *path = FilePath("/dev/shm");
- return true;
- #else
-@@ -501,4 +610,144 @@
- }
- #endif // !defined(OS_MACOSX)
-
-+#ifdef OS_SOLARIS
-+///////////////////////////////////////////////
-+// FileEnumerator
-+
-+FileEnumerator::FileEnumerator(const FilePath& root_path,
-+ bool recursive,
-+ FileEnumerator::FILE_TYPE file_type)
-+ : current_directory_entry_(0),
-+ root_path_(root_path),
-+ recursive_(recursive),
-+ file_type_(file_type),
-+ is_in_find_op_(false) {
-+ // INCLUDE_DOT_DOT must not be specified if recursive.
-+ DCHECK(!(recursive && (INCLUDE_DOT_DOT & file_type_)));
-+ pending_paths_.push(root_path);
-+}
-+
-+FileEnumerator::FileEnumerator(const FilePath& root_path,
-+ bool recursive,
-+ FileEnumerator::FILE_TYPE file_type,
-+ const FilePath::StringType& pattern)
-+ : current_directory_entry_(0),
-+ root_path_(root_path),
-+ recursive_(recursive),
-+ file_type_(file_type),
-+ pattern_(root_path.Append(pattern).value()),
-+ is_in_find_op_(false) {
-+ // INCLUDE_DOT_DOT must not be specified if recursive.
-+ DCHECK(!(recursive && (INCLUDE_DOT_DOT & file_type_)));
-+ // The Windows version of this code appends the pattern to the root_path,
-+ // potentially only matching against items in the top-most directory.
-+ // Do the same here.
-+ if (pattern.size() == 0)
-+ pattern_ = FilePath::StringType();
-+ pending_paths_.push(root_path);
-+}
-+
-+FileEnumerator::~FileEnumerator() {
-+}
-+
-+void FileEnumerator::GetFindInfo(FindInfo* info) {
-+ DCHECK(info);
-+
-+ if (current_directory_entry_ >= directory_entries_.size())
-+ return;
-+
-+ DirectoryEntryInfo* cur_entry = &directory_entries_[current_directory_entry_];
-+ memcpy(&(info->stat), &(cur_entry->stat), sizeof(info->stat));
-+ info->filename.assign(cur_entry->filename.value());
-+}
-+
-+bool FileEnumerator::IsDirectory(const FindInfo& info) {
-+ return S_ISDIR(info.stat.st_mode);
-+}
-+
-+// static
-+FilePath FileEnumerator::GetFilename(const FindInfo& find_info) {
-+ return FilePath(find_info.filename);
-+}
-+
-+FilePath FileEnumerator::Next() {
-+ ++current_directory_entry_;
-+
-+ // While we've exhausted the entries in the current directory, do the next
-+ while (current_directory_entry_ >= directory_entries_.size()) {
-+ if (pending_paths_.empty())
-+ return FilePath();
-+
-+ root_path_ = pending_paths_.top();
-+ root_path_ = root_path_.StripTrailingSeparators();
-+ pending_paths_.pop();
-+
-+ std::vector<DirectoryEntryInfo> entries;
-+ if (!ReadDirectory(&entries, root_path_, file_type_ & SHOW_SYM_LINKS))
-+ continue;
-+
-+ directory_entries_.clear();
-+ current_directory_entry_ = 0;
-+ for (std::vector<DirectoryEntryInfo>::const_iterator
-+ i = entries.begin(); i != entries.end(); ++i) {
-+ FilePath full_path = root_path_.Append(i->filename);
-+ if (ShouldSkip(full_path))
-+ continue;
-+
-+ if (pattern_.size() &&
-+ fnmatch(pattern_.c_str(), full_path.value().c_str(), FNM_NOESCAPE))
-+ continue;
-+
-+ if (recursive_ && S_ISDIR(i->stat.st_mode))
-+ pending_paths_.push(full_path);
-+
-+ if ((S_ISDIR(i->stat.st_mode) && (file_type_ & DIRECTORIES)) ||
-+ (!S_ISDIR(i->stat.st_mode) && (file_type_ & FILES)))
-+ directory_entries_.push_back(*i);
-+ }
-+ }
-+
-+ return root_path_.Append(directory_entries_[current_directory_entry_
-+ ].filename);
-+}
-+
-+bool FileEnumerator::ReadDirectory(std::vector<DirectoryEntryInfo>* entries,
-+ const FilePath& source, bool show_links) {
-+
-+ DIR* dir = opendir(source.value().c_str());
-+ if (!dir)
-+ return false;
-+ struct {
-+ dirent dent_buffer;
-+ char chars[MAXNAMLEN];
-+ } dent_buf;
-+ struct dirent* dent;
-+
-+ while (readdir_r(dir, (dirent *)&dent_buf, &dent) == 0 && dent) {
-+ DirectoryEntryInfo info;
-+ info.filename = FilePath(dent->d_name);
-+
-+ FilePath full_name = source.Append(dent->d_name);
-+ int ret;
-+ if (show_links)
-+ ret = lstat(full_name.value().c_str(), &info.stat);
-+ else
-+ ret = stat(full_name.value().c_str(), &info.stat);
-+ if (ret < 0) {
-+ // Print the stat() error message unless it was ENOENT and we're
-+ // following symlinks.
-+ if (!(errno == ENOENT && !show_links)) {
-+ CHROMIUM_LOG(ERROR) << "Couldn't stat "
-+ << source.Append(dent->d_name).value();
-+ }
-+ memset(&info.stat, 0, sizeof(info.stat));
-+ }
-+ entries->push_back(info);
-+ }
-+
-+ closedir(dir);
-+ return true;
-+}
-+#endif
-+
- } // namespace file_util
-diff --git a/ipc/chromium/src/base/idle_timer.cc b/ipc/chromium/src/base/idle_timer.cc
---- a/ipc/chromium/src/base/idle_timer.cc
-+++ b/ipc/chromium/src/base/idle_timer.cc
-@@ -7,13 +7,13 @@
- // We may not want to port idle_timer to Linux, but we have implemented it
- // anyway. Define this to 1 to enable the Linux idle timer and then add the
- // libs that need to be linked (Xss).
--#define ENABLE_XSS_SUPPORT 0
-+#define ENABLE_XSS_SUPPORT 1
-
- #if defined(OS_MACOSX)
- #include <ApplicationServices/ApplicationServices.h>
- #endif
-
--#if defined(OS_LINUX) && ENABLE_XSS_SUPPORT
-+#if (defined(OS_LINUX) || defined(OS_SOLARIS)) && ENABLE_XSS_SUPPORT
- // We may not want to port idle_timer to Linux, but we have implemented it
- // anyway. Remove the 0 above if we want it.
- #include <gdk/gdkx.h>
-@@ -53,7 +53,7 @@
- kCGAnyInputEventType) * 1000.0;
- return true;
- }
--#elif defined(OS_LINUX) && ENABLE_XSS_SUPPORT
-+#elif (defined(OS_LINUX) || defined(OS_SOLARIS)) && ENABLE_XSS_SUPPORT
- class IdleState {
- public:
- IdleState() {
-diff --git a/ipc/chromium/src/base/message_loop.cc b/ipc/chromium/src/base/message_loop.cc
---- a/ipc/chromium/src/base/message_loop.cc
-+++ b/ipc/chromium/src/base/message_loop.cc
-@@ -19,7 +19,7 @@
- #if defined(OS_POSIX)
- #include "base/message_pump_libevent.h"
- #endif
--#if defined(OS_LINUX) || defined(OS_BSD)
-+#if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
- #if defined(MOZ_WIDGET_GTK)
- #include "base/message_pump_glib.h"
- #endif
-@@ -144,9 +144,9 @@
- if (type_ == TYPE_UI) {
- #if defined(OS_MACOSX)
- pump_ = base::MessagePumpMac::Create();
--#elif defined(OS_LINUX) || defined(OS_BSD)
-+#elif defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
- pump_ = new base::MessagePumpForUI();
--#endif // OS_LINUX
-+#endif // OS_LINUX || OS_SOLARIS
- } else if (type_ == TYPE_IO) {
- pump_ = new base::MessagePumpLibevent();
- } else {
-diff --git a/ipc/chromium/src/base/message_pump_glib.cc b/ipc/chromium/src/base/message_pump_glib.cc
---- a/ipc/chromium/src/base/message_pump_glib.cc
-+++ b/ipc/chromium/src/base/message_pump_glib.cc
-@@ -128,6 +128,12 @@
- // Create our wakeup pipe, which is used to flag when work was scheduled.
- int fds[2];
- CHECK(pipe(fds) == 0);
-+
-+ int flags = fcntl(fds[0], F_GETFL, 0);
-+ if (flags == -1)
-+ flags = 0;
-+ fcntl(fds[0], F_SETFL, flags | O_NDELAY);
-+
- wakeup_pipe_read_ = fds[0];
- wakeup_pipe_write_ = fds[1];
- wakeup_gpollfd_->fd = wakeup_pipe_read_;
-@@ -234,10 +240,9 @@
- // are only signaled when the queue went from empty to non-empty. The glib
- // poll will tell us whether there was data, so this read shouldn't block.
- if (wakeup_gpollfd_->revents & G_IO_IN) {
-- char msg;
-- if (HANDLE_EINTR(read(wakeup_pipe_read_, &msg, 1)) != 1 || msg != '!') {
-- NOTREACHED() << "Error reading from the wakeup pipe.";
-- }
-+ char buf[32];
-+ while (HANDLE_EINTR(read(wakeup_pipe_read_, &buf, 32)));
-+
- // Since we ate the message, we need to record that we have more work,
- // because HandleCheck() may be called without HandleDispatch being called
- // afterwards.
-@@ -301,6 +306,9 @@
- // variables as we would then need locks all over. This ensures that if
- // we are sleeping in a poll that we will wake up.
- char msg = '!';
-+ char buf[32];
-+ while (HANDLE_EINTR(read(wakeup_pipe_read_, &buf, 32)));
-+
- if (HANDLE_EINTR(write(wakeup_pipe_write_, &msg, 1)) != 1) {
- NOTREACHED() << "Could not write to the UI message loop wakeup pipe!";
- }
-diff --git a/ipc/chromium/src/base/message_pump_libevent.cc b/ipc/chromium/src/base/message_pump_libevent.cc
---- a/ipc/chromium/src/base/message_pump_libevent.cc
-+++ b/ipc/chromium/src/base/message_pump_libevent.cc
-@@ -6,6 +6,10 @@
-
- #include <errno.h>
- #include <fcntl.h>
-+#if defined(OS_SOLARIS)
-+#include <unistd.h>
-+#include <sys/stat.h>
-+#endif
- #if defined(ANDROID) || defined(OS_POSIX)
- #include <unistd.h>
- #endif
-diff --git a/ipc/chromium/src/base/observer_list.h b/ipc/chromium/src/base/observer_list.h
---- a/ipc/chromium/src/base/observer_list.h
-+++ b/ipc/chromium/src/base/observer_list.h
-@@ -88,7 +88,7 @@
-
- // Add an observer to the list.
- void AddObserver(ObserverType* obs) {
-- DCHECK(find(observers_.begin(), observers_.end(), obs) == observers_.end())
-+ DCHECK(std::find(observers_.begin(), observers_.end(), obs) == observers_.end())
- << "Observers can only be added once!";
- observers_.push_back(obs);
- }
-diff --git a/ipc/chromium/src/base/platform_thread.h b/ipc/chromium/src/base/platform_thread.h
---- a/ipc/chromium/src/base/platform_thread.h
-+++ b/ipc/chromium/src/base/platform_thread.h
-@@ -22,7 +22,7 @@
- #elif defined(OS_POSIX)
- #include <pthread.h>
- typedef pthread_t PlatformThreadHandle;
--#if defined(OS_LINUX) || defined(OS_OPENBSD) || defined(__GLIBC__)
-+#if defined(OS_LINUX) || defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(__GLIBC__)
- #include <unistd.h>
- typedef pid_t PlatformThreadId;
- #elif defined(OS_BSD)
-diff --git a/ipc/chromium/src/base/platform_thread_posix.cc b/ipc/chromium/src/base/platform_thread_posix.cc
---- a/ipc/chromium/src/base/platform_thread_posix.cc
-+++ b/ipc/chromium/src/base/platform_thread_posix.cc
-@@ -27,6 +27,12 @@
- #include <pthread_np.h>
- #endif
-
-+#if defined(OS_SOLARIS)
-+#include <sys/syscall.h>
-+#include <unistd.h>
-+#include <thread.h>
-+#endif
-+
- #if defined(OS_MACOSX)
- namespace base {
- void InitThreading();
-@@ -54,6 +60,8 @@
- #else
- return syscall(__NR_gettid);
- #endif
-+#elif defined(OS_SOLARIS)
-+ return thr_self();
- #elif defined(OS_OPENBSD) || defined(__GLIBC__)
- return (intptr_t) (pthread_self());
- #elif defined(OS_NETBSD)
-@@ -96,6 +104,7 @@
-
- // static
- void PlatformThread::SetName(const char* name) {
-+#ifndef OS_SOLARIS
- // On linux we can get the thread names to show up in the debugger by setting
- // the process name for the LWP. We don't want to do this for the main
- // thread because that would rename the process, causing tools like killall
-@@ -116,6 +125,7 @@
- pthread_set_name_np(pthread_self(), name);
- #else
- #endif
-+#endif // !OS_SOLARIS
- }
- #endif // !OS_MACOSX
-
-diff --git a/ipc/chromium/src/base/port.h b/ipc/chromium/src/base/port.h
---- a/ipc/chromium/src/base/port.h
-+++ b/ipc/chromium/src/base/port.h
-@@ -56,7 +56,7 @@
- // Define an OS-neutral wrapper for shared library entry points
- #if defined(OS_WIN)
- #define API_CALL __stdcall
--#elif defined(OS_LINUX) || defined(OS_MACOSX)
-+#elif defined(OS_LINUX) || defined(OS_SOLARIS) || defined(OS_MACOSX)
- #define API_CALL
- #endif
-
-diff --git a/ipc/chromium/src/base/process_util.h b/ipc/chromium/src/base/process_util.h
---- a/ipc/chromium/src/base/process_util.h
-+++ b/ipc/chromium/src/base/process_util.h
-@@ -25,6 +25,10 @@
- #include <mach/mach.h>
- #endif
-
-+#if defined(OS_SOLARIS)
-+#define NAME_MAX 14
-+#endif
-+
- #include <map>
- #include <string>
- #include <vector>
-@@ -86,8 +86,8 @@
- currentArchitecture = base::PROCESS_ARCH_PPC;
- #elif defined(ARCH_CPU_ARMEL)
- currentArchitecture = base::PROCESS_ARCH_ARM;
--#elif defined(ARCH_CPU_MIPS)
-+#elif defined(ARCH_CPU_MIPS) || defined(ARCH_CPU_SPARC)
- currentArchitecture = base::PROCESS_ARCH_MIPS;
- #endif
- return currentArchitecture;
- }
-diff --git a/ipc/chromium/src/base/process_util_posix.cc b/ipc/chromium/src/base/process_util_posix.cc
---- a/ipc/chromium/src/base/process_util_posix.cc
-+++ b/ipc/chromium/src/base/process_util_posix.cc
-@@ -116,7 +116,7 @@
- #if defined(ANDROID)
- static const rlim_t kSystemDefaultMaxFds = 1024;
- static const char kFDDir[] = "/proc/self/fd";
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_SOLARIS)
- static const rlim_t kSystemDefaultMaxFds = 8192;
- static const char kFDDir[] = "/proc/self/fd";
- #elif defined(OS_MACOSX)
-@@ -208,7 +208,7 @@
- // TODO(agl): Remove this function. It's fundamentally broken for multithreaded
- // apps.
- void SetAllFDsToCloseOnExec() {
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_SOLARIS)
- const char fd_dir[] = "/proc/self/fd";
- #elif defined(OS_MACOSX) || defined(OS_BSD)
- const char fd_dir[] = "/dev/fd";
-diff --git a/ipc/chromium/src/base/shared_memory_posix.cc b/ipc/chromium/src/base/shared_memory_posix.cc
---- a/ipc/chromium/src/base/shared_memory_posix.cc
-+++ b/ipc/chromium/src/base/shared_memory_posix.cc
-@@ -125,9 +125,15 @@
- if (file_util::GetShmemTempDir(&temp_dir) == false)
- return false;
-
-+#ifndef OS_SOLARIS
- mem_filename = UTF8ToWide(temp_dir.value());
- file_util::AppendToPath(&mem_filename, L"com.google.chrome.shmem." + memname);
- *filename = mem_filename;
-+#else
-+ *filename = (temp_dir.Append("com.google.chrome.shmem." +
-+ WideToUTF8(memname))).ToWStringHack();
-+#endif
-+
- return true;
- }
-
-@@ -247,7 +253,7 @@
- if (memory_ == NULL)
- return false;
-
-- munmap(memory_, max_size_);
-+ munmap((caddr_t)memory_, max_size_);
- memory_ = NULL;
- max_size_ = 0;
- return true;
-diff --git a/ipc/chromium/src/base/sys_info_posix.cc b/ipc/chromium/src/base/sys_info_posix.cc
---- a/ipc/chromium/src/base/sys_info_posix.cc
-+++ b/ipc/chromium/src/base/sys_info_posix.cc
-@@ -119,7 +119,7 @@
-
- // static
- std::string SysInfo::OperatingSystemName() {
-- utsname info;
-+ struct utsname info;
- if (uname(&info) < 0) {
- NOTREACHED();
- return "";
-@@ -139,7 +139,7 @@
-
- // static
- std::string SysInfo::CPUArchitecture() {
-- utsname info;
-+ struct utsname info;
- if (uname(&info) < 0) {
- NOTREACHED();
- return "";
-diff --git a/ipc/chromium/src/base/time.h b/ipc/chromium/src/base/time.h
---- a/ipc/chromium/src/base/time.h
-+++ b/ipc/chromium/src/base/time.h
-@@ -62,6 +62,10 @@
- return delta_;
- }
-
-+#if defined(OS_POSIX)
-+ struct timespec ToTimeSpec() const;
-+#endif
-+
- // Returns the time delta in some unit. The F versions return a floating
- // point value, the "regular" versions return a rounded-down value.
- int InDays() const;
-@@ -224,6 +228,10 @@
- static Time FromDoubleT(double dt);
- double ToDoubleT() const;
-
-+#if defined(OS_POSIX)
-+ struct timeval ToTimeVal() const;
-+#endif
-+
-
- #if defined(OS_WIN)
- static Time FromFileTime(FILETIME ft);
-diff --git a/ipc/chromium/src/base/time_posix.cc b/ipc/chromium/src/base/time_posix.cc
---- a/ipc/chromium/src/base/time_posix.cc
-+++ b/ipc/chromium/src/base/time_posix.cc
-@@ -65,11 +65,13 @@
- timestruct.tm_wday = exploded.day_of_week; // mktime/timegm ignore this
- timestruct.tm_yday = 0; // mktime/timegm ignore this
- timestruct.tm_isdst = -1; // attempt to figure it out
-+#ifndef OS_SOLARIS
- timestruct.tm_gmtoff = 0; // not a POSIX field, so mktime/timegm ignore
- timestruct.tm_zone = NULL; // not a POSIX field, so mktime/timegm ignore
--
-+#endif
-+
- time_t seconds;
--#ifdef ANDROID
-+#if defined(ANDROID) || defined(OS_SOLARIS)
- seconds = mktime(×truct);
- #else
- if (is_local)
-@@ -167,7 +169,7 @@
- // With numer and denom = 1 (the expected case), the 64-bit absolute time
- // reported in nanoseconds is enough to last nearly 585 years.
-
--#elif defined(OS_OPENBSD) || defined(OS_POSIX) && \
-+#elif defined(OS_OPENBSD) || defined(OS_SOLARIS) || defined(OS_POSIX) && \
- defined(_POSIX_MONOTONIC_CLOCK) && _POSIX_MONOTONIC_CLOCK >= 0
-
- struct timespec ts;
-@@ -192,4 +194,25 @@
- return Now();
- }
-
-+struct timespec TimeDelta::ToTimeSpec() const {
-+ int64_t microseconds = InMicroseconds();
-+ time_t seconds = 0;
-+ if (microseconds >= Time::kMicrosecondsPerSecond) {
-+ seconds = InSeconds();
-+ microseconds -= seconds * Time::kMicrosecondsPerSecond;
-+ }
-+ struct timespec result =
-+ {seconds,
-+ microseconds * Time::kNanosecondsPerMicrosecond};
-+ return result;
-+}
-+
-+struct timeval Time::ToTimeVal() const {
-+ struct timeval result;
-+ int64_t us = us_ - kTimeTToMicrosecondsOffset;
-+ result.tv_sec = us / Time::kMicrosecondsPerSecond;
-+ result.tv_usec = us % Time::kMicrosecondsPerSecond;
-+ return result;
-+}
-+
- } // namespace base
-diff --git a/ipc/chromium/src/build/build_config.h b/ipc/chromium/src/build/build_config.h
---- a/ipc/chromium/src/build/build_config.h
-+++ b/ipc/chromium/src/build/build_config.h
-@@ -4,9 +4,9 @@
-
- // This file adds defines about the platform we're currently building on.
- // Operating System:
--// OS_WIN / OS_MACOSX / OS_LINUX / OS_POSIX (MACOSX or LINUX)
-+// OS_WIN / OS_MACOSX / OS_LINUX / OS_SOLARIS / OS_POSIX (MACOSX or LINUX)
- // Compiler:
--// COMPILER_MSVC / COMPILER_GCC
-+// COMPILER_MSVC / COMPILER_GCC / COMPILER_SUNPRO
- // Processor:
- // ARCH_CPU_X86 / ARCH_CPU_X86_64 / ARCH_CPU_X86_FAMILY (X86 or X86_64)
- // ARCH_CPU_32_BITS / ARCH_CPU_64_BITS
-@@ -30,6 +30,8 @@
- #define OS_NETBSD 1
- #elif defined(__OpenBSD__)
- #define OS_OPENBSD 1
-+#elif defined(__sun__) || defined(__sun)
-+#define OS_SOLARIS 1
- #elif defined(_WIN32)
- #define OS_WIN 1
- #else
-@@ -45,13 +47,15 @@
-
- // For access to standard POSIX features, use OS_POSIX instead of a more
- // specific macro.
--#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
-+#if defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
- #define OS_POSIX 1
- #endif
-
- // Compiler detection.
- #if defined(__GNUC__)
- #define COMPILER_GCC 1
-+#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-+#define COMPILER_SUNPRO 1
- #elif defined(_MSC_VER)
- #define COMPILER_MSVC 1
- #else
-@@ -62,11 +66,11 @@
- // http://msdn.microsoft.com/en-us/library/b0084kay.aspx
- // http://www.agner.org/optimize/calling_conventions.pdf
- // or with gcc, run: "echo | gcc -E -dM -"
--#if defined(_M_X64) || defined(__x86_64__)
-+#if defined(_M_X64) || defined(__x86_64__) || defined(__x86_64)
- #define ARCH_CPU_X86_FAMILY 1
- #define ARCH_CPU_X86_64 1
- #define ARCH_CPU_64_BITS 1
--#elif defined(_M_IX86) || defined(__i386__)
-+#elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
- #define ARCH_CPU_X86_FAMILY 1
- #define ARCH_CPU_X86 1
- #define ARCH_CPU_32_BITS 1
-@@ -84,7 +88,7 @@
- #elif defined(__sparc64__)
- #define ARCH_CPU_SPARC 1
- #define ARCH_CPU_64_BITS 1
--#elif defined(__sparc__)
-+#elif defined(__sparc__) || defined(__sparc)
- #define ARCH_CPU_SPARC 1
- #define ARCH_CPU_32_BITS 1
- #elif defined(__mips64) && defined(__LP64__)
-diff --git a/ipc/chromium/src/chrome/common/file_descriptor_set_posix.cc b/ipc/chromium/src/chrome/common/file_descriptor_set_posix.cc
---- a/ipc/chromium/src/chrome/common/file_descriptor_set_posix.cc
-+++ b/ipc/chromium/src/chrome/common/file_descriptor_set_posix.cc
-@@ -4,6 +4,10 @@
-
- #include "chrome/common/file_descriptor_set_posix.h"
-
-+#if defined(OS_SOLARIS)
-+#include <unistd.h>
-+#endif
-+
- #include "base/eintr_wrapper.h"
- #include "base/logging.h"
-
-diff --git a/ipc/chromium/src/chrome/common/transport_dib.h b/ipc/chromium/src/chrome/common/transport_dib.h
---- a/ipc/chromium/src/chrome/common/transport_dib.h
-+++ b/ipc/chromium/src/chrome/common/transport_dib.h
-@@ -13,7 +13,7 @@
-
- #if defined(OS_WIN)
- #include <windows.h>
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_SOLARIS)
- #include "chrome/common/x11_util.h"
- #endif
-
-@@ -66,7 +66,7 @@
- typedef base::SharedMemoryHandle Handle;
- // On Mac, the inode number of the backing file is used as an id.
- typedef base::SharedMemoryId Id;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_SOLARIS)
- typedef int Handle; // These two ints are SysV IPC shared memory keys
- typedef int Id;
- #endif
-@@ -96,7 +96,7 @@
- // wire to give this transport DIB to another process.
- Handle handle() const;
-
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_SOLARIS)
- // Map the shared memory into the X server and return an id for the shared
- // segment.
- XID MapToX(Display* connection);
-@@ -107,7 +107,7 @@
- #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_BSD)
- explicit TransportDIB(base::SharedMemoryHandle dib);
- base::SharedMemory shared_memory_;
--#elif defined(OS_LINUX)
-+#elif defined(OS_LINUX) || defined(OS_SOLARIS)
- int key_; // SysV shared memory id
- void* address_; // mapped address
- XID x_shm_; // X id for the shared segment
-diff --git a/ipc/chromium/src/third_party/libevent/solaris/event2/event-config.h b/ipc/chromium/src/third_party/libevent/solaris/event2/event-config.h
-new file mode 100644
---- /dev/null
-+++ b/ipc/chromium/src/third_party/libevent/solaris/event2/event-config.h
-@@ -0,0 +1,455 @@
-+/* event2/event-config.h
-+ *
-+ * This file was generated by autoconf when libevent was built, and post-
-+ * processed by Libevent so that its macros would have a uniform prefix.
-+ *
-+ * DO NOT EDIT THIS FILE.
-+ *
-+ * Do not rely on macros in this file existing in later versions.
-+ */
-+
-+#ifndef _EVENT2_EVENT_CONFIG_H_
-+#define _EVENT2_EVENT_CONFIG_H_
-+
-+/* config.h. Generated from config.h.in by configure. */
-+/* config.h.in. Generated from configure.in by autoheader. */
-+
-+/* Define if libevent should build without support for a debug mode */
-+/* #undef _EVENT_DISABLE_DEBUG_MODE */
-+
-+/* Define if libevent should not allow replacing the mm functions */
-+/* #undef _EVENT_DISABLE_MM_REPLACEMENT */
-+
-+/* Define if libevent should not be compiled with thread support */
-+/* #undef _EVENT_DISABLE_THREAD_SUPPORT */
-+
-+/* Define to 1 if you have the `arc4random' function. */
-+/* #undef _EVENT_HAVE_ARC4RANDOM */
-+
-+/* Define to 1 if you have the `arc4random_buf' function. */
-+/* #undef _EVENT_HAVE_ARC4RANDOM_BUF */
-+
-+/* Define to 1 if you have the <arpa/inet.h> header file. */
-+#define _EVENT_HAVE_ARPA_INET_H 1
-+
-+/* Define to 1 if you have the `clock_gettime' function. */
-+#define _EVENT_HAVE_CLOCK_GETTIME 1
-+
-+/* Define to 1 if you have the declaration of `CTL_KERN', and to 0 if you
-+ don't. */
-+/* #undef _EVENT_HAVE_DECL_CTL_KERN */
-+
-+/* Define to 1 if you have the declaration of `KERN_ARND', and to 0 if you
-+ don't. */
-+/* #undef _EVENT_HAVE_DECL_KERN_ARND */
-+
-+/* Define to 1 if you have the declaration of `KERN_RANDOM', and to 0 if you
-+ don't. */
-+/* #undef _EVENT_HAVE_DECL_KERN_RANDOM */
-+
-+/* Define to 1 if you have the declaration of `RANDOM_UUID', and to 0 if you
-+ don't. */
-+#define _EVENT_HAVE_DECL_RANDOM_UUID 1
-+
-+/* Define if /dev/poll is available */
-+#define _EVENT_HAVE_DEVPOLL 1
-+
-+/* Define to 1 if you have the <dlfcn.h> header file. */
-+#define _EVENT_HAVE_DLFCN_H 1
-+
-+/* Define if your system supports the epoll system calls */
-+/* #undef _EVENT_HAVE_EPOLL */
-+
-+/* Define to 1 if you have the `epoll_ctl' function. */
-+/* #undef _EVENT_HAVE_EPOLL_CTL */
-+
-+/* Define to 1 if you have the `eventfd' function. */
-+/* #undef _EVENT_HAVE_EVENTFD */
-+
-+/* Define if your system supports event ports */
-+#define _EVENT_HAVE_EVENT_PORTS 1
-+
-+/* Define to 1 if you have the `fcntl' function. */
-+#define _EVENT_HAVE_FCNTL 1
-+
-+/* Define to 1 if you have the <fcntl.h> header file. */
-+#define _EVENT_HAVE_FCNTL_H 1
-+
-+/* Define to 1 if the system has the type `fd_mask'. */
-+#define _EVENT_HAVE_FD_MASK 1
-+
-+/* Do we have getaddrinfo()? */
-+#define _EVENT_HAVE_GETADDRINFO 1
-+
-+/* Define to 1 if you have the `getegid' function. */
-+#define _EVENT_HAVE_GETEGID 1
-+
-+/* Define to 1 if you have the `geteuid' function. */
-+#define _EVENT_HAVE_GETEUID 1
-+
-+/* Define this if you have any gethostbyname_r() */
-+/* #undef _EVENT_HAVE_GETHOSTBYNAME_R */
-+
-+/* Define this if gethostbyname_r takes 3 arguments */
-+/* #undef _EVENT_HAVE_GETHOSTBYNAME_R_3_ARG */
-+
-+/* Define this if gethostbyname_r takes 5 arguments */
-+/* #undef _EVENT_HAVE_GETHOSTBYNAME_R_5_ARG */
-+
-+/* Define this if gethostbyname_r takes 6 arguments */
-+/* #undef _EVENT_HAVE_GETHOSTBYNAME_R_6_ARG */
-+
-+/* Define to 1 if you have the `getnameinfo' function. */
-+#define _EVENT_HAVE_GETNAMEINFO 1
-+
-+/* Define to 1 if you have the `getprotobynumber' function. */
-+#define _EVENT_HAVE_GETPROTOBYNUMBER 1
-+
-+/* Define to 1 if you have the `getservbyname' function. */
-+/* #undef _EVENT_HAVE_GETSERVBYNAME */
-+
-+/* Define to 1 if you have the `gettimeofday' function. */
-+#define _EVENT_HAVE_GETTIMEOFDAY 1
-+
-+/* Define to 1 if you have the `inet_aton' function. */
-+#define _EVENT_HAVE_INET_ATON 1
-+
-+/* Define to 1 if you have the `inet_ntop' function. */
-+#define _EVENT_HAVE_INET_NTOP 1
-+
-+/* Define to 1 if you have the `inet_pton' function. */
-+#define _EVENT_HAVE_INET_PTON 1
-+
-+/* Define to 1 if you have the <inttypes.h> header file. */
-+#define _EVENT_HAVE_INTTYPES_H 1
-+
-+/* Define to 1 if you have the `issetugid' function. */
-+#define _EVENT_HAVE_ISSETUGID 1
-+
-+/* Define to 1 if you have the `kqueue' function. */
-+/* #undef _EVENT_HAVE_KQUEUE */
-+
-+/* Define if the system has zlib */
-+#define _EVENT_HAVE_LIBZ 1
-+
-+/* Define to 1 if you have the <memory.h> header file. */
-+#define _EVENT_HAVE_MEMORY_H 1
-+
-+/* Define to 1 if you have the `mmap' function. */
-+#define _EVENT_HAVE_MMAP 1
-+
-+/* Define to 1 if you have the <netdb.h> header file. */
-+#define _EVENT_HAVE_NETDB_H 1
-+
-+/* Define to 1 if you have the <netinet/in6.h> header file. */
-+/* #undef _EVENT_HAVE_NETINET_IN6_H */
-+
-+/* Define to 1 if you have the <netinet/in.h> header file. */
-+#define _EVENT_HAVE_NETINET_IN_H 1
-+
-+/* Define if the system has openssl */
-+#define _EVENT_HAVE_OPENSSL 1
-+
-+/* Define to 1 if you have the <openssl/bio.h> header file. */
-+#define _EVENT_HAVE_OPENSSL_BIO_H 1
-+
-+/* Define to 1 if you have the `pipe' function. */
-+#define _EVENT_HAVE_PIPE 1
-+
-+/* Define to 1 if you have the `poll' function. */
-+#define _EVENT_HAVE_POLL 1
-+
-+/* Define to 1 if you have the <poll.h> header file. */
-+#define _EVENT_HAVE_POLL_H 1
-+
-+/* Define to 1 if you have the `port_create' function. */
-+#define _EVENT_HAVE_PORT_CREATE 1
-+
-+/* Define to 1 if you have the <port.h> header file. */
-+#define _EVENT_HAVE_PORT_H 1
-+
-+/* Define if you have POSIX threads libraries and header files. */
-+/* #undef _EVENT_HAVE_PTHREAD */
-+
-+/* Define if we have pthreads on this system */
-+#define _EVENT_HAVE_PTHREADS 1
-+
-+/* Define to 1 if you have the `putenv' function. */
-+#define _EVENT_HAVE_PUTENV 1
-+
-+/* Define to 1 if the system has the type `sa_family_t'. */
-+#define _EVENT_HAVE_SA_FAMILY_T 1
-+
-+/* Define to 1 if you have the `select' function. */
-+#define _EVENT_HAVE_SELECT 1
-+
-+/* Define to 1 if you have the `sendfile' function. */
-+#define _EVENT_HAVE_SENDFILE 1
-+
-+/* Define to 1 if you have the `setenv' function. */
-+#define _EVENT_HAVE_SETENV 1
-+
-+/* Define if F_SETFD is defined in <fcntl.h> */
-+#define _EVENT_HAVE_SETFD 1
-+
-+/* Define to 1 if you have the `sigaction' function. */
-+#define _EVENT_HAVE_SIGACTION 1
-+
-+/* Define to 1 if you have the `signal' function. */
-+#define _EVENT_HAVE_SIGNAL 1
-+
-+/* Define to 1 if you have the `splice' function. */
-+#define _EVENT_HAVE_SPLICE 1
-+
-+/* Define to 1 if you have the <stdarg.h> header file. */
-+#define _EVENT_HAVE_STDARG_H 1
-+
-+/* Define to 1 if you have the <stddef.h> header file. */
-+#define _EVENT_HAVE_STDDEF_H 1
-+
-+/* Define to 1 if you have the <stdint.h> header file. */
-+#define _EVENT_HAVE_STDINT_H 1
-+
-+/* Define to 1 if you have the <stdlib.h> header file. */
-+#define _EVENT_HAVE_STDLIB_H 1
-+
-+/* Define to 1 if you have the <strings.h> header file. */
-+#define _EVENT_HAVE_STRINGS_H 1
-+
-+/* Define to 1 if you have the <string.h> header file. */
-+#define _EVENT_HAVE_STRING_H 1
-+
-+/* Define to 1 if you have the `strlcpy' function. */
-+#define _EVENT_HAVE_STRLCPY 1
-+
-+/* Define to 1 if you have the `strsep' function. */
-+#define _EVENT_HAVE_STRSEP 1
-+
-+/* Define to 1 if you have the `strtok_r' function. */
-+#define _EVENT_HAVE_STRTOK_R 1
-+
-+/* Define to 1 if you have the `strtoll' function. */
-+#define _EVENT_HAVE_STRTOLL 1
-+
-+/* Define to 1 if the system has the type `struct addrinfo'. */
-+#define _EVENT_HAVE_STRUCT_ADDRINFO 1
-+
-+/* Define to 1 if the system has the type `struct in6_addr'. */
-+#define _EVENT_HAVE_STRUCT_IN6_ADDR 1
-+
-+/* Define to 1 if `s6_addr16' is a member of `struct in6_addr'. */
-+/* #undef _EVENT_HAVE_STRUCT_IN6_ADDR_S6_ADDR16 */
-+
-+/* Define to 1 if `s6_addr32' is a member of `struct in6_addr'. */
-+/* #undef _EVENT_HAVE_STRUCT_IN6_ADDR_S6_ADDR32 */
-+
-+/* Define to 1 if the system has the type `struct sockaddr_in6'. */
-+#define _EVENT_HAVE_STRUCT_SOCKADDR_IN6 1
-+
-+/* Define to 1 if `sin6_len' is a member of `struct sockaddr_in6'. */
-+/* #undef _EVENT_HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN */
-+
-+/* Define to 1 if `sin_len' is a member of `struct sockaddr_in'. */
-+/* #undef _EVENT_HAVE_STRUCT_SOCKADDR_IN_SIN_LEN */
-+
-+/* Define to 1 if the system has the type `struct sockaddr_storage'. */
-+#define _EVENT_HAVE_STRUCT_SOCKADDR_STORAGE 1
-+
-+/* Define to 1 if `ss_family' is a member of `struct sockaddr_storage'. */
-+#define _EVENT_HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1
-+
-+/* Define to 1 if `__ss_family' is a member of `struct sockaddr_storage'. */
-+/* #undef _EVENT_HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY */
-+
-+/* Define to 1 if you have the `sysctl' function. */
-+/* #undef _EVENT_HAVE_SYSCTL */
-+
-+/* Define to 1 if you have the <sys/devpoll.h> header file. */
-+#define _EVENT_HAVE_SYS_DEVPOLL_H 1
-+
-+/* Define to 1 if you have the <sys/epoll.h> header file. */
-+/* #undef _EVENT_HAVE_SYS_EPOLL_H 1 */
-+
-+/* Define to 1 if you have the <sys/eventfd.h> header file. */
-+/* #define _EVENT_HAVE_SYS_EVENTFD_H 1 */
-+
-+/* Define to 1 if you have the <sys/event.h> header file. */
-+/* #undef _EVENT_HAVE_SYS_EVENT_H */
-+
-+/* Define to 1 if you have the <sys/ioctl.h> header file. */
-+#define _EVENT_HAVE_SYS_IOCTL_H 1
-+
-+/* Define to 1 if you have the <sys/mman.h> header file. */
-+#define _EVENT_HAVE_SYS_MMAN_H 1
-+
-+/* Define to 1 if you have the <sys/param.h> header file. */
-+#define _EVENT_HAVE_SYS_PARAM_H 1
-+
-+/* Define to 1 if you have the <sys/queue.h> header file. */
-+#define _EVENT_HAVE_SYS_QUEUE_H 1
-+
-+/* Define to 1 if you have the <sys/select.h> header file. */
-+#define _EVENT_HAVE_SYS_SELECT_H 1
-+
-+/* Define to 1 if you have the <sys/sendfile.h> header file. */
-+#define _EVENT_HAVE_SYS_SENDFILE_H 1
-+
-+/* Define to 1 if you have the <sys/socket.h> header file. */
-+#define _EVENT_HAVE_SYS_SOCKET_H 1
-+
-+/* Define to 1 if you have the <sys/stat.h> header file. */
-+#define _EVENT_HAVE_SYS_STAT_H 1
-+
-+/* Define to 1 if you have the <sys/sysctl.h> header file. */
-+/* #undef _EVENT_HAVE_SYS_SYSCTL_H */
-+
-+/* Define to 1 if you have the <sys/time.h> header file. */
-+#define _EVENT_HAVE_SYS_TIME_H 1
-+
-+/* Define to 1 if you have the <sys/types.h> header file. */
-+#define _EVENT_HAVE_SYS_TYPES_H 1
-+
-+/* Define to 1 if you have the <sys/uio.h> header file. */
-+#define _EVENT_HAVE_SYS_UIO_H 1
-+
-+/* Define to 1 if you have the <sys/wait.h> header file. */
-+#define _EVENT_HAVE_SYS_WAIT_H 1
-+
-+/* Define if TAILQ_FOREACH is defined in <sys/queue.h> */
-+#define _EVENT_HAVE_TAILQFOREACH 1
-+
-+/* Define if timeradd is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERADD 1
-+
-+/* Define if timerclear is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERCLEAR 1
-+
-+/* Define if timercmp is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERCMP 1
-+
-+/* Define if timerisset is defined in <sys/time.h> */
-+#define _EVENT_HAVE_TIMERISSET 1
-+
-+/* Define to 1 if the system has the type `uint16_t'. */
-+#define _EVENT_HAVE_UINT16_T 1
-+
-+/* Define to 1 if the system has the type `uint32_t'. */
-+#define _EVENT_HAVE_UINT32_T 1
-+
-+/* Define to 1 if the system has the type `uint64_t'. */
-+#define _EVENT_HAVE_UINT64_T 1
-+
-+/* Define to 1 if the system has the type `uint8_t'. */
-+#define _EVENT_HAVE_UINT8_T 1
-+
-+/* Define to 1 if the system has the type `uintptr_t'. */
-+#define _EVENT_HAVE_UINTPTR_T 1
-+
-+/* Define to 1 if you have the `umask' function. */
-+#define _EVENT_HAVE_UMASK 1
-+
-+/* Define to 1 if you have the <unistd.h> header file. */
-+#define _EVENT_HAVE_UNISTD_H 1
-+
-+/* Define to 1 if you have the `unsetenv' function. */
-+#define _EVENT_HAVE_UNSETENV 1
-+
-+/* Define to 1 if you have the `vasprintf' function. */
-+#define _EVENT_HAVE_VASPRINTF 1
-+
-+/* Define if kqueue works correctly with pipes */
-+/* #undef _EVENT_HAVE_WORKING_KQUEUE */
-+
-+/* Define to 1 if you have the <zlib.h> header file. */
-+#define _EVENT_HAVE_ZLIB_H 1
-+
-+/* Define to the sub-directory in which libtool stores uninstalled libraries.
-+ */
-+#define _EVENT_LT_OBJDIR ".libs/"
-+
-+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-+/* #undef _EVENT_NO_MINUS_C_MINUS_O */
-+
-+/* Numeric representation of the version */
-+#define _EVENT_NUMERIC_VERSION 0x02001500
-+
-+/* Name of package */
-+#define _EVENT_PACKAGE "libevent"
-+
-+/* Define to the address where bug reports for this package should be sent. */
-+#define _EVENT_PACKAGE_BUGREPORT ""
-+
-+/* Define to the full name of this package. */
-+#define _EVENT_PACKAGE_NAME ""
-+
-+/* Define to the full name and version of this package. */
-+#define _EVENT_PACKAGE_STRING ""
-+
-+/* Define to the one symbol short name of this package. */
-+#define _EVENT_PACKAGE_TARNAME ""
-+
-+/* Define to the home page for this package. */
-+#define _EVENT_PACKAGE_URL ""
-+
-+/* Define to the version of this package. */
-+#define _EVENT_PACKAGE_VERSION ""
-+
-+/* Define to necessary symbol if this constant uses a non-standard name on
-+ your system. */
-+/* #undef _EVENT_PTHREAD_CREATE_JOINABLE */
-+
-+/* The size of `int', as computed by sizeof. */
-+#define _EVENT_SIZEOF_INT 4
-+
-+/* The size of `long', as computed by sizeof. */
-+#define _EVENT_SIZEOF_LONG 4
-+
-+/* The size of `long long', as computed by sizeof. */
-+#define _EVENT_SIZEOF_LONG_LONG 8
-+
-+/* The size of `pthread_t', as computed by sizeof. */
-+#define _EVENT_SIZEOF_PTHREAD_T 4
-+
-+/* The size of `short', as computed by sizeof. */
-+#define _EVENT_SIZEOF_SHORT 2
-+
-+/* The size of `size_t', as computed by sizeof. */
-+#define _EVENT_SIZEOF_SIZE_T 4
-+
-+/* The size of `void *', as computed by sizeof. */
-+#define _EVENT_SIZEOF_VOID_P 4
-+
-+/* Define to 1 if you have the ANSI C header files. */
-+#define _EVENT_STDC_HEADERS 1
-+
-+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-+#define _EVENT_TIME_WITH_SYS_TIME 1
-+
-+/* Version number of package */
-+#define _EVENT_VERSION "2.0.21-stable"
-+
-+/* Define to appropriate substitue if compiler doesnt have __func__ */
-+/* #undef _EVENT___func__ */
-+
-+/* Define to empty if `const' does not conform to ANSI C. */
-+/* #undef _EVENT_const */
-+
-+/* Define to `__inline__' or `__inline' if that's what the C compiler
-+ calls it, or to nothing if 'inline' is not supported under any name. */
-+#ifndef _EVENT___cplusplus
-+/* #undef _EVENT_inline */
-+#endif
-+
-+/* Define to `int' if <sys/types.h> does not define. */
-+/* #undef _EVENT_pid_t */
-+
-+/* Define to `unsigned int' if <sys/types.h> does not define. */
-+/* #undef _EVENT_size_t */
-+
-+/* Define to unsigned int if you dont have it */
-+/* #undef _EVENT_socklen_t */
-+
-+/* Define to `int' if <sys/types.h> does not define. */
-+/* #undef _EVENT_ssize_t */
-+
-+#endif /* event2/event-config.h */
-diff --git a/ipc/glue/BrowserProcessSubThread.cpp b/ipc/glue/BrowserProcessSubThread.cpp
---- a/ipc/glue/BrowserProcessSubThread.cpp
-+++ b/ipc/glue/BrowserProcessSubThread.cpp
-@@ -25,7 +25,7 @@
- // "Chrome_FileThread", // FILE
- // "Chrome_DBThread", // DB
- // "Chrome_HistoryThread", // HISTORY
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_SOLARIS)
- "Gecko_Background_X11Thread", // BACKGROUND_X11
- #endif
- };
-@@ -36,7 +36,7 @@
- // nullptr, // FILE
- // nullptr, // DB
- // nullptr, // HISTORY
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_SOLARIS)
- nullptr, // BACKGROUND_X11
- #endif
- };
-diff --git a/ipc/glue/BrowserProcessSubThread.h b/ipc/glue/BrowserProcessSubThread.h
---- a/ipc/glue/BrowserProcessSubThread.h
-+++ b/ipc/glue/BrowserProcessSubThread.h
-@@ -28,7 +28,7 @@
- //FILE,
- //DB,
- //HISTORY,
--#if defined(OS_LINUX)
-+#if defined(OS_LINUX) || defined(OS_SOLARIS)
- // This thread has a second connection to the X server and is used
- // to process UI requests when routing the request to the UI
- // thread would risk deadlock.
-diff --git a/ipc/glue/GeckoChildProcessHost.cpp b/ipc/glue/GeckoChildProcessHost.cpp
---- a/ipc/glue/GeckoChildProcessHost.cpp
-+++ b/ipc/glue/GeckoChildProcessHost.cpp
-@@ -547,12 +547,15 @@
- // and passing wstrings from one config to the other is unsafe. So
- // we split the logic here.
-
--#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
-- base::environment_map newEnvVars;
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD) || defined(OS_SOLARIS)
- ChildPrivileges privs = mPrivileges;
- if (privs == base::PRIVILEGES_DEFAULT) {
- privs = DefaultChildPrivileges();
- }
-+#endif
-+
-+#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
-+ base::environment_map newEnvVars;
- // XPCOM may not be initialized in some subprocesses. We don't want
- // to initialize XPCOM just for the directory service, especially
- // since LD_LIBRARY_PATH is already set correctly in subprocesses
-@@ -686,7 +689,7 @@
- childArgv.push_back(pidstring);
-
- #if defined(MOZ_CRASHREPORTER)
--# if defined(OS_LINUX) || defined(OS_BSD)
-+# if defined(OS_LINUX) || defined(OS_BSD) || defined(OS_SOLARIS)
- int childCrashFd, childCrashRemapFd;
- if (!CrashReporter::CreateNotificationPipeForChild(
- &childCrashFd, &childCrashRemapFd))
-@@ -702,7 +705,7 @@
- }
- # elif defined(MOZ_WIDGET_COCOA)
- childArgv.push_back(CrashReporter::GetChildNotificationPipe());
--# endif // OS_LINUX
-+# endif // OS_LINUX || defined(OS_SOLARIS)
- #endif
-
- #ifdef MOZ_WIDGET_COCOA
-@@ -721,6 +724,8 @@
- base::LaunchApp(childArgv, mFileMap,
- #if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_BSD)
- newEnvVars, privs,
-+#elif defined(OS_SOLARIS)
-+ base::environment_map(), privs,
- #endif
- false, &process, arch);
-
-diff --git a/ipc/glue/SharedMemorySysV.h b/ipc/glue/SharedMemorySysV.h
---- a/ipc/glue/SharedMemorySysV.h
-+++ b/ipc/glue/SharedMemorySysV.h
-@@ -8,7 +8,7 @@
- #ifndef mozilla_ipc_SharedMemorySysV_h
- #define mozilla_ipc_SharedMemorySysV_h
-
--#if (defined(OS_LINUX) && !defined(ANDROID)) || defined(OS_BSD)
-+#if (defined(OS_LINUX) && !defined(ANDROID)) || defined(OS_BSD) || defined(OS_SOLARIS)
-
- // SysV shared memory isn't available on Windows, but we define the
- // following macro so that #ifdefs are clearer (compared to #ifdef
-@@ -55,6 +55,9 @@
- virtual ~SharedMemorySysV()
- {
- shmdt(mData);
-+#ifdef OS_SOLARIS
-+ shmctl(mHandle, IPC_RMID, 0);
-+#endif
- mHandle = -1;
- mData = nullptr;
- }
-@@ -94,7 +97,9 @@
-
- // Mark the handle as deleted so that, should this process go away, the
- // segment is cleaned up.
-+#ifndef OS_SOLARIS
- shmctl(mHandle, IPC_RMID, 0);
-+#endif
-
- mData = mem;
-
-@@ -145,6 +150,6 @@
- } // namespace ipc
- } // namespace mozilla
-
--#endif // OS_LINUX
-+#endif // OS_LINUX || OS_SOLARIS
-
- #endif // ifndef mozilla_ipc_SharedMemorySysV_h
-diff --git a/ipc/ipdl/test/cxx/Makefile.in b/ipc/ipdl/test/cxx/Makefile.in
---- a/ipc/ipdl/test/cxx/Makefile.in
-+++ b/ipc/ipdl/test/cxx/Makefile.in
-@@ -9,6 +9,10 @@
- TestBridgeSub \
- $(NULL)
-
-+ifeq ($(OS_ARCH),SunOS)
-+IPDLTESTS += TestSysVShmem
-+endif
-+
- IPDLTESTHDRS = $(addprefix $(srcdir)/,$(addsuffix .h,$(IPDLTESTS)))
-
- TESTER_TEMPLATE := $(srcdir)/IPDLUnitTests.template.cpp
-diff --git a/ipc/ipdl/test/cxx/TestShutdown.cpp b/ipc/ipdl/test/cxx/TestShutdown.cpp
---- a/ipc/ipdl/test/cxx/TestShutdown.cpp
-+++ b/ipc/ipdl/test/cxx/TestShutdown.cpp
-@@ -184,6 +184,8 @@
- // detectors
- _exit(0);
- }
-+
-+ return false;
- }
-
- void
-diff --git a/js/src/configure b/js/src/configure
---- a/js/src/configure
-+++ b/js/src/configure
-@@ -8219,7 +8219,7 @@
- EOF
-
- CFLAGS="$CFLAGS -xlibmieee -xstrconst -xbuiltin=%all -D__FUNCTION__=__func__"
-- CXXFLAGS="$CXXFLAGS -xlibmieee -xbuiltin=%all -features=tmplife,tmplrefstatic,extensions,no%except -norunpath -D__FUNCTION__=__func__ -template=no%extdef"
-+ CXXFLAGS="$CXXFLAGS -xlibmieee -xbuiltin=%all -features=tmplife,tmplrefstatic,extensions,no%except -norunpath -D__FUNCTION__=__func__ -template=no%extdef -D_XOPEN_SOURCE=500 -D__EXTENSIONS__"
- LDFLAGS="-xildoff $LDFLAGS"
- if test -z "$CROSS_COMPILE" -a -f /usr/lib/ld/map.noexstk; then
- _SAVE_LDFLAGS=$LDFLAGS
-diff --git a/mfbt/Poison.cpp b/mfbt/Poison.cpp
---- a/mfbt/Poison.cpp
-+++ b/mfbt/Poison.cpp
-@@ -25,6 +25,7 @@
- # endif
- # endif
- #endif
-+extern "C" int madvise(caddr_t, size_t, int);
-
- extern "C" {
- uintptr_t gMozillaPoisonValue;
-@@ -129,7 +130,7 @@
- static bool
- ProbeRegion(uintptr_t aRegion, uintptr_t aSize)
- {
-- if (madvise(reinterpret_cast<void*>(aRegion), aSize, MADV_NORMAL)) {
-+ if (madvise(reinterpret_cast<char*>(aRegion), aSize, MADV_NORMAL)) {
- return true;
- } else {
- return false;
-diff --git a/mfbt/tests/TestPoisonArea.cpp b/mfbt/tests/TestPoisonArea.cpp
---- a/mfbt/tests/TestPoisonArea.cpp
-+++ b/mfbt/tests/TestPoisonArea.cpp
-@@ -103,6 +103,7 @@
- #include <sys/wait.h>
-
- #include <sys/mman.h>
-+extern "C" int madvise(caddr_t, size_t, int);
- #ifndef MAP_ANON
- #ifdef MAP_ANONYMOUS
- #define MAP_ANON MAP_ANONYMOUS
-diff --git a/modules/libjar/nsZipArchive.cpp b/modules/libjar/nsZipArchive.cpp
---- a/modules/libjar/nsZipArchive.cpp
-+++ b/modules/libjar/nsZipArchive.cpp
-@@ -40,7 +40,8 @@
- #include <sys/stat.h>
- #include <limits.h>
- #include <unistd.h>
--#elif defined(XP_WIN)
-+extern "C" int madvise(caddr_t, size_t, int);
-+#elif defined(XP_WIN) || defined(XP_OS2)
- #include <io.h>
- #endif
-
-@@ -612,7 +613,7 @@
- uint32_t readaheadLength = xtolong(startp);
- if (readaheadLength) {
- #if defined(XP_UNIX)
-- madvise(const_cast<uint8_t*>(startp), readaheadLength, MADV_WILLNEED);
-+ madvise((caddr_t)const_cast<uint8_t*>(startp), readaheadLength, MADV_WILLNEED);
- #elif defined(XP_WIN)
- if (aFd) {
- HANDLE hFile = (HANDLE) PR_FileDesc2NativeHandle(aFd);
-diff --git a/config/system-headers b/config/system-headers
---- a/config/system-headers
-+++ b/config/system-headers
-@@ -1,16 +1,17 @@
- nspr.h
- plarena.h
- plarenas.h
- plbase64.h
- plerror.h
- plgetopt.h
- plhash.h
- plstr.h
-+port.h
- pratom.h
- prbit.h
- prclist.h
- prcmon.h
- prcountr.h
- prcpucfg.h
- prcvar.h
- prdtoa.h
-@@ -1040,16 +1041,17 @@ sys/lwp.h
- sys/machine.h
- sys/mman.h
- sys/mmu.h
- sys/mount.h
- sys/mpctl.h
- sys/param.h
- sys/pda.h
- sys/poll.h
-+sys/port.h
- sys/ppc.h
- sys/prctl.h
- sys/priv.h
- sys/procfs.h
- sys/pstat.h
- sys/ptrace.h
- sys/queue.h
- sys/quota.h
-diff --git a/ipc/glue/MessageLink.cpp b/ipc/glue/MessageLink.cpp
---- a/ipc/glue/MessageLink.cpp
-+++ b/ipc/glue/MessageLink.cpp
-@@ -350,7 +354,7 @@
- mExistingListener = mTransport->set_listener(this);
- #ifdef DEBUG
- if (mExistingListener) {
-- queue<Message> pending;
-+ std::queue<Message> pending;
- mExistingListener->GetQueuedMessages(pending);
- MOZ_ASSERT(pending.empty());
- }
-@@ -366,17 +366,17 @@ ProcessLink::OnChannelOpened()
- /*assert*/mTransport->Connect();
- }
-
- void
- ProcessLink::OnTakeConnectedChannel()
- {
- AssertIOThread();
-
-- queue<Message> pending;
-+ std::queue<Message> pending;
- {
- MonitorAutoLock lock(*mChan->mMonitor);
-
- mChan->mChannelState = ChannelConnected;
-
- mExistingListener = mTransport->set_listener(this);
- if (mExistingListener) {
- mExistingListener->GetQueuedMessages(pending);
--- a/components/desktop/thunderbird/patches/firefox-38-sparc-align.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-Adds asm("ta 6") which suppresses bus error caused by misalignment.
-
-diff --git a/js/xpconnect/src/XPCShellImpl.cpp b/js/xpconnect/src/XPCShellImpl.cpp
---- a/js/xpconnect/src/XPCShellImpl.cpp
-+++ b/js/xpconnect/src/XPCShellImpl.cpp
-@@ -1320,16 +1320,22 @@ GetCurrentWorkingDirectory(nsAString& wo
- return true;
- }
-
- static JSSecurityCallbacks shellSecurityCallbacks;
-
- int
- XRE_XPCShellMain(int argc, char** argv, char** envp)
- {
-+
-+#if defined (__GNUC__) && (defined(__sparc) || defined(__sparc__))
-+ // make unaligned memory access no crash
-+ asm ( "ta 6" );
-+#endif
-+
- JSRuntime* rt;
- JSContext* cx;
- int result = 0;
- nsresult rv;
-
- gErrFile = stderr;
- gOutFile = stdout;
- gInFile = stdin;
-diff --git a/memory/mozjemalloc/jemalloc.c b/memory/mozjemalloc/jemalloc.c
---- a/memory/mozjemalloc/jemalloc.c
-+++ b/memory/mozjemalloc/jemalloc.c
-@@ -5551,16 +5551,22 @@ malloc_init(void)
- #endif
-
- #if !defined(MOZ_MEMORY_WINDOWS)
- static
- #endif
- bool
- malloc_init_hard(void)
- {
-+
-+#if defined (__GNUC__) && (defined(__sparc) || defined(__sparc__))
-+ // make unaligned memory access no crash
-+ asm ( "ta 6" );
-+#endif
-+
- unsigned i;
- char buf[PATH_MAX + 1];
- const char *opts;
- long result;
- #ifndef MOZ_MEMORY_WINDOWS
- int linklen;
- #endif
- #ifdef MOZ_MEMORY_DARWIN
-diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
---- a/toolkit/xre/nsAppRunner.cpp
-+++ b/toolkit/xre/nsAppRunner.cpp
-@@ -4255,6 +4255,11 @@
- int
- XREMain::XRE_main(int argc, char* argv[], const nsXREAppData* aAppData)
- {
-+#if defined (__GNUC__) && (defined(__sparc) || defined(__sparc__))
-+ // make unaligned memory access no crash
-+ asm ( "ta 6" );
-+#endif
-+
- ScopedLogging log;
-
- #if defined(MOZ_SANDBOX) && defined(XP_LINUX) && !defined(ANDROID)
--- a/components/desktop/thunderbird/patches/firefox-39-gc-memory.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-Remove unnecessary functions for memory.
-Do not plan to send upstream.
-
-diff --git a/js/src/gc/Memory.cpp b/js/src/gc/Memory.cpp
---- a/js/src/gc/Memory.cpp
-+++ b/js/src/gc/Memory.cpp
-@@ -12,21 +12,16 @@
- #include "js/HeapAPI.h"
- #include "vm/Runtime.h"
-
- #if defined(XP_WIN)
-
- #include "jswin.h"
- #include <psapi.h>
-
--#elif defined(SOLARIS)
--
--#include <sys/mman.h>
--#include <unistd.h>
--
- #elif defined(XP_UNIX)
-
- #include <algorithm>
- #include <errno.h>
- #include <sys/mman.h>
- #include <sys/resource.h>
- #include <sys/stat.h>
- #include <sys/types.h>
-@@ -346,85 +346,6 @@ DeallocateMappedContent(void* p, size_t
- // TODO: Bug 988813 - Support memory mapped array buffer for Windows platform.
- }
-
--#elif defined(SOLARIS)
--
--#ifndef MAP_NOSYNC
--# define MAP_NOSYNC 0
--#endif
--
--void
--InitMemorySubsystem()
--{
-- if (pageSize == 0)
-- pageSize = allocGranularity = size_t(sysconf(_SC_PAGESIZE));
--}
--
--void*
--MapAlignedPages(size_t size, size_t alignment)
--{
-- MOZ_ASSERT(size >= alignment);
-- MOZ_ASSERT(size % alignment == 0);
-- MOZ_ASSERT(size % pageSize == 0);
-- MOZ_ASSERT(alignment % allocGranularity == 0);
--
-- int prot = PROT_READ | PROT_WRITE;
-- int flags = MAP_PRIVATE | MAP_ANON | MAP_ALIGN | MAP_NOSYNC;
--
-- void* p = mmap((caddr_t)alignment, size, prot, flags, -1, 0);
-- if (p == MAP_FAILED)
-- return nullptr;
-- return p;
--}
--
--static void*
--MapAlignedPagesLastDitch(size_t size, size_t alignment)
--{
-- return nullptr;
--}
--
--void
--UnmapPages(void* p, size_t size)
--{
-- MOZ_ALWAYS_TRUE(0 == munmap((caddr_t)p, size));
--}
--
--bool
--MarkPagesUnused(void* p, size_t size)
--{
-- MOZ_ASSERT(OffsetFromAligned(p, pageSize) == 0);
-- return true;
--}
--
--bool
--MarkPagesInUse(void* p, size_t size)
--{
-- if (!DecommitEnabled())
-- return true;
--
-- MOZ_ASSERT(OffsetFromAligned(p, pageSize) == 0);
-- return true;
--}
--
--size_t
--GetPageFaultCount()
--{
-- return 0;
--}
--
--void*
--AllocateMappedContent(int fd, size_t offset, size_t length, size_t alignment)
--{
-- // Not implemented.
-- return nullptr;
--}
--
--// Deallocate mapped memory for object.
--void
--DeallocateMappedContent(void* p, size_t length)
--{
-- // Not implemented.
--}
--
- #elif defined(XP_UNIX)
-
- void
-@@ -599,17 +521,17 @@ UnmapPages(void* p, size_t size)
-
- bool
- MarkPagesUnused(void* p, size_t size)
- {
- if (!DecommitEnabled())
- return false;
-
- MOZ_ASSERT(OffsetFromAligned(p, pageSize) == 0);
-- int result = madvise(p, size, MADV_DONTNEED);
-+ int result = madvise((caddr_t)p, size, MADV_DONTNEED);
- return result != -1;
- }
-
- bool
- MarkPagesInUse(void* p, size_t size)
- {
- if (!DecommitEnabled())
- return true;
--- a/components/desktop/thunderbird/patches/firefox-40-libstagefright.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-Do not use certain header files. We define bswap_16 ourselves.
-Do not plan to send upstream.
-
-diff --git a/media/libstagefright/moz.build b/media/libstagefright/moz.build
---- a/media/libstagefright/moz.build
-+++ b/media/libstagefright/moz.build
-@@ -2,17 +2,17 @@
- # vim: set filetype=python:
- # 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/.
-
- DEFINES['ANDROID_SMP'] = 0
- DEFINES['LOG_NDEBUG'] = 1
-
--if CONFIG['OS_TARGET'] != 'WINNT':
-+if CONFIG['OS_TARGET'] != 'WINNT' and CONFIG['OS_TARGET'] != 'SunOS':
- DEFINES['_GLIBCXX_OS_DEFINES'] = True
-
- if CONFIG['OS_TARGET'] == 'WINNT':
- if CONFIG['_MSC_VER']:
- DEFINES['ssize_t'] = 'intptr_t'
- DEFINES['off64_t'] = 'int64_t'
- DEFINES['strcasecmp'] = 'stricmp'
- DEFINES['strncasecmp'] = 'strnicmp'
--- a/components/desktop/thunderbird/patches/firefox-41-static-xul-components.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-Define variables differently for Solaris.
-Do not plan to send upstream.
-
-diff --git a/toolkit/library/StaticXULComponentsEnd/StaticXULComponentsEnd.cpp b/toolkit/library/StaticXULComponentsEnd/StaticXULComponentsEnd.cpp
---- a/toolkit/library/StaticXULComponentsEnd/StaticXULComponentsEnd.cpp
-+++ b/toolkit/library/StaticXULComponentsEnd/StaticXULComponentsEnd.cpp
-@@ -5,9 +5,10 @@
- #ifdef _MSC_VER
- /* Sections on Windows are in two parts, separated with $. When linking,
- * sections with the same first part are all grouped, and ordered
- * alphabetically with the second part as sort key. */
- # pragma section(".kPStaticModules$Z", read)
- # undef NSMODULE_SECTION
- # define NSMODULE_SECTION __declspec(allocate(".kPStaticModules$Z"), dllexport)
- #endif
--NSMODULE_DEFN(end_kPStaticModules) = nullptr;
-+static const mozilla::Module kEndModule = { 0 };
-+NSMODULE_DEFN(end_kPStaticModules) = &kEndModule;
-diff --git a/toolkit/library/StaticXULComponentsStart.cpp b/toolkit/library/StaticXULComponentsStart.cpp
---- a/toolkit/library/StaticXULComponentsStart.cpp
-+++ b/toolkit/library/StaticXULComponentsStart.cpp
-@@ -1,3 +1,4 @@
- #include "mozilla/Module.h"
-
--NSMODULE_DEFN(start_kPStaticModules) = nullptr;
-+static const mozilla::Module kStartModule = { 0 };
-+NSMODULE_DEFN(start_kPStaticModules) = &kStartModule;
--- a/components/desktop/thunderbird/patches/firefox-43-xpcom.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-Solaris-specific patch. Adds if def(SOLARIS) case.
-Do not plan to send upstream.
-
-diff --git a/xpcom/base/nsUUIDGenerator.cpp b/xpcom/base/nsUUIDGenerator.cpp
---- a/xpcom/base/nsUUIDGenerator.cpp
-+++ b/xpcom/base/nsUUIDGenerator.cpp
-@@ -11,17 +11,17 @@
- #include <CoreFoundation/CoreFoundation.h>
- #else
- #include <stdlib.h>
- #include "prrng.h"
- #endif
-
- #include "nsUUIDGenerator.h"
-
--#ifdef ANDROID
-+#if defined(ANDROID) || defined(SOLARIS)
- extern "C" NS_EXPORT void arc4random_buf(void*, size_t);
- #endif
-
- using namespace mozilla;
-
- NS_IMPL_ISUPPORTS(nsUUIDGenerator, nsIUUIDGenerator)
-
- nsUUIDGenerator::nsUUIDGenerator()
--- a/components/desktop/thunderbird/patches/firefox-44-readahead.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-In-house patch for firefox to build with GNU compilers.
-With GNU compiler, we have hunspell_fopen_hooks.h included
-through mozilla-config.h.
-But we don't have an implementation for mozilla::ReadAheadFile().
-Do not plan to send upstream.
-
-diff --git a/xpcom/glue/FileUtils.cpp b/xpcom/glue/FileUtils.cpp
---- a/xpcom/glue/FileUtils.cpp
-+++ b/xpcom/glue/FileUtils.cpp
-@@ -481,17 +481,17 @@ mozilla::ReadAheadFile(mozilla::pathstr_
- }
- if (fd == INVALID_HANDLE_VALUE) {
- return;
- }
- ReadAhead(fd, aOffset, aCount);
- if (!aOutFd) {
- CloseHandle(fd);
- }
--#elif defined(LINUX) && !defined(ANDROID) || defined(XP_MACOSX)
-+#elif defined(LINUX) && !defined(ANDROID) || defined(XP_MACOSX) || defined(SOLARIS)
- if (!aFilePath) {
- if (aOutFd) {
- *aOutFd = -1;
- }
- return;
- }
- int fd = open(aFilePath, O_RDONLY);
- if (aOutFd) {
--- a/components/desktop/thunderbird/patches/firefox-45-wifi-scanner.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-Convert variable int mac_as_int to char.
-Do not plan to send upstream.
-
-diff --git a/netwerk/wifi/nsWifiScannerSolaris.cpp b/netwerk/wifi/nsWifiScannerSolaris.cpp
---- a/netwerk/wifi/nsWifiScannerSolaris.cpp
-+++ b/netwerk/wifi/nsWifiScannerSolaris.cpp
-@@ -28,47 +28,52 @@ static val_strength_t strength_vals[] =
- { "good", -68 },
- { "very good", -40 },
- { "excellent", -16 }
- };
-
- static nsWifiAccessPoint *
- do_parse_str(char *bssid_str, char *essid_str, char *strength)
- {
-- unsigned char mac_as_int[6] = { 0 };
-+ unsigned int mac_as_int[6] = { 0 };
-+ unsigned char mac_as_byte[6] = { 0 };
- sscanf(bssid_str, "%x:%x:%x:%x:%x:%x", &mac_as_int[0], &mac_as_int[1],
- &mac_as_int[2], &mac_as_int[3], &mac_as_int[4], &mac_as_int[5]);
-
-+ for (uint32_t i = 0; i < 6; i++) {
-+ mac_as_byte[i] = mac_as_int[i];
-+ }
-+
- int signal = 0;
- uint32_t strength_vals_count = sizeof(strength_vals) / sizeof (val_strength_t);
- for (uint32_t i = 0; i < strength_vals_count; i++) {
- if (!strncasecmp(strength, strength_vals[i].strength_name, DLADM_STRSIZE)) {
- signal = strength_vals[i].signal_value;
- break;
- }
- }
-
- nsWifiAccessPoint *ap = new nsWifiAccessPoint();
- if (ap) {
-- ap->setMac(mac_as_int);
-+ ap->setMac(mac_as_byte);
- ap->setSignal(signal);
- ap->setSSID(essid_str, PL_strnlen(essid_str, DLADM_STRSIZE));
- }
- return ap;
- }
-
- static void
- do_dladm(nsCOMArray<nsWifiAccessPoint> &accessPoints)
- {
- GError *err = nullptr;
- char *sout = nullptr;
- char *serr = nullptr;
- int exit_status = 0;
- char * dladm_args[] = { "/usr/bin/pfexec", "/usr/sbin/dladm",
-- "scan-wifi", "-p", "-o", "BSSID,ESSID,STRENGTH" };
-+ "scan-wifi", "-p", "-o", "BSSID,ESSID,STRENGTH", 0 };
-
- gboolean rv = g_spawn_sync("/", dladm_args, nullptr, (GSpawnFlags)0, nullptr,
- nullptr, &sout, &serr, &exit_status, &err);
- if (rv && !exit_status) {
- char wlan[DLADM_SECTIONS][DLADM_STRSIZE+1];
- uint32_t section = 0;
- uint32_t sout_scan = 0;
- uint32_t wlan_put = 0;
---- a/dom/system/NetworkGeolocationProvider.js 2015-09-13 14:24:44.290458254 +0800
-+++ b/dom/system/NetworkGeolocationProvider.js 2015-09-13 14:24:52.938673937 +0800
-@@ -29,7 +29,7 @@
- data and xhr it to the location server.
- */
-
--var gLocationRequestTimeout = 5000;
-+var gLocationRequestTimeout = 30000;
-
- var gWifiScanningEnabled = true;
- var gCellScanningEnabled = false;
--- a/components/desktop/thunderbird/patches/firefox-47-unreachable.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-In house patch, will not send upstream.
-ERR() function is already defined elsewhere.
-
---- mozilla-esr38/gfx/angle/src/common/debug.h 2015-10-26 15:49:18.755193254 -0700
-+++ mozilla-esr38/gfx/angle/src/common/debug.h 2015-10-26 15:48:39.108802848 -0700
-@@ -57,9 +57,9 @@ namespace gl
-
- // A macro to output a function call and its arguments to the debugging log, in case of error.
- #if defined(ANGLE_TRACE_ENABLED)
--#define ERR(message, ...) gl::trace(false, gl::MESSAGE_ERR, "err: %s(%d): " message "\n", __FUNCTION__, __LINE__, ##__VA_ARGS__)
-+#define FFERR(message, ...) gl::trace(false, gl::MESSAGE_ERR, "err: %s(%d): " message "\n", __FUNCTION__, __LINE__, ##__VA_ARGS__)
- #else
--#define ERR(message, ...) (void(0))
-+#define FFERR(message, ...) (void(0))
- #endif
-
- // A macro to log a performance event around a scope.
-@@ -105,7 +105,7 @@ namespace gl
- #if !defined(NDEBUG)
- #define ASSERT(expression) { \
- if(!(expression)) \
-- ERR("\t! Assert failed in %s(%d): "#expression"\n", __FUNCTION__, __LINE__); \
-+ FFERR("\t! Assert failed in %s(%d): "#expression"\n", __FUNCTION__, __LINE__); \
- assert(expression); \
- } ANGLE_EMPTY_STATEMENT
- #define UNUSED_ASSERTION_VARIABLE(variable)
-@@ -144,11 +144,11 @@ namespace gl
- // A macro for code which is not expected to be reached under valid assumptions
- #if !defined(NDEBUG)
- #define UNREACHABLE() { \
-- ERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__); \
-+ FFERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__); \
- assert(false); \
- } ANGLE_EMPTY_STATEMENT
- #else
-- #define UNREACHABLE() ERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__)
-+ #define UNREACHABLE() FFERR("\t! Unreachable reached: %s(%d)\n", __FUNCTION__, __LINE__)
- #endif
-
- #endif // COMMON_DEBUG_H_
--- a/components/desktop/thunderbird/patches/firefox-48-donot-disable-locale-addon.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-By default, Firefox disables the installation of 3rd party add-ons, including
-language packs. We want to enable language packs by default, so set
-this to enable add-ons that are bundled with Firefox but will still disable
-third-party add-ons for security.
-Solaris specific patch, will not send upstream.
-
-diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
-index 5ef66c9..7dcd0f5 100644
---- a/browser/app/profile/firefox.js
-+++ b/browser/app/profile/firefox.js
-@@ -61,7 +61,7 @@ pref("extensions.hotfix.certs.1.sha1Fingerprint", "F1:DB:F9:6A:7B:B8:04:FA:48:3C
-
- // Disable add-ons that are not installed by the user in all scopes by default.
- // See the SCOPE constants in AddonManager.jsm for values to use here.
--pref("extensions.autoDisableScopes", 15);
-+pref("extensions.autoDisableScopes", 11);
-
- // Dictionary download preference
- pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/dictionaries/");
--- a/components/desktop/thunderbird/patches/firefox-49-freebl-as.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-#
-# Building freebl should use the supplied top level compiler to drive the
-# assembler and not whichever gcc it happens to pick up.
-#
---- a/security/nss/lib/freebl/Makefile Mon Dec 21 14:32:54 2015
-+++ b/security/nss/lib/freebl/Makefile Sun Apr 3 18:03:44 2016
-@@ -426,8 +426,8 @@
- else
- # Solaris for non-sparc family CPUs
- ifdef NS_USE_GCC
-- LD = gcc
-- AS = gcc
-+ LD = $(CC)
-+ AS = $(CC)
- ASFLAGS = -x assembler-with-cpp
- endif
- ifeq ($(USE_64),1)
--- a/components/desktop/thunderbird/patches/firefox-49-npapi.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-Needed to get flash plugin working.
-
-diff --git a/dom/plugins/base/npapi.h b/dom/plugins/base/npapi.h
-index 0968651..238ffb3 100644
---- a/dom/plugins/base/npapi.h
-+++ b/dom/plugins/base/npapi.h
-@@ -334,7 +334,7 @@ typedef enum {
- * gcc 3.x generated vtables on UNIX and OSX are incompatible with
- * previous compilers.
- */
--#if (defined(XP_UNIX) && defined(__GNUC__) && (__GNUC__ >= 3))
-+#if (defined(XP_UNIX) && defined(__GNUC__) && (__GNUC__ >= 3) && !defined(OS_SOLARIS))
- #define _NP_ABI_MIXIN_FOR_GCC3 NP_ABI_GCC3_MASK
- #else
- #define _NP_ABI_MIXIN_FOR_GCC3 0
--- a/components/desktop/thunderbird/patches/firefox-50-arc4random.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-ARC4RANDOM_EXPORT is defined as extern. Fixes issues in arc4random and libevent.
-Solaris specific changes, will not send upstream.
-
---- a/ipc/chromium/src/third_party/libevent/arc4random.c 2016-03-01 09:29:36.602447178 -0800
-+++ b/ipc/chromium/src/third_party/libevent/arc4random.c 2016-03-01 10:17:51.627857034 -0800
-@@ -445,8 +445,8 @@ arc4random_stir(void)
- #endif
-
- #ifndef ARC4RANDOM_NOADDRANDOM
--ARC4RANDOM_EXPORT void
--arc4random_addrandom(const unsigned char *dat, int datlen)
-+extern void
-+arc4random_addrandom(uchar_t *dat, size_t datlen)
- {
- int j;
- _ARC4_LOCK();
-@@ -477,7 +477,7 @@ arc4random(void)
- }
- #endif
-
--ARC4RANDOM_EXPORT void
-+extern void
- arc4random_buf(void *_buf, size_t n)
- {
- unsigned char *buf = _buf;
---- a/config/system-headers 2015-11-03 11:34:17.000000000 +0100
-+++ b/config/system-headers 2015-11-09 03:34:24.577525000 +0100
-@@ -1064,7 +1064,6 @@
- sys/stat.h
- sys/statvfs.h
- sys/syscall.h
--sys/sysctl.h
- sys/sysinfo.h
- sys/sysmp.h
- sys/syssgi.h
---- a/ipc/chromium/src/third_party/libevent/arc4random.c 2016-03-23 11:47:53.743867536 -0700
-+++ b/ipc/chromium/src/third_party/libevent/arc4random.c 2016-03-23 11:48:38.956865864 -0700
-@@ -41,6 +41,10 @@
- * RC4 is a registered trademark of RSA Laboratories.
- */
-
-+#if defined (OS_SOLARIS)
-+#undef _EVENT_HAVE_SYS_SYSCTL_H
-+#endif
-+
- #ifndef ARC4RANDOM_EXPORT
- #define ARC4RANDOM_EXPORT
- #endif
-@@ -59,7 +61,7 @@
- #include <sys/param.h>
- #include <sys/time.h>
- #ifdef _EVENT_HAVE_SYS_SYSCTL_H
--#include <sys/sysctl.h>
-+;//#include <sys/sysctl.h>
- #endif
- #endif
- #include <limits.h>
---- a/ipc/chromium/moz.build 2016-03-28 13:41:06.878922929 -0700
-+++ b/ipc/chromium/moz.build 2016-03-28 13:42:04.555448660 -0700
-@@ -161,6 +161,23 @@ if os_bsd or os_linux:
- 'src/base/message_pump_qt.cc',
- ]
-
-+if os_solaris:
-+ SOURCES += [
-+ 'src/base/atomicops_internals_x86_gcc.cc',
-+ 'src/base/idle_timer_none.cc',
-+ 'src/base/process_util_linux.cc',
-+ 'src/base/time_posix.cc',
-+ ]
-+ if CONFIG['MOZ_WIDGET_GTK']:
-+ SOURCES += [
-+ 'src/base/message_pump_glib.cc',
-+ ]
-+ if not CONFIG['MOZ_NATIVE_LIBEVENT']:
-+ SOURCES += [
-+ 'src/third_party/libevent/devpoll.c',
-+ ]
-+ LOCAL_INCLUDES += ['src/third_party/libevent/solaris']
-+
- ost = CONFIG['OS_TEST']
- if '86' not in ost and 'arm' not in ost and 'mips' not in ost:
- SOURCES += [
-diff a/ipc/chromium/src/third_party/libeventcommon.mozbuild b/ipc/chromium/src/third_party/libeventcommon.mozbuild
---- a/ipc/chromium/src/third_party/libeventcommon.mozbuild 2015-11-03 11:34:14.000000000 +0100
-+++ b/ipc/chromium/src/third_party/libeventcommon.mozbuild 2015-11-09 03:34:24.579311000 +0100
-@@ -9,6 +9,7 @@
- os_openbsd = 0
- os_bsd = 0
- os_linux = 0
-+os_solaris = 0
-
- if CONFIG['OS_ARCH'] == 'WINNT':
- os_win = 1
-@@ -21,6 +22,9 @@ else:
- 'NetBSD', 'OpenBSD']:
- os_bsd = 1
- libevent_include_suffix = 'bsd'
-+ elif CONFIG['OS_ARCH'] == 'SunOS':
-+ os_solaris = 1
-+ libevent_include_suffix = 'solaris'
- else:
- os_linux = 1
- if CONFIG['OS_TARGET'] == 'Android':
-diff a/ipc/chromium/src/third_party/libevent/event.c b/ipc/chromium/src/third_party/libevent/event.c
---- a/ipc/chromium/src/third_party/libevent/event.c 2015-11-03 11:34:14.000000000 +0100
-+++ b/ipc/chromium/src/third_party/libevent/event.c 2015-11-09 03:34:24.485030000 +0100
-@@ -70,7 +70,7 @@
- #include "util-internal.h"
-
- #ifdef _EVENT_HAVE_EVENT_PORTS
--extern const struct eventop evportops;
-+//extern const struct eventop evportops;
- #endif
- #ifdef _EVENT_HAVE_SELECT
- extern const struct eventop selectops;
-@@ -79,7 +79,7 @@ extern const struct eventop selectops;
- extern const struct eventop pollops;
- #endif
- #ifdef _EVENT_HAVE_EPOLL
--extern const struct eventop epollops;
-+//extern const struct eventop epollops;
- #endif
- #ifdef _EVENT_HAVE_WORKING_KQUEUE
- extern const struct eventop kqops;
-@@ -94,13 +94,13 @@ extern const struct eventop win32ops;
- /* Array of backends in order of preference. */
- static const struct eventop *eventops[] = {
- #ifdef _EVENT_HAVE_EVENT_PORTS
-- &evportops,
-+ //&evportops,
- #endif
- #ifdef _EVENT_HAVE_WORKING_KQUEUE
- &kqops,
- #endif
- #ifdef _EVENT_HAVE_EPOLL
-- &epollops,
-+ //&epollops,
- #endif
- #ifdef _EVENT_HAVE_DEVPOLL
- &devpollops,
-@@ -2883,8 +2883,8 @@
- #endif
- if (evsig_global_setup_locks_(enable_locks) < 0)
- return -1;
-- if (evutil_secure_rng_global_setup_locks_(enable_locks) < 0)
-- return -1;
-+// if (evutil_secure_rng_global_setup_locks_(enable_locks) < 0)
-+// return -1;
- return 0;
- }
- #endif
--- a/components/desktop/thunderbird/patches/firefox-51-atomicops.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-Fixes issues in atomic operations.
-Will not send upstream.
-
---- a/toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_solaris.h 2015-11-03 11:34:16.000000000 +0100
-+++ b/toolkit/components/protobuf/src/google/protobuf/stubs/atomicops_internals_solaris.h 2015-11-10 04:19:53.044083000 +0100
-@@ -1,5 +1,4 @@
--// Copyright 2014 Google Inc. All rights reserved.
--// https://developers.google.com/protocol-buffers/
-+// Copyright 2013 Red Hat Inc. All rights reserved.
- //
- // Redistribution and use in source and binary forms, with or without
- // modification, are permitted provided that the following conditions are
-@@ -11,7 +10,7 @@
- // copyright notice, this list of conditions and the following disclaimer
- // in the documentation and/or other materials provided with the
- // distribution.
--// * Neither the name of Google Inc. nor the names of its
-+// * Neither the name of Red Hat Inc. nor the names of its
- // contributors may be used to endorse or promote products derived from
- // this software without specific prior written permission.
- //
-@@ -29,10 +28,8 @@
-
- // This file is an internal atomic implementation, use atomicops.h instead.
-
--#ifndef GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_SPARC_GCC_H_
--#define GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_SPARC_GCC_H_
--
--#include <atomic.h>
-+#ifndef GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_GENERIC_GCC_H_
-+#define GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_GENERIC_GCC_H_
-
- namespace google {
- namespace protobuf {
-@@ -41,148 +38,100 @@
- inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
- Atomic32 old_value,
- Atomic32 new_value) {
-- return (Atomic32)atomic_cas_32((volatile uint32_t*)ptr, (uint32_t)old_value, (uint32_t)new_value);
-+ __atomic_compare_exchange_n(ptr, &old_value, new_value, true,
-+ __ATOMIC_RELAXED, __ATOMIC_RELAXED);
-+ return old_value;
- }
-
- inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
- Atomic32 new_value) {
-- return (Atomic32)atomic_swap_32((volatile uint32_t*)ptr, (uint32_t)new_value);
-+ return __atomic_exchange_n(ptr, new_value, __ATOMIC_RELAXED);
- }
-
- inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
- Atomic32 increment) {
-- return (Atomic32)atomic_add_32_nv((volatile uint32_t*)ptr, (uint32_t)increment);
--}
--
--inline void MemoryBarrier(void) {
-- membar_producer();
-- membar_consumer();
-+ return __atomic_add_fetch(ptr, increment, __ATOMIC_RELAXED);
- }
-
- inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
- Atomic32 increment) {
-- MemoryBarrier();
-- Atomic32 ret = NoBarrier_AtomicIncrement(ptr, increment);
-- MemoryBarrier();
--
-- return ret;
-+ return __atomic_add_fetch(ptr, increment, __ATOMIC_SEQ_CST);
- }
-
- inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
- Atomic32 old_value,
- Atomic32 new_value) {
-- Atomic32 ret = NoBarrier_CompareAndSwap(ptr, old_value, new_value);
-- MemoryBarrier();
--
-- return ret;
-+ __atomic_compare_exchange(ptr, &old_value, &new_value, true,
-+ __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE);
-+ return old_value;
- }
-
- inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
- Atomic32 old_value,
- Atomic32 new_value) {
-- MemoryBarrier();
-- return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
-+ __atomic_compare_exchange_n(ptr, &old_value, new_value, true,
-+ __ATOMIC_RELEASE, __ATOMIC_ACQUIRE);
-+ return old_value;
- }
-
- inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
-- *ptr = value;
-+ __atomic_store_n(ptr, value, __ATOMIC_RELAXED);
-+}
-+
-+inline void MemoryBarrier() {
-+ __sync_synchronize();
- }
-
- inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
-- *ptr = value;
-- membar_producer();
-+ __atomic_store_n(ptr, value, __ATOMIC_SEQ_CST);
- }
-
- inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
-- membar_consumer();
-- *ptr = value;
-+ __atomic_store_n(ptr, value, __ATOMIC_RELEASE);
- }
-
- inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
-- return *ptr;
-+ return __atomic_load_n(ptr, __ATOMIC_RELAXED);
- }
-
- inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
-- Atomic32 val = *ptr;
-- membar_consumer();
-- return val;
-+ return __atomic_load_n(ptr, __ATOMIC_ACQUIRE);
- }
-
- inline Atomic32 Release_Load(volatile const Atomic32* ptr) {
-- membar_producer();
-- return *ptr;
-+ return __atomic_load_n(ptr, __ATOMIC_SEQ_CST);
- }
-
--#ifdef GOOGLE_PROTOBUF_ARCH_64_BIT
--inline Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr,
-- Atomic64 old_value,
-- Atomic64 new_value) {
-- return atomic_cas_64((volatile uint64_t*)ptr, (uint64_t)old_value, (uint64_t)new_value);
--}
-+#ifdef __LP64__
-
--inline Atomic64 NoBarrier_AtomicExchange(volatile Atomic64* ptr, Atomic64 new_value) {
-- return atomic_swap_64((volatile uint64_t*)ptr, (uint64_t)new_value);
--}
--
--inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr, Atomic64 increment) {
-- return atomic_add_64_nv((volatile uint64_t*)ptr, increment);
-+inline void Release_Store(volatile Atomic64* ptr, Atomic64 value) {
-+ __atomic_store_n(ptr, value, __ATOMIC_RELEASE);
- }
-
--inline Atomic64 Barrier_AtomicIncrement(volatile Atomic64* ptr, Atomic64 increment) {
-- MemoryBarrier();
-- Atomic64 ret = atomic_add_64_nv((volatile uint64_t*)ptr, increment);
-- MemoryBarrier();
-- return ret;
-+inline Atomic64 Acquire_Load(volatile const Atomic64* ptr) {
-+ return __atomic_load_n(ptr, __ATOMIC_ACQUIRE);
- }
-
- inline Atomic64 Acquire_CompareAndSwap(volatile Atomic64* ptr,
- Atomic64 old_value,
- Atomic64 new_value) {
-- Atomic64 ret = NoBarrier_CompareAndSwap(ptr, old_value, new_value);
-- MemoryBarrier();
-- return ret;
-+ __atomic_compare_exchange_n(ptr, &old_value, new_value, true,
-+ __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE);
-+ return old_value;
- }
-
--inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
-+inline Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr,
- Atomic64 old_value,
- Atomic64 new_value) {
-- MemoryBarrier();
-- return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
--}
--
--inline void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value) {
-- *ptr = value;
--}
--
--inline void Acquire_Store(volatile Atomic64* ptr, Atomic64 value) {
-- *ptr = value;
-- membar_producer();
-+ __atomic_compare_exchange_n(ptr, &old_value, new_value, true,
-+ __ATOMIC_RELAXED, __ATOMIC_RELAXED);
-+ return old_value;
- }
-
--inline void Release_Store(volatile Atomic64* ptr, Atomic64 value) {
-- membar_consumer();
-- *ptr = value;
--}
--
--inline Atomic64 NoBarrier_Load(volatile const Atomic64* ptr) {
-- return *ptr;
--}
--
--inline Atomic64 Acquire_Load(volatile const Atomic64* ptr) {
-- Atomic64 ret = *ptr;
-- membar_consumer();
-- return ret;
--}
--
--inline Atomic64 Release_Load(volatile const Atomic64* ptr) {
-- membar_producer();
-- return *ptr;
--}
--#endif
-+#endif // defined(__LP64__)
-
- } // namespace internal
- } // namespace protobuf
- } // namespace google
-
--#endif // GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_SPARC_GCC_H_
--
-+#endif // GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_GENERIC_GCC_H_
--- a/components/desktop/thunderbird/patches/firefox-52-sincos.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-DS is defined elsewhere, as is HAVE_SINCOS. Will not send upstream.
-
---- a/js/src/jsmath.cpp 2016-03-22 13:29:37.873777320 -0700
-+++ b/js/src/jsmath.cpp 2016-03-22 13:29:55.750437374 -0700
-@@ -919,7 +919,7 @@ js::math_sincos_uncached(double x, doubl
- {
- #if defined(__GLIBC__)
- sincos(x, sin, cos);
--#elif defined(HAVE_SINCOS)
-+#elif defined(_HAVE_SINCOS)
- __sincos(x, sin, cos);
- #else
- *sin = js::math_sin_uncached(x);
---- a/dom/canvas/WebGLFormats.cpp 2016-03-22 12:40:33.085785762 -0700
-+++ b/dom/canvas/WebGLFormats.cpp 2016-03-22 12:40:59.650189892 -0700
-@@ -156,7 +156,7 @@ AddFormatInfo(EffectiveFormat format, co
- hasStencil = true;
- break;
-
-- case UnsizedFormat::DS:
-+ case UnsizedFormat::XDS:
- hasDepth = true;
- hasStencil = true;
- break;
-@@ -241,8 +241,8 @@ InitFormatInfo()
- AddFormatInfo(FOO(DEPTH_COMPONENT16 ), 2, UnsizedFormat::D , false, ComponentType::NormUInt);
- AddFormatInfo(FOO(DEPTH_COMPONENT24 ), 3, UnsizedFormat::D , false, ComponentType::NormUInt);
- AddFormatInfo(FOO(DEPTH_COMPONENT32F), 4, UnsizedFormat::D , false, ComponentType::Float);
-- AddFormatInfo(FOO(DEPTH24_STENCIL8 ), 4, UnsizedFormat::DS, false, ComponentType::Special);
-- AddFormatInfo(FOO(DEPTH32F_STENCIL8 ), 5, UnsizedFormat::DS, false, ComponentType::Special);
-+ AddFormatInfo(FOO(DEPTH24_STENCIL8 ), 4, UnsizedFormat::XDS, false, ComponentType::Special);
-+ AddFormatInfo(FOO(DEPTH32F_STENCIL8 ), 5, UnsizedFormat::XDS, false, ComponentType::Special);
-
- // GLES 3.0.4, p205-206, "Required Renderbuffer Formats"
- AddFormatInfo(FOO(STENCIL_INDEX8), 1, UnsizedFormat::S, false, ComponentType::UInt);
---- a/dom/canvas/WebGLFormats.h 2016-03-22 12:39:45.933021022 -0700
-+++ b/dom/canvas/WebGLFormats.h 2016-03-22 12:40:19.073659489 -0700
-@@ -158,7 +158,7 @@ enum class UnsizedFormat : uint8_t {
- A,
- D,
- S,
-- DS,
-+ XDS,
- };
-
- // GLES 3.0.4 p114 Table 3.4, p240
--- a/components/desktop/thunderbird/patches/firefox-53-sparc-gfx-atomicops.patch Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-Fixes endian issue in GFX on sparc and fixes atomic operations.
-Will not send upstream, sparc specific.
-
-diff --git a/js/src/jit/AtomicOperations.h b/js/src/jit/AtomicOperations.h
---- a/js/src/jit/AtomicOperations.h
-+++ b/js/src/jit/AtomicOperations.h
-@@ -297,17 +297,17 @@ AtomicOperations::isLockfree(int32_t siz
- #if defined(JS_CODEGEN_ARM)
- # include "jit/arm/AtomicOperations-arm.h"
- #elif defined(JS_CODEGEN_ARM64)
- # include "jit/arm64/AtomicOperations-arm64.h"
- #elif defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_MIPS64)
- # include "jit/mips-shared/AtomicOperations-mips-shared.h"
- #elif defined(__ppc64__) || defined(__PPC64_) \
- || defined(__ppc64le__) || defined(__PPC64LE__) \
-- || defined(__ppc__) || defined(__PPC__)
-+ || defined(__ppc__) || defined(__PPC__) || defined(__sparc)
- # include "jit/none/AtomicOperations-ppc.h"
- #elif defined(JS_CODEGEN_NONE)
- # include "jit/none/AtomicOperations-none.h"
- #elif defined(JS_CODEGEN_X86) || defined(JS_CODEGEN_X64)
- # include "jit/x86-shared/AtomicOperations-x86-shared.h"
- #else
- # error "Atomic operations must be defined for this platform"
- #endif
---- a/gfx/2d/Types.h Tue May 3 14:20:54 2016
-+++ b/gfx/2d/Types.h Tue May 3 13:43:00 2016
-@@ -61,15 +61,8 @@
- // The following values are endian-independent synonyms. The _UINT32 suffix
- // indicates that the name reflects the layout when viewed as a uint32_t
- // value.
--#if MOZ_LITTLE_ENDIAN
- A8R8G8B8_UINT32 = B8G8R8A8, // 0xAARRGGBB
- X8R8G8B8_UINT32 = B8G8R8X8 // 0x00RRGGBB
--#elif MOZ_BIG_ENDIAN
-- A8R8G8B8_UINT32 = A8R8G8B8, // 0xAARRGGBB
-- X8R8G8B8_UINT32 = X8R8G8B8 // 0x00RRGGBB
--#else
--# error "bad endianness"
--#endif
- };
-
- inline bool IsOpaque(SurfaceFormat aFormat)
--- a/components/desktop/thunderbird/test/results-32.master Fri Sep 30 21:33:56 2016 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-make[1]: Entering directory '$(@D)/js/src'
-../../dist/bin/run-mozilla.sh $(@D)/_virtualenv/bin/python -u $(SOURCE_DIR)/mozilla/js/src/jit-test/jit_test.py \
- --no-slow --no-progress --format=automation --jitflags=all -j 2 -f \
- \
- \
- ../../dist/bin/js
-$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
-Stack:
- test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
- @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
-Exit code: 3
-FAIL - ctypes/conversion-native-function.js
-TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "")
-INFO exit-status : 3
-INFO timed-out : False
-INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
-INFO stderr 2> Stack:
-INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
-INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
-$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
-Stack:
- test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
- @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
-Exit code: 3
-FAIL - ctypes/conversion-native-function.js
-TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "--ion-eager --ion-offthread-compile=off")
-INFO exit-status : 3
-INFO timed-out : False
-INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
-INFO stderr 2> Stack:
-INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
-INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
-$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
-Stack:
- test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
- @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
-Exit code: 3
-FAIL - ctypes/conversion-native-function.js
-TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "--ion-eager --ion-offthread-compile=off --non-writable-jitcode --ion-check-range-analysis --ion-extra-checks --no-sse3 --no-threads")
-INFO exit-status : 3
-INFO timed-out : False
-INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
-INFO stderr 2> Stack:
-INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
-INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
-$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
-Stack:
- test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
- @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
-Exit code: 3
-FAIL - ctypes/conversion-native-function.js
-TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "--baseline-eager")
-INFO exit-status : 3
-INFO timed-out : False
-INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
-INFO stderr 2> Stack:
-INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
-INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
-$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
-Stack:
- test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
- @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
-Exit code: 3
-FAIL - ctypes/conversion-native-function.js
-TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "--baseline-eager --no-fpu")
-INFO exit-status : 3
-INFO timed-out : False
-INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
-INFO stderr 2> Stack:
-INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
-INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
-$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
-Stack:
- test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
- @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
-Exit code: 3
-FAIL - ctypes/conversion-native-function.js
-TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "--no-baseline --no-ion")
-INFO exit-status : 3
-INFO timed-out : False
-INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
-INFO stderr 2> Stack:
-INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
-INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
-FAILURES:
- $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
- $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --ion-eager --ion-offthread-compile=off -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
- $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --ion-extra-checks --non-writable-jitcode --ion-check-range-analysis --ion-offthread-compile=off --no-threads --ion-eager --no-sse3 -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
- $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --baseline-eager -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
- $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --baseline-eager --no-fpu -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
- $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --no-baseline --no-ion -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
-TIMEOUTS:
-Result summary:
-Passed: 29675
-Failed: 6
-Makefile:110: recipe for target 'check-jit-test' failed
-make[1]: *** [check-jit-test] Error 2
-make[1]: Leaving directory '$(@D)/js/src'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/desktop/thunderbird/test/results-i386.master Thu Sep 22 15:38:45 2016 -0700
@@ -0,0 +1,97 @@
+make[1]: Entering directory '$(@D)/js/src'
+../../dist/bin/run-mozilla.sh $(@D)/_virtualenv/bin/python -u $(SOURCE_DIR)/mozilla/js/src/jit-test/jit_test.py \
+ --no-slow --no-progress --format=automation --jitflags=all -j 2 -f \
+ \
+ \
+ ../../dist/bin/js
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+Stack:
+ test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+Exit code: 3
+FAIL - ctypes/conversion-native-function.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+INFO stderr 2> Stack:
+INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+Stack:
+ test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+Exit code: 3
+FAIL - ctypes/conversion-native-function.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "--ion-eager --ion-offthread-compile=off")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+INFO stderr 2> Stack:
+INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+Stack:
+ test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+Exit code: 3
+FAIL - ctypes/conversion-native-function.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "--ion-eager --ion-offthread-compile=off --non-writable-jitcode --ion-check-range-analysis --ion-extra-checks --no-sse3 --no-threads")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+INFO stderr 2> Stack:
+INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+Stack:
+ test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+Exit code: 3
+FAIL - ctypes/conversion-native-function.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "--baseline-eager")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+INFO stderr 2> Stack:
+INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+Stack:
+ test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+Exit code: 3
+FAIL - ctypes/conversion-native-function.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "--baseline-eager --no-fpu")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+INFO stderr 2> Stack:
+INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+Stack:
+ test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+Exit code: 3
+FAIL - ctypes/conversion-native-function.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "--no-baseline --no-ion")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+INFO stderr 2> Stack:
+INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+FAILURES:
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --ion-eager --ion-offthread-compile=off -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --ion-extra-checks --non-writable-jitcode --ion-check-range-analysis --ion-offthread-compile=off --no-threads --ion-eager --no-sse3 -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --baseline-eager -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --baseline-eager --no-fpu -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --no-baseline --no-ion -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
+TIMEOUTS:
+Result summary:
+Passed: 29681
+Failed: 6
+make[1]: *** [Makefile:110: check-jit-test] Error 2
+make[1]: Leaving directory '$(@D)/js/src'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/desktop/thunderbird/test/results-sparc.master Thu Sep 22 15:38:45 2016 -0700
@@ -0,0 +1,781 @@
+make[1]: Entering directory '$(@D)/js/src'
+../../dist/bin/run-mozilla.sh $(@D)/_virtualenv/bin/python -u $(SOURCE_DIR)/mozilla/js/src/jit-test/jit_test.py \
+ --no-slow --no-progress --format=automation --jitflags=all -j 2 -f \
+ \
+ \
+ ../../dist/bin/js
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1
+Exit code: 3
+FAIL - asm.js/testHeapAccess.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/asm.js/testHeapAccess.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127 (code 3, args "")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1
+Exit code: 3
+FAIL - asm.js/testHeapAccess.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/asm.js/testHeapAccess.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127 (code 3, args "--ion-eager --ion-offthread-compile=off --non-writable-jitcode --ion-check-range-analysis --ion-extra-checks --no-sse3 --no-threads")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1
+Exit code: 3
+FAIL - asm.js/testHeapAccess.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/asm.js/testHeapAccess.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127 (code 3, args "--ion-eager --ion-offthread-compile=off")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1
+Exit code: 3
+FAIL - asm.js/testHeapAccess.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/asm.js/testHeapAccess.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127 (code 3, args "--baseline-eager")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1
+Exit code: 3
+FAIL - asm.js/testHeapAccess.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/asm.js/testHeapAccess.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127 (code 3, args "--baseline-eager --no-fpu")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1
+Exit code: 3
+FAIL - asm.js/testHeapAccess.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/asm.js/testHeapAccess.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127 (code 3, args "--no-baseline --no-ion")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1
+Exit code: 3
+FAIL - asm.js/testHeapAccess.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/asm.js/testHeapAccess.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127 (code 3, args "--no-asmjs")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1 Error: Assertion failed: got 0, expected 127
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js:24:1
+Cannot find `BRDA:3,0,0,1` in the following Lcov result:
+ TN:Compartment_5fd1ebdc00
+SF:$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js line 60 > eval
+FN:1,top-level
+FNDA:1,top-level
+FNF:1
+FNH:1
+BRDA:3,0,0,0
+BRDA:3,0,1,-
+BRF:2
+BRH:1
+DA:2,1
+DA:3,1
+DA:4,0
+DA:5,1
+LF:4
+LH:3
+end_of_record
+
+In the following source:
+ //FN:$,top-level //FNDA:1,%
+ var l = ",".split(','); //DA:$,1
+ if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,-
+ l.push(''); //DA:$,0
+ l.pop(); //DA:$,1
+ //FNF:1
+ //FNH:1
+ //LF:4
+ //LH:3
+ //BRF:2
+ //BRH:1
+
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false
+Stack:
+ checkLcov@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:104:1
+Exit code: 3
+FAIL - coverage/simple.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/coverage/simple.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false (code 3, args "--code-coverage")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stdout > Cannot find `BRDA:3,0,0,1` in the following Lcov result:
+INFO stdout > TN:Compartment_5fd1ebdc00
+INFO stdout > SF:$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js line 60 > eval
+INFO stdout > FN:1,top-level
+INFO stdout > FNDA:1,top-level
+INFO stdout > FNF:1
+INFO stdout > FNH:1
+INFO stdout > BRDA:3,0,0,0
+INFO stdout > BRDA:3,0,1,-
+INFO stdout > BRF:2
+INFO stdout > BRH:1
+INFO stdout > DA:2,1
+INFO stdout > DA:3,1
+INFO stdout > DA:4,0
+INFO stdout > DA:5,1
+INFO stdout > LF:4
+INFO stdout > LH:3
+INFO stdout > end_of_record
+INFO stdout >
+INFO stdout > In the following source:
+INFO stdout > //FN:$,top-level //FNDA:1,%
+INFO stdout > var l = ",".split(','); //DA:$,1
+INFO stdout > if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,-
+INFO stdout > l.push(''); //DA:$,0
+INFO stdout > l.pop(); //DA:$,1
+INFO stdout > //FNF:1
+INFO stdout > //FNH:1
+INFO stdout > //LF:4
+INFO stdout > //LH:3
+INFO stdout > //BRF:2
+INFO stdout > //BRH:1
+INFO stdout >
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false
+INFO stderr 2> Stack:
+INFO stderr 2> checkLcov@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:104:1
+Cannot find `BRDA:3,0,0,1` in the following Lcov result:
+ TN:Compartment_5fcccbdc00
+SF:$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js line 60 > eval
+FN:1,top-level
+FNDA:1,top-level
+FNF:1
+FNH:1
+BRDA:3,0,0,0
+BRDA:3,0,1,-
+BRF:2
+BRH:1
+DA:2,1
+DA:3,1
+DA:4,0
+DA:5,1
+LF:4
+LH:3
+end_of_record
+
+In the following source:
+ //FN:$,top-level //FNDA:1,%
+ var l = ",".split(','); //DA:$,1
+ if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,-
+ l.push(''); //DA:$,0
+ l.pop(); //DA:$,1
+ //FNF:1
+ //FNH:1
+ //LF:4
+ //LH:3
+ //BRF:2
+ //BRH:1
+
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false
+Stack:
+ checkLcov@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:104:1
+Exit code: 3
+FAIL - coverage/simple.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/coverage/simple.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false (code 3, args "--code-coverage --ion-eager --ion-offthread-compile=off")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stdout > Cannot find `BRDA:3,0,0,1` in the following Lcov result:
+INFO stdout > TN:Compartment_5fcccbdc00
+INFO stdout > SF:$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js line 60 > eval
+INFO stdout > FN:1,top-level
+INFO stdout > FNDA:1,top-level
+INFO stdout > FNF:1
+INFO stdout > FNH:1
+INFO stdout > BRDA:3,0,0,0
+INFO stdout > BRDA:3,0,1,-
+INFO stdout > BRF:2
+INFO stdout > BRH:1
+INFO stdout > DA:2,1
+INFO stdout > DA:3,1
+INFO stdout > DA:4,0
+INFO stdout > DA:5,1
+INFO stdout > LF:4
+INFO stdout > LH:3
+INFO stdout > end_of_record
+INFO stdout >
+INFO stdout > In the following source:
+INFO stdout > //FN:$,top-level //FNDA:1,%
+INFO stdout > var l = ",".split(','); //DA:$,1
+INFO stdout > if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,-
+INFO stdout > l.push(''); //DA:$,0
+INFO stdout > l.pop(); //DA:$,1
+INFO stdout > //FNF:1
+INFO stdout > //FNH:1
+INFO stdout > //LF:4
+INFO stdout > //LH:3
+INFO stdout > //BRF:2
+INFO stdout > //BRH:1
+INFO stdout >
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false
+INFO stderr 2> Stack:
+INFO stderr 2> checkLcov@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:104:1
+Cannot find `BRDA:3,0,0,1` in the following Lcov result:
+ TN:Compartment_5fed207c00
+SF:$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js line 60 > eval
+FN:1,top-level
+FNDA:1,top-level
+FNF:1
+FNH:1
+BRDA:3,0,0,0
+BRDA:3,0,1,-
+BRF:2
+BRH:1
+DA:2,1
+DA:3,1
+DA:4,0
+DA:5,1
+LF:4
+LH:3
+end_of_record
+
+In the following source:
+ //FN:$,top-level //FNDA:1,%
+ var l = ",".split(','); //DA:$,1
+ if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,-
+ l.push(''); //DA:$,0
+ l.pop(); //DA:$,1
+ //FNF:1
+ //FNH:1
+ //LF:4
+ //LH:3
+ //BRF:2
+ //BRH:1
+
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false
+Stack:
+ checkLcov@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:104:1
+Exit code: 3
+FAIL - coverage/simple.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/coverage/simple.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false (code 3, args "--code-coverage --ion-eager --ion-offthread-compile=off --non-writable-jitcode --ion-check-range-analysis --ion-extra-checks --no-sse3 --no-threads")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stdout > Cannot find `BRDA:3,0,0,1` in the following Lcov result:
+INFO stdout > TN:Compartment_5fed207c00
+INFO stdout > SF:$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js line 60 > eval
+INFO stdout > FN:1,top-level
+INFO stdout > FNDA:1,top-level
+INFO stdout > FNF:1
+INFO stdout > FNH:1
+INFO stdout > BRDA:3,0,0,0
+INFO stdout > BRDA:3,0,1,-
+INFO stdout > BRF:2
+INFO stdout > BRH:1
+INFO stdout > DA:2,1
+INFO stdout > DA:3,1
+INFO stdout > DA:4,0
+INFO stdout > DA:5,1
+INFO stdout > LF:4
+INFO stdout > LH:3
+INFO stdout > end_of_record
+INFO stdout >
+INFO stdout > In the following source:
+INFO stdout > //FN:$,top-level //FNDA:1,%
+INFO stdout > var l = ",".split(','); //DA:$,1
+INFO stdout > if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,-
+INFO stdout > l.push(''); //DA:$,0
+INFO stdout > l.pop(); //DA:$,1
+INFO stdout > //FNF:1
+INFO stdout > //FNH:1
+INFO stdout > //LF:4
+INFO stdout > //LH:3
+INFO stdout > //BRF:2
+INFO stdout > //BRH:1
+INFO stdout >
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false
+INFO stderr 2> Stack:
+INFO stderr 2> checkLcov@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:104:1
+Cannot find `BRDA:3,0,0,1` in the following Lcov result:
+ TN:Compartment_5fcfabdc00
+SF:$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js line 60 > eval
+FN:1,top-level
+FNDA:1,top-level
+FNF:1
+FNH:1
+BRDA:3,0,0,0
+BRDA:3,0,1,-
+BRF:2
+BRH:1
+DA:2,1
+DA:3,1
+DA:4,0
+DA:5,1
+LF:4
+LH:3
+end_of_record
+
+In the following source:
+ //FN:$,top-level //FNDA:1,%
+ var l = ",".split(','); //DA:$,1
+ if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,-
+ l.push(''); //DA:$,0
+ l.pop(); //DA:$,1
+ //FNF:1
+ //FNH:1
+ //LF:4
+ //LH:3
+ //BRF:2
+ //BRH:1
+
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false
+Stack:
+ checkLcov@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:104:1
+Exit code: 3
+FAIL - coverage/simple.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/coverage/simple.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false (code 3, args "--code-coverage --baseline-eager")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stdout > Cannot find `BRDA:3,0,0,1` in the following Lcov result:
+INFO stdout > TN:Compartment_5fcfabdc00
+INFO stdout > SF:$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js line 60 > eval
+INFO stdout > FN:1,top-level
+INFO stdout > FNDA:1,top-level
+INFO stdout > FNF:1
+INFO stdout > FNH:1
+INFO stdout > BRDA:3,0,0,0
+INFO stdout > BRDA:3,0,1,-
+INFO stdout > BRF:2
+INFO stdout > BRH:1
+INFO stdout > DA:2,1
+INFO stdout > DA:3,1
+INFO stdout > DA:4,0
+INFO stdout > DA:5,1
+INFO stdout > LF:4
+INFO stdout > LH:3
+INFO stdout > end_of_record
+INFO stdout >
+INFO stdout > In the following source:
+INFO stdout > //FN:$,top-level //FNDA:1,%
+INFO stdout > var l = ",".split(','); //DA:$,1
+INFO stdout > if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,-
+INFO stdout > l.push(''); //DA:$,0
+INFO stdout > l.pop(); //DA:$,1
+INFO stdout > //FNF:1
+INFO stdout > //FNH:1
+INFO stdout > //LF:4
+INFO stdout > //LH:3
+INFO stdout > //BRF:2
+INFO stdout > //BRH:1
+INFO stdout >
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false
+INFO stderr 2> Stack:
+INFO stderr 2> checkLcov@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:104:1
+Cannot find `BRDA:3,0,0,1` in the following Lcov result:
+ TN:Compartment_5fcbebdc00
+SF:$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js line 60 > eval
+FN:1,top-level
+FNDA:1,top-level
+FNF:1
+FNH:1
+BRDA:3,0,0,0
+BRDA:3,0,1,-
+BRF:2
+BRH:1
+DA:2,1
+DA:3,1
+DA:4,0
+DA:5,1
+LF:4
+LH:3
+end_of_record
+
+In the following source:
+ //FN:$,top-level //FNDA:1,%
+ var l = ",".split(','); //DA:$,1
+ if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,-
+ l.push(''); //DA:$,0
+ l.pop(); //DA:$,1
+ //FNF:1
+ //FNH:1
+ //LF:4
+ //LH:3
+ //BRF:2
+ //BRH:1
+
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false
+Stack:
+ checkLcov@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:104:1
+Exit code: 3
+FAIL - coverage/simple.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/coverage/simple.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false (code 3, args "--code-coverage --baseline-eager --no-fpu")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stdout > Cannot find `BRDA:3,0,0,1` in the following Lcov result:
+INFO stdout > TN:Compartment_5fcbebdc00
+INFO stdout > SF:$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js line 60 > eval
+INFO stdout > FN:1,top-level
+INFO stdout > FNDA:1,top-level
+INFO stdout > FNF:1
+INFO stdout > FNH:1
+INFO stdout > BRDA:3,0,0,0
+INFO stdout > BRDA:3,0,1,-
+INFO stdout > BRF:2
+INFO stdout > BRH:1
+INFO stdout > DA:2,1
+INFO stdout > DA:3,1
+INFO stdout > DA:4,0
+INFO stdout > DA:5,1
+INFO stdout > LF:4
+INFO stdout > LH:3
+INFO stdout > end_of_record
+INFO stdout >
+INFO stdout > In the following source:
+INFO stdout > //FN:$,top-level //FNDA:1,%
+INFO stdout > var l = ",".split(','); //DA:$,1
+INFO stdout > if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,-
+INFO stdout > l.push(''); //DA:$,0
+INFO stdout > l.pop(); //DA:$,1
+INFO stdout > //FNF:1
+INFO stdout > //FNH:1
+INFO stdout > //LF:4
+INFO stdout > //LH:3
+INFO stdout > //BRF:2
+INFO stdout > //BRH:1
+INFO stdout >
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false
+INFO stderr 2> Stack:
+INFO stderr 2> checkLcov@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:104:1
+Cannot find `BRDA:3,0,0,1` in the following Lcov result:
+ TN:Compartment_5fd10bdc00
+SF:$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js line 60 > eval
+FN:1,top-level
+FNDA:1,top-level
+FNF:1
+FNH:1
+BRDA:3,0,0,0
+BRDA:3,0,1,-
+BRF:2
+BRH:1
+DA:2,1
+DA:3,1
+DA:4,0
+DA:5,1
+LF:4
+LH:3
+end_of_record
+
+In the following source:
+ //FN:$,top-level //FNDA:1,%
+ var l = ",".split(','); //DA:$,1
+ if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,-
+ l.push(''); //DA:$,0
+ l.pop(); //DA:$,1
+ //FNF:1
+ //FNH:1
+ //LF:4
+ //LH:3
+ //BRF:2
+ //BRH:1
+
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false
+Stack:
+ checkLcov@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:104:1
+Exit code: 3
+FAIL - coverage/simple.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/coverage/simple.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false (code 3, args "--code-coverage --no-baseline --no-ion")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stdout > Cannot find `BRDA:3,0,0,1` in the following Lcov result:
+INFO stdout > TN:Compartment_5fd10bdc00
+INFO stdout > SF:$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js line 60 > eval
+INFO stdout > FN:1,top-level
+INFO stdout > FNDA:1,top-level
+INFO stdout > FNF:1
+INFO stdout > FNH:1
+INFO stdout > BRDA:3,0,0,0
+INFO stdout > BRDA:3,0,1,-
+INFO stdout > BRF:2
+INFO stdout > BRH:1
+INFO stdout > DA:2,1
+INFO stdout > DA:3,1
+INFO stdout > DA:4,0
+INFO stdout > DA:5,1
+INFO stdout > LF:4
+INFO stdout > LH:3
+INFO stdout > end_of_record
+INFO stdout >
+INFO stdout > In the following source:
+INFO stdout > //FN:$,top-level //FNDA:1,%
+INFO stdout > var l = ",".split(','); //DA:$,1
+INFO stdout > if (l.length == 3) //DA:$,1 //BRDA:$,0,0,1 //BRDA:$,0,1,-
+INFO stdout > l.push(''); //DA:$,0
+INFO stdout > l.pop(); //DA:$,1
+INFO stdout > //FNF:1
+INFO stdout > //FNH:1
+INFO stdout > //LF:4
+INFO stdout > //LH:3
+INFO stdout > //BRF:2
+INFO stdout > //BRH:1
+INFO stdout >
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7 Error: Assertion failed: got true, expected false
+INFO stderr 2> Stack:
+INFO stderr 2> checkLcov@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:69:7
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js:104:1
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+Stack:
+ test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+Exit code: 3
+FAIL - ctypes/conversion-native-function.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+INFO stderr 2> Stack:
+INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+Stack:
+ test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+Exit code: 3
+FAIL - ctypes/conversion-native-function.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "--ion-eager --ion-offthread-compile=off --non-writable-jitcode --ion-check-range-analysis --ion-extra-checks --no-sse3 --no-threads")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+INFO stderr 2> Stack:
+INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+Stack:
+ test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+Exit code: 3
+FAIL - ctypes/conversion-native-function.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "--ion-eager --ion-offthread-compile=off")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+INFO stderr 2> Stack:
+INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+Stack:
+ test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+Exit code: 3
+FAIL - ctypes/conversion-native-function.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "--baseline-eager")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+INFO stderr 2> Stack:
+INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+Stack:
+ test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+Exit code: 3
+FAIL - ctypes/conversion-native-function.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "--baseline-eager --no-fpu")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+INFO stderr 2> Stack:
+INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+Stack:
+ test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+Exit code: 3
+FAIL - ctypes/conversion-native-function.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ctypes/conversion-native-function.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library (code 3, args "--no-baseline --no-ion")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14 Error: couldn't find function symbol in library
+INFO stderr 2> Stack:
+INFO stderr 2> test@$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:15:14
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js:37:3
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1 Error: Assertion failed: got false, expected true
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1
+Exit code: 3
+FAIL - debug/Debugger-allowUnobservedAsmJS-02.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1 Error: Assertion failed: got false, expected true (code 3, args "")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1 Error: Assertion failed: got false, expected true
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1 Error: Assertion failed: got false, expected true
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1
+Exit code: 3
+FAIL - debug/Debugger-allowUnobservedAsmJS-02.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1 Error: Assertion failed: got false, expected true (code 3, args "--ion-eager --ion-offthread-compile=off")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1 Error: Assertion failed: got false, expected true
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1 Error: Assertion failed: got false, expected true
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1
+Exit code: 3
+FAIL - debug/Debugger-allowUnobservedAsmJS-02.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1 Error: Assertion failed: got false, expected true (code 3, args "--baseline-eager")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1 Error: Assertion failed: got false, expected true
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1 Error: Assertion failed: got false, expected true
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1
+Exit code: 3
+FAIL - debug/Debugger-allowUnobservedAsmJS-02.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1 Error: Assertion failed: got false, expected true (code 3, args "--baseline-eager --no-fpu")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1 Error: Assertion failed: got false, expected true
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1 Error: Assertion failed: got false, expected true
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1
+Exit code: 3
+FAIL - debug/Debugger-allowUnobservedAsmJS-02.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1 Error: Assertion failed: got false, expected true (code 3, args "--no-baseline --no-ion")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1 Error: Assertion failed: got false, expected true
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js:21:1
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5
+Exit code: 3
+FAIL - ion/bug909997.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ion/bug909997.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1 (code 3, args "")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5
+Exit code: 3
+FAIL - ion/bug909997.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ion/bug909997.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1 (code 3, args "--ion-eager --ion-offthread-compile=off --non-writable-jitcode --ion-check-range-analysis --ion-extra-checks --no-sse3 --no-threads")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5
+Exit code: 3
+FAIL - ion/bug909997.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ion/bug909997.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1 (code 3, args "--ion-eager --ion-offthread-compile=off")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5
+Exit code: 3
+FAIL - ion/bug909997.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ion/bug909997.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1 (code 3, args "--baseline-eager")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5
+Exit code: 3
+FAIL - ion/bug909997.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ion/bug909997.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1 (code 3, args "--baseline-eager --no-fpu")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5
+$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1
+Stack:
+ @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5
+Exit code: 3
+FAIL - ion/bug909997.js
+TEST-UNEXPECTED-FAIL | js/src/jit-test/tests/ion/bug909997.js | $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1 (code 3, args "--no-baseline --no-ion")
+INFO exit-status : 3
+INFO timed-out : False
+INFO stderr 2> $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5 Error: Assertion failed: got 0, expected 1
+INFO stderr 2> Stack:
+INFO stderr 2> @$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js:31:5
+FAILURES:
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --ion-extra-checks --non-writable-jitcode --ion-check-range-analysis --ion-offthread-compile=off --no-threads --ion-eager --no-sse3 -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --ion-eager --ion-offthread-compile=off -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --baseline-eager -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --baseline-eager --no-fpu -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --no-baseline --no-ion -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --no-asmjs -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/asm.js/testHeapAccess.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --code-coverage -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --ion-eager --ion-offthread-compile=off --code-coverage -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --ion-extra-checks --non-writable-jitcode --ion-check-range-analysis --ion-offthread-compile=off --no-threads --ion-eager --code-coverage --no-sse3 -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --baseline-eager --code-coverage -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --baseline-eager --no-fpu --code-coverage -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --no-baseline --no-ion --code-coverage -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/coverage/simple.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --ion-extra-checks --non-writable-jitcode --ion-check-range-analysis --ion-offthread-compile=off --no-threads --ion-eager --no-sse3 -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --ion-eager --ion-offthread-compile=off -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --baseline-eager -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --baseline-eager --no-fpu -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --no-baseline --no-ion -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ctypes/conversion-native-function.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --ion-eager --ion-offthread-compile=off -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --baseline-eager -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --baseline-eager --no-fpu -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --no-baseline --no-ion -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/debug/Debugger-allowUnobservedAsmJS-02.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --ion-extra-checks --non-writable-jitcode --ion-check-range-analysis --ion-offthread-compile=off --no-threads --ion-eager --no-sse3 -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --ion-eager --ion-offthread-compile=off -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --baseline-eager -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --baseline-eager --no-fpu -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js
+ $(@D)/dist/bin/js -f $(SOURCE_DIR)/mozilla/js/src/jit-test/lib/prologue.js --js-cache $(SOURCE_DIR)/mozilla/js/src/jit-test/.js-cache --no-baseline --no-ion -e "const platform='sunos5'; const libdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/lib/'; const scriptdir='$(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/'" -f $(SOURCE_DIR)/mozilla/js/src/jit-test/tests/ion/bug909997.js
+TIMEOUTS:
+Result summary:
+Passed: 29657
+Failed: 30
+make[1]: *** [Makefile:110: check-jit-test] Error 2
+make[1]: Leaving directory '$(@D)/js/src'