Hello community, here is the log from the commit of package mozjs60 for openSUSE:Factory checked in at 2019-12-25 10:45:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mozjs60 (Old) and /work/SRC/openSUSE:Factory/.mozjs60.new.6675 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mozjs60" Wed Dec 25 10:45:53 2019 rev:10 rq: version:60.9.0 Changes: -------- --- /work/SRC/openSUSE:Factory/mozjs60/mozjs60.changes 2019-12-23 22:39:53.661884096 +0100 +++ /work/SRC/openSUSE:Factory/.mozjs60.new.6675/mozjs60.changes 2019-12-25 10:46:09.709386941 +0100 @@ -2,39 +1,0 @@ -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. -- Ensure build for x86 is with SSE2 (SSE for floating point math),* - required by upstream (requires switching package to i686). -- 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: ---- 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 tests-Expect-a-test-to-fail-on-big-endian.patch New: ---- icudt60b.dat.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mozjs60.spec ++++++ --- /var/tmp/diff_new_pack.TugKVa/_old 2019-12-25 10:46:15.337389681 +0100 +++ /var/tmp/diff_new_pack.TugKVa/_new 2019-12-25 10:46:15.373389698 +0100 @@ -1,7 +1,7 @@ # # spec file for package mozjs60 # -# Copyright (c) 2019 SUSE LLC +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2018 Luciano Santos <luc1...@linuxmail.org>. # # All modifications and additions to the file contributed by third parties @@ -17,17 +17,6 @@ # -# Firefox only supports i686 -%ifarch %ix86 -ExclusiveArch: i586 i686 -BuildArch: i686 -%{expand:%%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic -msse2 -mfpmath=sse} -%endif - -# use system icu -# keep fallback if something goes wrong -%bcond_without system_icu - %global major 60 Name: mozjs%{major} Version: 60.9.0 @@ -38,6 +27,9 @@ 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 @@ -54,20 +46,6 @@ # 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 BuildRequires: autoconf213 BuildRequires: gcc-c++ @@ -78,9 +56,6 @@ 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 @@ -131,33 +106,16 @@ %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 - -# 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: -%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 +xz -dk %{SOURCE2} +DATFILE=%{SOURCE2} +DATFILE="${DATFILE%.xz}" +mv -v ${DATFILE} ../../config/external/icu/data/ %build cd js/src @@ -166,8 +124,17 @@ 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" {} + - -export CFLAGS="%{optflags}" +# +# 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 CXXFLAGS=$CFLAGS autoconf-2.13 # An out of source directory build is wanted here to prevent failures: @@ -177,21 +144,21 @@ --prefix=%{_prefix} \ --libdir=%{_libdir} \ --includedir=%{_includedir} \ -%if %{with system_icu} - --with-system-icu \ -%else - --without-system-icu \ -%endif + --enable-optimize \ + --enable-pie \ --enable-posix-nspr-emulation \ - --with-system-zlib \ - --enable-tests \ - --disable-strip \ - --with-intl-api \ --enable-readline \ --enable-shared-js \ - --disable-optimize \ - --enable-pie \ + --enable-release \ + --with-intl-api \ + --with-pthreads \ --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 @@ -203,9 +170,7 @@ %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 @@ -222,20 +187,19 @@ install -m 644 %{SOURCE1} . %check -# NEVER DISABLE THOSE TESTS : if they aren't passing, something is wrong, -# don't submit with tests disabled -cd js/src/build_OPT.OBJ +## Tests are currently (60.1.0) failing +#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 -; +#../tests/jstests.py -d -s -t 1800 --no-progress ../build_OPT.OBJ/js/src/shell/js \ +%ifnarch s390 s390x ppc %{power64} +#; %else -|| : +#|| : %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 +# 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 %endif %post -n libmozjs-%{major} -p /sbin/ldconfig ++++++ enddianness.patch ++++++ --- /var/tmp/diff_new_pack.TugKVa/_old 2019-12-25 10:46:16.265390133 +0100 +++ /var/tmp/diff_new_pack.TugKVa/_new 2019-12-25 10:46:16.293390146 +0100 @@ -11,11 +11,11 @@ js/src/vm/StringType.h | 13 +++++++++++++ 4 files changed, 49 insertions(+), 1 deletion(-) -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 @@ +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) { 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"); -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 @@ +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 { /* 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_; -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 +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 @@ -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 @@ +@@ -609,8 +610,15 @@ struct String { 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; -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 +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 @@ -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 @@ +@@ -168,8 +169,20 @@ class JSString : public js::gc::Cell { struct Data { union { struct { @@ -136,89 +136,6 @@ }; uintptr_t flattenData; /* JSRope (temporary while flattening) */ } u1; -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 +-- +2.23.0 +