Hello community,

here is the log from the commit of package mozjs60 for openSUSE:Factory checked 
in at 2020-01-02 14:40:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mozjs60 (Old)
 and      /work/SRC/openSUSE:Factory/.mozjs60.new.6675 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mozjs60"

Thu Jan  2 14:40:49 2020 rev:11 rq:760235 version:60.9.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/mozjs60/mozjs60.changes  2019-12-25 
10:46:09.709386941 +0100
+++ /work/SRC/openSUSE:Factory/.mozjs60.new.6675/mozjs60.changes        
2020-01-02 14:40:56.508902320 +0100
@@ -1,0 +2,43 @@
+Mon Dec 30 13:44:54 UTC 2019 - Frederic Crozat <fcro...@suse.com>
+
+- Add skip-i586-failing-tests.patch: disable tests on i586 which
+  require SSE / i686 (boo#1159775).
+
+-------------------------------------------------------------------
+Thu Dec 19 09:16:19 UTC 2019 - Frederic Crozat <fcro...@suse.com>
+
+- SLE 15 SP2 will ship with ICU 65, apply patches accordingly
+  (jsc#SLE-11118).
+
+-------------------------------------------------------------------
+Fri Dec 13 12:56:05 UTC 2019 - Frederic Crozat <fcro...@suse.com>
+
+- Remove Update-to-ICU-64-Part-3-Update-tests.patch, SLE is back to
+  ICU 60.x.
+
+-------------------------------------------------------------------
+Tue Dec 10 09:28:06 UTC 2019 - Frederic Crozat <fcro...@suse.com>
+
+- Add Don-t-run-non262-extensions-clone-errors.js-on-s390x.patch,
+  based on Debian patch, to enable back tests on s390x (and ppc64).
+- Add tests-Expect-a-test-to-fail-on-big-endian.patch, based on
+  Debian patch, accept a test failure on big-endian like s390x.
+- enable back tests on s390x and i586
+- Remove build workaround on ppc64le.
+- Reorder/change build flags to follow Debian and Fedora.
+- Enable back tests on all platforms (except JIT on s390).
+- Ensure we don't build bundled security libs.
+- Don't ship a icu bundle for big-endian, recreate it instead, with
+  patches icu_sources_data-Write-command-output-to-our-stderr.patch
+  and icu_sources_data.py-Decouple-from-Mozilla-build-system.patch.
+- Update patch enddianness.patch with more fixes from
+  bmo#1590907 to fix strings usage on s390x (bsc#1158355).
+- Add Skip-some-i18n-tests-because-we-are-now-using-system-ICU.patch
+  Update-to-ICU-61-Part-3-Update-tests.patch,
+  Update-to-ICU-64-Part-3-Update-tests.patch,
+  Update-to-ICU-65-Part-3-Update-tests.patch to allow building
+  with system icu
+- Add flag to switch between system icu and embedded icu and
+  enable system icu.
+
+-------------------------------------------------------------------

Old:
----
  icudt60b.dat.xz

New:
----
  Don-t-run-non262-extensions-clone-errors.js-on-s390x.patch
  Skip-some-i18n-tests-because-we-are-now-using-system-ICU.patch
  Update-to-ICU-61-Part-3-Update-tests.patch
  Update-to-ICU-65-Part-3-Update-tests.patch
  icu_sources_data-Write-command-output-to-our-stderr.patch
  icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
  skip-i586-failing-tests.patch
  tests-Expect-a-test-to-fail-on-big-endian.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mozjs60.spec ++++++
--- /var/tmp/diff_new_pack.QS3mOw/_old  2020-01-02 14:41:01.072904123 +0100
+++ /var/tmp/diff_new_pack.QS3mOw/_new  2020-01-02 14:41:01.072904123 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package mozjs60
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LLC
 # Copyright (c) 2018 Luciano Santos <luc1...@linuxmail.org>.
 #
 # All modifications and additions to the file contributed by third parties
@@ -17,6 +17,10 @@
 #
 
 
+# use system icu
+# keep fallback if something goes wrong
+%bcond_without system_icu
+
 %global major   60
 Name:           mozjs%{major}
 Version:        60.9.0
@@ -27,9 +31,6 @@
 URL:            
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey
 Source0:        
https://ftp.mozilla.org/pub/firefox/releases/%{version}esr/source/firefox-%{version}esr.source.tar.xz
 Source1:        LICENSE.txt
-# This should be removed when bmo#1322212 and bmo#1264836 are resolved:
-# Missing ICU big-endian data file in firefox source:
-Source2:        icudt60b.dat.xz
 Patch0:         mozjs60-fix-armv6-build.patch
 Patch1:         mozjs60-mozilla-s390-bigendian.patch
 Patch2:         riscv-support.patch
@@ -46,6 +47,22 @@
 # aarch64 fixes for -O2
 Patch9:         Save-x28-before-clobbering-it-in-the-regex-compiler.patch
 Patch10:        
Save-and-restore-non-volatile-x28-on-ARM64-for-generated-unboxed-object-constructor.patch
+# based on 
https://salsa.debian.org/gnome-team/mozjs60/blob/debian/master/debian/patches/tests-Skip-a-test-on-s390x.patch
+Patch11:        Don-t-run-non262-extensions-clone-errors.js-on-s390x.patch
+# based on 
https://salsa.debian.org/gnome-team/mozjs60/blob/debian/master/debian/patches/tests-Expect-a-test-to-fail-on-big-endian.patch
+Patch12:        tests-Expect-a-test-to-fail-on-big-endian.patch
+# 
https://salsa.debian.org/gnome-team/mozjs60/blob/debian/master/debian/patches/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
+Patch13:        icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
+# 
https://salsa.debian.org/gnome-team/mozjs60/blob/debian/master/debian/patches/icu_sources_data-Write-command-output-to-our-stderr.patch
+Patch14:        icu_sources_data-Write-command-output-to-our-stderr.patch
+# 
https://salsa.debian.org/gnome-team/mozjs60/blob/debian/master/debian/patches/Skip-some-i18n-tests-because-we-are-now-using-system-ICU.patch
+Patch15:        Skip-some-i18n-tests-because-we-are-now-using-system-ICU.patch
+# 
https://salsa.debian.org/gnome-team/mozjs60/blob/debian/master/debian/patches/Update-to-ICU-61-Part-3-Update-tests.patch
+Patch16:        Update-to-ICU-61-Part-3-Update-tests.patch
+# fix testsuite when built with ICU 65 
https://phabricator.services.mozilla.com/D49445 
https://unicode-org.atlassian.net/browse/ICU-20654
+Patch17:        Update-to-ICU-65-Part-3-Update-tests.patch
+# fix testsuite when building on i586 (some tests requires SSE / i686) 
boo#1159775
+Patch18:        skip-i586-failing-tests.patch
 
 BuildRequires:  autoconf213
 BuildRequires:  gcc-c++
@@ -56,6 +73,9 @@
 BuildRequires:  readline-devel
 BuildRequires:  pkgconfig(libffi)
 BuildRequires:  pkgconfig(zlib)
+%if %{with system_icu}
+BuildRequires:  pkgconfig(icu-i18n)
+%endif
 
 %description
 JavaScript is the Netscape-developed object scripting language used in millions
@@ -106,16 +126,34 @@
 %patch8 -p1
 %patch9 -p1
 %patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150200
+# only supported with ICU >= 61
+%patch16 -p1
+# only supported with ICU >= 65 
(https://unicode-org.atlassian.net/browse/ICU-20654)
+%patch17 -p1
+%endif
+%patch18 -p1
+
+# make sure we don't ever accidentally link against bundled security libs
+rm -rf security/
 
 # Remove zlib directory to make sure the use of zlib from distro:
 rm -rf modules/zlib
 
-cd js/src
 # FIX-ME: This should be removed when bmo#1322212 and bmo#1264836 are resolved:
-xz -dk %{SOURCE2}
-DATFILE=%{SOURCE2}
-DATFILE="${DATFILE%.xz}"
-mv -v ${DATFILE} ../../config/external/icu/data/
+%if !%{with system_icu}
+%ifarch s390 s390x ppc ppc64 m68k
+echo "Generate big endian version of config/external/icu/data/icud58l.dat"
+python intl/icu_sources_data.py .
+ls -l config/external/icu/data
+rm -f config/external/icu/data/icudt*l.dat
+%endif
+%endif
 
 %build
 cd js/src
@@ -124,17 +162,8 @@
 DATE="\"$(date -d "${modified}" "+%%b %%e %%Y")\""
 TIME="\"$(date -d "${modified}" "+%%R")\""
 find . -regex ".*\.c\|.*\.cpp\|.*\.h" -exec sed -i 
"s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} +
-#
-# Add extra cflags for Power8 ppc64le compiling with gcc7+ (bmo#1399248)
-%ifarch ppc64le
-GCCVER=`gcc --version | sed "s/.* \([0-9]\.[0-9]\.[0-9]\).*/\1/" | head -n1`
-if [ ${GCCVER} > "7.0" ]; then
-XTRA_CFLAGS="-mcpu=power7 -mtune=power7"
-fi
-%endif
-#
-# Disable null pointer gcc6 optimization in gcc6 (rhbz#1328045):
-export CFLAGS="%{optflags} -fno-tree-vrp -fno-strict-aliasing 
-fno-delete-null-pointer-checks ${XTRA_CFLAGS}"
+
+export CFLAGS="%{optflags}"
 export CXXFLAGS=$CFLAGS
 autoconf-2.13
 # An out of source directory build is wanted here to prevent failures:
@@ -144,21 +173,21 @@
     --prefix=%{_prefix} \
     --libdir=%{_libdir} \
     --includedir=%{_includedir} \
-    --enable-optimize \
-    --enable-pie \
+%if %{with system_icu}
+    --with-system-icu \
+%else
+    --without-system-icu \
+%endif
     --enable-posix-nspr-emulation \
+    --with-system-zlib \
+    --enable-tests \
+    --disable-strip \
+    --with-intl-api \
     --enable-readline \
     --enable-shared-js \
-    --enable-release \
-    --with-intl-api \
-    --with-pthreads \
+    --disable-optimize \
+    --enable-pie \
     --disable-jemalloc \
-    --without-system-icu \
-    --with-system-zlib \
-
-# Without adding these sources resulted library has weak symbols:
-#echo "CPPSRCS += \$(DEPTH)/mfbt/Unified_cpp_mfbt0.cpp 
\$(DEPTH)/../../mfbt/Compression.cpp \$(DEPTH)/../../mfbt/decimal/Decimal.cpp" 
>> js/src/backend.mk
-#echo "STATIC_LIBS += \$(DEPTH)/mfbt/libmfbt.a" >> js/src/backend.mk
 
 # do not eat all memory
 %limit_build -m 1300
@@ -170,7 +199,9 @@
 %make_install
 # Remove unneeded executable bits:
 chmod a-x  %{buildroot}%{_libdir}/pkgconfig/*.pc \
+%if !%{with system_icu}
 %{buildroot}%{_includedir}/mozjs-%{major}/unicode/selfmt.h \
+%endif
 %{buildroot}%{_includedir}/mozjs-%{major}/js-config.h
 # Do not install static libraries:
 rm -f %{buildroot}%{_libdir}/*.a %{buildroot}%{_libdir}/*.ajs 
%{buildroot}%{_bindir}/js-config
@@ -187,19 +218,24 @@
 install -m 644 %{SOURCE1} .
 
 %check
-## Tests are currently (60.1.0) failing
-#cd js/src/build_OPT.OBJ
+# NEVER DISABLE THOSE TESTS : if they aren't passing, something is wrong,
+# don't submit with tests disabled
+cd js/src/build_OPT.OBJ
 # Run SpiderMonkey tests:
-#../tests/jstests.py -d -s -t 1800 --no-progress 
../build_OPT.OBJ/js/src/shell/js \
-%ifnarch s390 s390x ppc %{power64}
-#;
+../tests/jstests.py -d -s -t 1800 --no-progress 
../build_OPT.OBJ/js/src/shell/js \
+%ifnarch s390
+;
 %else
-#|| :
+|| :
 %endif
 
-# Run basic JIT tests. JIT is disabled on s390 and ppc (see bmo#1415360 
comment 6):
-%ifnarch s390 s390x ppc %{power64}
-#../jit-test/jit_test.py -s -t 1800 --no-progress 
../build_OPT.OBJ/js/src/shell/js basic
+# this test doesn't pass on i586, kill it
+%ifarch i586
+rm -f ../jit-test/tests/basic/bug653153.js 
+%endif
+# Run basic JIT tests. JIT is disabled on s390 (see bmo#1415360 comment 6):
+%ifnarch s390
+../jit-test/jit_test.py -s -t 1800 --no-progress  
../build_OPT.OBJ/js/src/shell/js basic 
 %endif
 
 %post -n libmozjs-%{major} -p /sbin/ldconfig

++++++ Don-t-run-non262-extensions-clone-errors.js-on-s390x.patch ++++++
Index: firefox-60.9.0/js/src/tests/jstests.list
===================================================================
--- firefox-60.9.0.orig/js/src/tests/jstests.list       2019-12-10 
11:03:40.064246162 +0100
+++ firefox-60.9.0/js/src/tests/jstests.list    2019-12-10 11:04:22.464247245 
+0100
@@ -447,6 +447,10 @@
 # https://bugzilla.mozilla.org/show_bug.cgi?id=1321616
 skip script 
test262/annexB/built-ins/Function/createdynfn-html-close-comment-params.js
 
+# Crashes on s390x and ppc64, avoid it
+#
+skip-if(xulRuntime.XPCOMABI.match(/s390x|ppc64-/)) script 
non262/extensions/clone-errors.js
+
 
 ###########################################################
 # Tests disabled due to issues in test262 importer script #
++++++ Skip-some-i18n-tests-because-we-are-now-using-system-ICU.patch ++++++
From: Simon McVittie <s...@debian.org>
Date: Wed, 12 Sep 2018 09:46:34 +0100
Subject: Skip some i18n tests because we are now using system ICU

Forwarded: not-needed, Debian-specific
---
 js/src/tests/jstests.list | 4 ++++
 1 file changed, 4 insertions(+)

Index: firefox-60.9.0/js/src/tests/jstests.list
===================================================================
--- firefox-60.9.0.orig/js/src/tests/jstests.list       2019-12-10 
09:57:46.072145154 +0100
+++ firefox-60.9.0/js/src/tests/jstests.list    2019-12-10 09:57:48.344145212 
+0100
@@ -454,6 +454,10 @@
 # Assumes little-endian IEEE representation of floating point numbers
 fails-if(xulRuntime.XPCOMABI.match(/s390x|ppc64-|ppc-/)) script 
test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
 
+# Fails with system ICU due to different data?
+skip script non262/Intl/DateTimeFormat/tz-environment-variable.js
+skip script non262/Intl/NumberFormat/formatToParts.js
+
 ###########################################################
 # Tests disabled due to issues in test262 importer script #
 ###########################################################
++++++ Update-to-ICU-61-Part-3-Update-tests.patch ++++++
From: =?utf-8?q?Andr=C3=A9_Bargull?= <andre.barg...@gmail.com>
Date: Tue, 27 Mar 2018 07:40:40 -0700
Subject: Update to ICU 61, Part 3: Update tests

Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1445465
Applied-upstream: 61, 
commit:https://hg.mozilla.org/mozilla-central/rev/3214fb35ccd6
---
 .../tests/non262/Intl/NumberFormat/StringBuffer.js | 26 +++++++++++++++++++---
 .../non262/Intl/NumberFormat/formatToParts.js      |  1 -
 2 files changed, 23 insertions(+), 4 deletions(-)

Index: mozjs-60.8.0/js/src/tests/non262/Intl/NumberFormat/StringBuffer.js
===================================================================
--- mozjs-60.8.0.orig/js/src/tests/non262/Intl/NumberFormat/StringBuffer.js
+++ mozjs-60.8.0/js/src/tests/non262/Intl/NumberFormat/StringBuffer.js
@@ -10,8 +10,28 @@
 
 var format = new Intl.NumberFormat("it-IT", {minimumFractionDigits: 1});
 
-assertEq(format.format(1123123123123123123123.1), 
"1.123.123.123.123.120.000.000,0");
-assertEq(format.format(12123123123123123123123.1), 
"12.123.123.123.123.100.000.000,0");
-assertEq(format.format(123123123123123123123123.1), 
"123.123.123.123.123.000.000.000,0");
+assertEq(format.format(1123123123123123123123.1), 
"1.123.123.123.123.123.100.000,0");
+assertEq(format.format(12123123123123123123123.1), 
"12.123.123.123.123.122.000.000,0");
+assertEq(format.format(123123123123123123123123.1), 
"123.123.123.123.123.120.000.000,0");
+
+// Ensure the ICU output matches Number.prototype.toFixed.
+function formatToFixed(x) {
+    var mfd = format.resolvedOptions().maximumFractionDigits;
+    var s = x.toFixed(mfd);
+
+    // To keep it simple we assume |s| is always in exponential form.
+    var m = s.match(/^(\d)\.(\d+)e\+(\d+)$/);
+    assertEq(m !== null, true);
+    s = m[1] + m[2].padEnd(m[3], "0");
+
+    // Group digits and append fractional part.
+    m = s.match(/\d{1,3}(?=(?:\d{3})*$)/g);
+    assertEq(m !== null, true);
+    return m.join(".") + ",0";
+}
+
+assertEq(formatToFixed(1123123123123123123123.1), 
"1.123.123.123.123.123.100.000,0");
+assertEq(formatToFixed(12123123123123123123123.1), 
"12.123.123.123.123.122.000.000,0");
+assertEq(formatToFixed(123123123123123123123123.1), 
"123.123.123.123.123.120.000.000,0");
 
 reportCompare(0, 0, "ok");
Index: mozjs-60.8.0/js/src/tests/non262/Intl/NumberFormat/formatToParts.js
===================================================================
--- mozjs-60.8.0.orig/js/src/tests/non262/Intl/NumberFormat/formatToParts.js
+++ mozjs-60.8.0/js/src/tests/non262/Intl/NumberFormat/formatToParts.js
@@ -215,7 +215,6 @@ assertParts(arPercentFormatter, -135.32,
              Integer("٥٣٢"),
              Decimal("٫"),
              Fraction("٠٠"),
-             Literal("\xA0"),
              PercentSign("٪\u{061C}")]);
 
 // Decimals.
++++++ Update-to-ICU-65-Part-3-Update-tests.patch ++++++
>From d2125e5768325579866948baf295477e3f67c550 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bargull?= <andre.barg...@gmail.com>
Date: Tue, 22 Oct 2019 08:36:58 +0000
Subject: [PATCH] Bug 1583269 - Part 3: Update tests after ICU update.
 r=jwalden
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

js/src/tests/jstests.list
- Enable now passing test262 tests.

non262/Intl/RelativeTimeFormat/format.js
- "minute" and "hour" are now supported in 'text' contexts for relative time 
formatting.
- Also see the now passing test262 tests.

non262/Intl/NumberFormat/currency-sign-accounting.js
non262/Intl/NumberFormat/sign-display.js
- Referenced ICU bug has been fixed in ICU 65.

non262/Intl/NumberFormat/notation-compact-short.js
- 万亿 is preferred over 兆 in mainland China; CLDR sources were updated 
accordingly.

non262/Intl/NumberFormat/notation-engineering.js
non262/Intl/NumberFormat/notation-scientific.js
- ICU removed "E0" suffix for non-finite numbers in engineering and scientific 
contexts.

Differential Revision: https://phabricator.services.mozilla.com/D49445

--HG--
extra : moz-landing-system : lando
---
 js/src/tests/jstests.list                              |  4 ----
 .../tests/non262/Intl/ListFormat/conjunction-long.js   |  2 +-
 .../Intl/NumberFormat/currency-sign-accounting.js      |  3 +--
 .../non262/Intl/NumberFormat/notation-compact-short.js | 10 +++++-----
 .../non262/Intl/NumberFormat/notation-engineering.js   |  8 ++++----
 .../non262/Intl/NumberFormat/notation-scientific.js    |  8 ++++----
 js/src/tests/non262/Intl/NumberFormat/sign-display.js  |  3 +--
 js/src/tests/non262/Intl/RelativeTimeFormat/format.js  |  8 ++++----
 8 files changed, 20 insertions(+), 26 deletions(-)

Index: firefox-60.9.0/js/src/tests/non262/Intl/RelativeTimeFormat/format.js
===================================================================
--- firefox-60.9.0.orig/js/src/tests/non262/Intl/RelativeTimeFormat/format.js   
2019-09-01 15:09:18.000000000 +0200
+++ firefox-60.9.0/js/src/tests/non262/Intl/RelativeTimeFormat/format.js        
2019-12-09 17:36:51.720845023 +0100
@@ -58,13 +58,13 @@
   assertEq(rtf.format(-1, "second"), "1 second ago");
   assertEq(rtf.format(1, "second"), "in 1 second");
 
-  assertEq(rtf.format(0, "minute"), "in 0 minutes");
-  assertEq(rtf.format(-0, "minute"), "in 0 minutes");
+  assertEq(rtf.format(0, "minute"), "this minute");
+  assertEq(rtf.format(-0, "minute"), "this minute");
   assertEq(rtf.format(-1, "minute"), "1 minute ago");
   assertEq(rtf.format(1, "minute"), "in 1 minute");
 
-  assertEq(rtf.format(0, "hour"), "in 0 hours");
-  assertEq(rtf.format(-0, "hour"), "in 0 hours");
+  assertEq(rtf.format(0, "hour"), "this hour");
+  assertEq(rtf.format(-0, "hour"), "this hour");
   assertEq(rtf.format(-1, "hour"), "1 hour ago");
   assertEq(rtf.format(1, "hour"), "in 1 hour");
 
++++++ enddianness.patch ++++++
--- /var/tmp/diff_new_pack.QS3mOw/_old  2020-01-02 14:41:01.140904151 +0100
+++ /var/tmp/diff_new_pack.QS3mOw/_new  2020-01-02 14:41:01.140904151 +0100
@@ -11,11 +11,11 @@
  js/src/vm/StringType.h        | 13 +++++++++++++
  4 files changed, 49 insertions(+), 1 deletion(-)
 
-diff --git a/js/src/gc/Marking-inl.h b/js/src/gc/Marking-inl.h
-index 6d2a4c7..c773c21 100644
---- a/js/src/gc/Marking-inl.h
-+++ b/js/src/gc/Marking-inl.h
-@@ -82,12 +82,28 @@ inline void RelocationOverlay::forwardTo(Cell* cell) {
+Index: firefox-60.9.0/js/src/gc/Marking-inl.h
+===================================================================
+--- firefox-60.9.0.orig/js/src/gc/Marking-inl.h        2019-09-01 
15:09:17.000000000 +0200
++++ firefox-60.9.0/js/src/gc/Marking-inl.h     2019-12-09 11:42:31.024301901 
+0100
+@@ -82,12 +82,28 @@
    MOZ_ASSERT(!isForwarded());
    // The location of magic_ is important because it must never be valid to see
    // the value Relocated there in a GC thing that has not been moved.
@@ -44,11 +44,11 @@
    static_assert(
        offsetof(RelocationOverlay, magic_) == offsetof(JSString, d.u1.length),
        "RelocationOverlay::magic_ is in the wrong location");
-diff --git a/js/src/gc/RelocationOverlay.h b/js/src/gc/RelocationOverlay.h
-index a568843..399a541 100644
---- a/js/src/gc/RelocationOverlay.h
-+++ b/js/src/gc/RelocationOverlay.h
-@@ -33,14 +33,25 @@ class RelocationOverlay {
+Index: firefox-60.9.0/js/src/gc/RelocationOverlay.h
+===================================================================
+--- firefox-60.9.0.orig/js/src/gc/RelocationOverlay.h  2019-09-01 
15:09:17.000000000 +0200
++++ firefox-60.9.0/js/src/gc/RelocationOverlay.h       2019-12-09 
11:42:31.024301901 +0100
+@@ -33,14 +33,25 @@
    /* See comment in js/public/HeapAPI.h. */
    static const uint32_t Relocated = js::gc::Relocated;
  
@@ -75,10 +75,10 @@
  
    /* The location |this| was moved to. */
    Cell* newLocation_;
-diff --git a/js/src/jsfriendapi.h b/js/src/jsfriendapi.h
-index 4b8d18a..70ce0a1 100644
---- a/js/src/jsfriendapi.h
-+++ b/js/src/jsfriendapi.h
+Index: firefox-60.9.0/js/src/jsfriendapi.h
+===================================================================
+--- firefox-60.9.0.orig/js/src/jsfriendapi.h   2019-09-01 15:09:18.000000000 
+0200
++++ firefox-60.9.0/js/src/jsfriendapi.h        2019-12-09 11:42:31.024301901 
+0100
 @@ -9,6 +9,7 @@
  
  #include "mozilla/Atomics.h"
@@ -87,7 +87,7 @@
  #include "mozilla/Maybe.h"
  #include "mozilla/MemoryReporting.h"
  #include "mozilla/UniquePtr.h"
-@@ -609,8 +610,15 @@ struct String {
+@@ -609,8 +610,15 @@
    static const uint32_t LATIN1_CHARS_BIT = JS_BIT(6);
    static const uint32_t EXTERNAL_FLAGS = LINEAR_BIT | NON_ATOM_BIT | 
JS_BIT(5);
    static const uint32_t TYPE_FLAGS_MASK = JS_BIT(6) - 1;
@@ -103,10 +103,10 @@
    union {
      const JS::Latin1Char* nonInlineCharsLatin1;
      const char16_t* nonInlineCharsTwoByte;
-diff --git a/js/src/vm/StringType.h b/js/src/vm/StringType.h
-index cde3427..c3400db 100644
---- a/js/src/vm/StringType.h
-+++ b/js/src/vm/StringType.h
+Index: firefox-60.9.0/js/src/vm/StringType.h
+===================================================================
+--- firefox-60.9.0.orig/js/src/vm/StringType.h 2019-09-01 15:09:39.000000000 
+0200
++++ firefox-60.9.0/js/src/vm/StringType.h      2019-12-09 11:42:31.028301901 
+0100
 @@ -7,6 +7,7 @@
  #ifndef vm_StringType_h
  #define vm_StringType_h
@@ -115,7 +115,7 @@
  #include "mozilla/MemoryReporting.h"
  #include "mozilla/PodOperations.h"
  #include "mozilla/Range.h"
-@@ -168,8 +169,20 @@ class JSString : public js::gc::Cell {
+@@ -168,8 +169,20 @@
    struct Data {
      union {
        struct {
@@ -136,6 +136,89 @@
        };
        uintptr_t flattenData; /* JSRope (temporary while flattening) */
      } u1;
--- 
-2.23.0
-
+Index: firefox-60.9.0/js/src/js-config.h.in
+===================================================================
+--- firefox-60.9.0.orig/js/src/js-config.h.in  2019-09-01 15:09:18.000000000 
+0200
++++ firefox-60.9.0/js/src/js-config.h.in       2019-12-09 11:43:13.052302975 
+0100
+@@ -38,6 +38,13 @@
+ /* Define to 1 if SpiderMonkey should include ctypes support.  */
+ #undef JS_HAS_CTYPES
+ 
++/* Define to 1 if SpiderMonkey should include trace logging support. */
++#undef JS_TRACE_LOGGING
++
++/* Define to 1 if SpiderMonkey should include a breakpoint function for
++ * artificial OOMs. */
++#undef JS_OOM_BREAKPOINT
++
+ /* Define to 1 if SpiderMonkey should support the ability to perform
+    entirely too much GC.  */
+ #undef JS_GC_ZEAL
+@@ -48,12 +55,25 @@
+ /* Define to 1 to perform extra assertions and heap poisoning. */
+ #undef JS_CRASH_DIAGNOSTICS
+ 
++/* Define to 1 if SpiderMonkey is compiled with support for private values at
++ * odd-numbered memory addresses. */
++#undef JS_UNALIGNED_PRIVATE_VALUES
++
+ /* Define to 1 if SpiderMonkey is in NUNBOX32 mode. */
+ #undef JS_NUNBOX32
+ 
+ /* Define to 1 if SpiderMonkey is in PUNBOX64 mode. */
+ #undef JS_PUNBOX64
+ 
++/* Define exactly one of these to 1 to indicate JIT code generation mode. */
++#undef JS_CODEGEN_NONE
++#undef JS_CODEGEN_ARM
++#undef JS_CODEGEN_ARM64
++#undef JS_CODEGEN_MIPS32
++#undef JS_CODEGEN_MIPS64
++#undef JS_CODEGEN_X86
++#undef JS_CODEGEN_X64
++
+ /* MOZILLA JSAPI version number components */
+ #undef MOZJS_MAJOR_VERSION
+ #undef MOZJS_MINOR_VERSION
+Index: firefox-60.9.0/js/src/jsapi.cpp
+===================================================================
+--- firefox-60.9.0.orig/js/src/jsapi.cpp       2019-09-01 15:09:18.000000000 
+0200
++++ firefox-60.9.0/js/src/jsapi.cpp    2019-12-09 11:43:13.052302975 +0100
+@@ -115,6 +115,14 @@
+ #define JS_ADDRESSOF_VA_LIST(ap) (&(ap))
+ #endif
+ 
++// See preprocessor definition of JS_BITS_PER_WORD in jstypes.h; make sure
++// JS_64BIT (used internally) agrees with it
++#ifdef JS_64BIT
++static_assert(JS_BITS_PER_WORD == 64, "values must be in sync");
++#else
++static_assert(JS_BITS_PER_WORD == 32, "values must be in sync");
++#endif
++
+ JS_PUBLIC_API bool JS::CallArgs::requireAtLeast(JSContext* cx,
+                                                 const char* fnname,
+                                                 unsigned required) const {
+Index: firefox-60.9.0/js/src/jstypes.h
+===================================================================
+--- firefox-60.9.0.orig/js/src/jstypes.h       2019-09-01 15:09:18.000000000 
+0200
++++ firefox-60.9.0/js/src/jstypes.h    2019-12-09 11:43:13.052302975 +0100
+@@ -141,12 +141,17 @@
+ #define JS_BITS_PER_BYTE 8
+ #define JS_BITS_PER_BYTE_LOG2 3
+ 
+-#if defined(JS_64BIT)
++#if (defined(__SIZEOF_POINTER__) && __SIZEOF_POINTER__ == 8) || \
++    (defined(UINTPTR_MAX) && UINTPTR_MAX == 0xFFFFFFFFFFFFFFFFu)
+ #define JS_BITS_PER_WORD 64
+ #else
+ #define JS_BITS_PER_WORD 32
+ #endif
+ 
++static_assert(sizeof(void*) == 8 ? JS_BITS_PER_WORD == 64
++                                 : JS_BITS_PER_WORD == 32,
++              "preprocessor and compiler must agree");
++
+ /***********************************************************************
+ ** MACROS:      JS_FUNC_TO_DATA_PTR
+ **              JS_DATA_TO_FUNC_PTR

++++++ icu_sources_data-Write-command-output-to-our-stderr.patch ++++++
From: Simon McVittie <s...@debian.org>
Date: Mon, 9 Oct 2017 09:23:14 +0100
Subject: icu_sources_data: Write command output to our stderr

Saying "See output in /tmp/foobar" is all very well for a developer
build, but on a buildd our /tmp is going to get thrown away after
the build. Just log the usual way instead.
---
 intl/icu_sources_data.py | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/intl/icu_sources_data.py b/intl/icu_sources_data.py
index 8cf9290..7d2d983 100644
--- a/intl/icu_sources_data.py
+++ b/intl/icu_sources_data.py
@@ -84,16 +84,13 @@ def update_sources(topsrcdir):
 
 def try_run(name, command, cwd=None, **kwargs):
     try:
-        with tempfile.NamedTemporaryFile(prefix=name, delete=False) as f:
-            subprocess.check_call(command, cwd=cwd, stdout=f,
+        subprocess.check_call(command, cwd=cwd, stdout=sys.stderr,
                                 stderr=subprocess.STDOUT, **kwargs)
     except subprocess.CalledProcessError:
-        print('''Error running "{}" in directory {}
-    See output in {}'''.format(' '.join(command), cwd, f.name),
+        print('''Error running "{}" in directory {}'''.format(' 
'.join(command), cwd),
             file=sys.stderr)
         return False
     else:
-        os.unlink(f.name)
         return True
 
 
++++++ icu_sources_data.py-Decouple-from-Mozilla-build-system.patch ++++++
From: Simon McVittie <s...@debian.org>
Date: Mon, 9 Oct 2017 09:22:12 +0100
Subject: icu_sources_data.py: Decouple from Mozilla build system

mozpack.path is a wrapper around os.path that normalizes path
separators on Windows, but on Unix we only have one path separator
so there's nothing to normalize. Avoid needing to import all of it.
---
 intl/icu_sources_data.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/intl/icu_sources_data.py b/intl/icu_sources_data.py
index 98c0ccb..8cf9290 100644
--- a/intl/icu_sources_data.py
+++ b/intl/icu_sources_data.py
@@ -19,7 +19,9 @@ import subprocess
 import sys
 import tempfile
 
-from mozpack import path as mozpath
+# Close enough
+import os.path as mozpath
+mozpath.normsep = lambda p: p
 
 
 def find_source_file(dir, filename):
++++++ skip-i586-failing-tests.patch ++++++
Index: firefox-60.9.0/js/src/tests/jstests.list
===================================================================
--- firefox-60.9.0.orig/js/src/tests/jstests.list       2019-12-30 
14:42:52.280553804 +0100
+++ firefox-60.9.0/js/src/tests/jstests.list    2019-12-30 16:08:20.952684820 
+0100
@@ -454,6 +454,16 @@
 # Assumes little-endian IEEE representation of floating point numbers
 fails-if(xulRuntime.XPCOMABI.match(/s390x|ppc64-|ppc-/)) script 
test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
 
+# Doesn't pass on i586, requires SSE2 (i686)
+# Upstream assumes everything uses SSE mathematics, but SSE isn't in i586, so 
we are stuck with i387 and its weird 80-bit floating point registers
+# (and the rounding +# is not what these tests expect)
+# We can't even work around this with -fexcess-precision=standard, because 
mozjs is C++.
+# Debian has the same issue
+fails-if(xulRuntime.XPCOMABI.match(/x86-/)) script 
test262/language/types/number/S8.5_A2.1.js
+fails-if(xulRuntime.XPCOMABI.match(/x86-/)) script 
test262/language/types/number/S8.5_A2.2.js
+fails-if(xulRuntime.XPCOMABI.match(/x86-/)) script 
test262/built-ins/Number/prototype/toPrecision/return-values.js
+fails-if(xulRuntime.XPCOMABI.match(/x86-/)) script non262/Date/timeclip.js
+
 # Fails with system ICU due to different data?
 skip script non262/Intl/DateTimeFormat/tz-environment-variable.js
 skip script non262/Intl/NumberFormat/formatToParts.js
++++++ tests-Expect-a-test-to-fail-on-big-endian.patch ++++++
From: Simon McVittie <s...@debian.org>
Date: Fri, 28 Sep 2018 09:51:33 +0100
Subject: tests: Expect a test to fail on big-endian

Signed-off-by: Simon McVittie <s...@debian.org>
Forwarded: no
---
 js/src/tests/jstests.list | 3 +++
 1 file changed, 3 insertions(+)

Index: firefox-60.9.0/js/src/tests/jstests.list
===================================================================
--- firefox-60.9.0.orig/js/src/tests/jstests.list       2019-12-10 
11:04:22.464247245 +0100
+++ firefox-60.9.0/js/src/tests/jstests.list    2019-12-10 11:15:21.496264080 
+0100
@@ -451,6 +451,8 @@
 #
 skip-if(xulRuntime.XPCOMABI.match(/s390x|ppc64-/)) script 
non262/extensions/clone-errors.js
 
+# Assumes little-endian IEEE representation of floating point numbers
+fails-if(xulRuntime.XPCOMABI.match(/s390x|ppc64-|ppc-/)) script 
test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
 
 ###########################################################
 # Tests disabled due to issues in test262 importer script #

Reply via email to