Hello community, here is the log from the commit of package mozjs17 for openSUSE:Factory checked in at 2015-07-21 13:24:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mozjs17 (Old) and /work/SRC/openSUSE:Factory/.mozjs17.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mozjs17" Changes: -------- --- /work/SRC/openSUSE:Factory/mozjs17/mozjs17.changes 2014-08-03 07:50:40.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.mozjs17.new/mozjs17.changes 2015-07-21 13:24:51.000000000 +0200 @@ -1,0 +2,11 @@ +Fri Jul 3 13:19:29 UTC 2015 - dmuel...@suse.com + +- add aarch64-64k-page.patch: Fix crash on 64kb kernels +- update mozjs-aarch64-support.patch: More fixes for aarch64 + +------------------------------------------------------------------- +Wed Jul 1 12:34:41 UTC 2015 - h...@imb-jena.de + +- no_defined_array.patch: fix milestone.pl to work with perl-5.22 + +------------------------------------------------------------------- New: ---- aarch64-64k-page.patch no_defined_array.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mozjs17.spec ++++++ --- /var/tmp/diff_new_pack.KEloHf/_old 2015-07-21 13:24:52.000000000 +0200 +++ /var/tmp/diff_new_pack.KEloHf/_new 2015-07-21 13:24:52.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package mozjs17 # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # 2013 Wolfgang Rosenauer # # All modifications and additions to the file contributed by third parties @@ -32,6 +32,8 @@ Patch1: mozjs-aarch64-support.patch Patch2: mozjs-ppc64le-support.patch Patch3: mozbug746112-no-decommit-on-large-pages.patch +Patch4: no_defined_array.patch +Patch5: aarch64-64k-page.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: autoconf213 BuildRequires: gcc-c++ @@ -75,6 +77,8 @@ %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 +%patch5 -p1 %build # no need to add build time to binaries ++++++ aarch64-64k-page.patch ++++++ >From f17bc0302100c885c84ebd06cd003aad9774cbb4 Mon Sep 17 00:00:00 2001 From: Mark Salter <msal...@redhat.com> Date: Thu, 13 Mar 2014 13:16:27 -0400 Subject: [PATCH] Fix aarch64 support for 64K pagesize A given AArch64 kernel may be using 4K or 64K pagesizes. When running on a kernel with 64K pagesize, this check causes an intentionally generated segfault: js/src/gc/Memory.cpp: void InitMemorySubsystem() { if (size_t(sysconf(_SC_PAGESIZE)) != PageSize) MOZ_CRASH(); } This happens because PageSize is fixed to 4K at build time. This mess has been cleaned up in mozjs-24 by eliminating the build-time PageSize definition. That is too intrusive for mosjs17, so just set PageSize to 64K at build time and eliminate the check. This will work with both 4K and 64K aarch64 kernels. Signed-off-by: Mark Salter <msal...@redhat.com> --- js/src/gc/Heap.h | 2 +- js/src/gc/Heap.h.rej | 11 +++++++++++ js/src/gc/Memory.cpp | 3 +++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 js/src/gc/Heap.h.rej Index: mozjs17.0.0/js/src/gc/Memory.cpp =================================================================== --- mozjs17.0.0.orig/js/src/gc/Memory.cpp +++ mozjs17.0.0/js/src/gc/Memory.cpp @@ -302,8 +302,11 @@ GetPageFaultCount() void InitMemorySubsystem() { + /* aarch64 may have 64KB or 4KB pages */ +#ifndef __aarch64__ if (size_t(sysconf(_SC_PAGESIZE)) != PageSize) MOZ_CRASH(); +#endif } void * ++++++ mozjs-aarch64-support.patch ++++++ --- /var/tmp/diff_new_pack.KEloHf/_old 2015-07-21 13:24:52.000000000 +0200 +++ /var/tmp/diff_new_pack.KEloHf/_new 2015-07-21 13:24:52.000000000 +0200 @@ -1,13 +1,59 @@ -Index: mozjs17.0.0/mfbt/double-conversion/utils.h -=================================================================== ---- mozjs17.0.0.orig/mfbt/double-conversion/utils.h -+++ mozjs17.0.0/mfbt/double-conversion/utils.h -@@ -58,7 +58,7 @@ +diff --git a/js/src/assembler/jit/ExecutableAllocator.h b/js/src/assembler/jit/ExecutableAllocator.h +index c071c33..90764c3 100644 +--- a/js/src/assembler/jit/ExecutableAllocator.h ++++ b/js/src/assembler/jit/ExecutableAllocator.h +@@ -382,6 +382,12 @@ public: + { + reprotectRegion(start, size, Executable); + } ++#elif WTF_CPU_AARCH64 && WTF_PLATFORM_LINUX ++ static void cacheFlush(void* code, size_t size) ++ { ++ intptr_t end = reinterpret_cast<intptr_t>(code) + size; ++ __builtin___clear_cache(reinterpret_cast<char*>(code), reinterpret_cast<char*>(end)); ++ } + #else + static void makeWritable(void*, size_t) {} + static void makeExecutable(void*, size_t) {} +diff --git a/js/src/assembler/wtf/Platform.h b/js/src/assembler/wtf/Platform.h +index 0c84896..e8763a7 100644 +--- a/js/src/assembler/wtf/Platform.h ++++ b/js/src/assembler/wtf/Platform.h +@@ -325,6 +325,10 @@ + #define WTF_THUMB_ARCH_VERSION 0 + #endif + ++/* CPU(AArch64) - 64-bit ARM */ ++#if defined(__aarch64__) ++#define WTF_CPU_AARCH64 1 ++#endif + + /* WTF_CPU_ARMV5_OR_LOWER - ARM instruction set v5 or earlier */ + /* On ARMv5 and below the natural alignment is required. +diff --git a/js/src/configure.in b/js/src/configure.in +index 15605b2..19fd704 100644 +--- a/js/src/configure.in ++++ b/js/src/configure.in +@@ -1121,6 +1121,10 @@ arm*) + CPU_ARCH=arm + ;; + ++aarch64) ++ CPU_ARCH=aarch64 ++ ;; ++ + mips|mipsel) + CPU_ARCH="mips" + ;; +diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h +index 0eec2d9..fe26dab 100644 +--- a/mfbt/double-conversion/utils.h ++++ b/mfbt/double-conversion/utils.h +@@ -58,6 +58,7 @@ defined(__mips__) || defined(__powerpc__) || \ defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ defined(__SH4__) || defined(__alpha__) || \ -- defined(_MIPS_ARCH_MIPS32R2) -+ defined(_MIPS_ARCH_MIPS32R2) || defined(__aarch64__) ++ defined(__aarch64__) || \ + defined(_MIPS_ARCH_MIPS32R2) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(_M_IX86) || defined(__i386__) || defined(__i386) - #if defined(_WIN32) ++++++ no_defined_array.patch ++++++ defined(@array) has been deprecated since perl v5.6.1, has raised deprecation warnings since perl v5.16, and is fatal since perl v5.22 --- a/js/src/config/milestone.pl 2013-02-11 23:33:22.000000000 +0100 +++ b/js/src/config/milestone.pl 2015-07-01 14:20:14.248283399 +0200 @@ -55,7 +55,7 @@ # my $milestone = Moz::Milestone::getOfficialMilestone($MILESTONE_FILE); -if (defined(@TEMPLATE_FILE)) { +if (@TEMPLATE_FILE) { my $TFILE; foreach $TFILE (@TEMPLATE_FILE) {