Hello community, here is the log from the commit of package xulrunner for openSUSE:Factory checked in at 2013-06-13 22:55:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xulrunner (Old) and /work/SRC/openSUSE:Factory/.xulrunner.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xulrunner" Changes: -------- --- /work/SRC/openSUSE:Factory/xulrunner/xulrunner.changes 2013-05-16 11:44:11.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.xulrunner.new/xulrunner.changes 2013-06-13 22:55:20.000000000 +0200 @@ -1,0 +2,5 @@ +Tue Jun 4 16:24:51 UTC 2013 - [email protected] + +- Fix build on powerpc (ppc-xpcshell.patch) + +------------------------------------------------------------------- New: ---- ppc-xpcshell.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xulrunner.spec ++++++ --- /var/tmp/diff_new_pack.Z5GTJE/_old 2013-06-13 22:55:23.000000000 +0200 +++ /var/tmp/diff_new_pack.Z5GTJE/_new 2013-06-13 22:55:23.000000000 +0200 @@ -81,6 +81,7 @@ Patch20: mozilla-gcc43-enums.patch Patch21: mozilla-gcc43-template_hacks.patch Patch22: mozilla-gcc43-templates_instantiation.patch +Patch23: ppc-xpcshell.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: mozilla-js = %{version} Requires(post): update-alternatives coreutils @@ -201,6 +202,7 @@ %patch21 -p1 %patch22 -p1 %endif +%patch23 -p1 %build # no need to add build time to binaries ++++++ ppc-xpcshell.patch ++++++ Index: mozilla/js/src/gc/Heap.h =================================================================== --- mozilla.orig/js/src/gc/Heap.h +++ mozilla/js/src/gc/Heap.h @@ -110,19 +110,22 @@ struct Cell */ #if defined(SOLARIS) && (defined(__sparc) || defined(__sparcv9)) const size_t PageShift = 13; +const size_t ArenaShift = PageShift; +#elif defined(__powerpc__) +const size_t PageShift = 16; +const size_t ArenaShift = 12; #else const size_t PageShift = 12; +const size_t ArenaShift = PageShift; #endif const size_t PageSize = size_t(1) << PageShift; +const size_t ArenaSize = size_t(1) << ArenaShift; +const size_t ArenaMask = ArenaSize - 1; const size_t ChunkShift = 20; const size_t ChunkSize = size_t(1) << ChunkShift; const size_t ChunkMask = ChunkSize - 1; -const size_t ArenaShift = PageShift; -const size_t ArenaSize = PageSize; -const size_t ArenaMask = ArenaSize - 1; - /* * This is the maximum number of arenas we allow in the FreeCommitted state * before we trigger a GC_SHRINK to release free arenas to the OS. Index: mozilla/js/src/gc/Memory.cpp =================================================================== --- mozilla.orig/js/src/gc/Memory.cpp +++ mozilla/js/src/gc/Memory.cpp @@ -15,6 +15,15 @@ namespace js { namespace gc { +/* Unused memory decommiting requires the arena size match the page size. */ +extern const size_t PageSize; +extern const size_t ArenaSize; +static bool +DecommitEnabled() +{ + return PageSize == ArenaSize; +} + #if defined(XP_WIN) #include "jswin.h" #include <psapi.h> @@ -83,6 +92,9 @@ UnmapPages(void *p, size_t size) bool MarkPagesUnused(void *p, size_t size) { + if (!DecommitEnabled()) + return false; + JS_ASSERT(uintptr_t(p) % PageSize == 0); LPVOID p2 = VirtualAlloc(p, size, MEM_RESET, PAGE_READWRITE); return p2 == p; @@ -352,6 +364,9 @@ UnmapPages(void *p, size_t size) bool MarkPagesUnused(void *p, size_t size) { + if (!DecommitEnabled()) + return false; + JS_ASSERT(uintptr_t(p) % PageSize == 0); int result = madvise(p, size, MADV_DONTNEED); return result != -1; -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
