Hello community,

here is the log from the commit of package MozillaThunderbird for 
openSUSE:Factory checked in at 2013-06-07 10:05:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/MozillaThunderbird (Old)
 and      /work/SRC/openSUSE:Factory/.MozillaThunderbird.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "MozillaThunderbird"

Changes:
--------
--- /work/SRC/openSUSE:Factory/MozillaThunderbird/MozillaThunderbird.changes    
2013-05-16 11:11:11.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.MozillaThunderbird.new/MozillaThunderbird.changes   
    2013-06-07 10:05:17.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Jun  4 20:41:42 UTC 2013 - [email protected]
+
+- prevent xpc-shell crashing on powerpc
+  ppc-xpcshell.patch 
+
+-------------------------------------------------------------------

New:
----
  ppc-xpcshell.patch

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

Other differences:
------------------
++++++ MozillaThunderbird.spec ++++++
--- /var/tmp/diff_new_pack.V8vnoD/_old  2013-06-07 10:05:20.000000000 +0200
+++ /var/tmp/diff_new_pack.V8vnoD/_new  2013-06-07 10:05:20.000000000 +0200
@@ -76,6 +76,7 @@
 Patch4:         mozilla-kde.patch
 Patch5:         mozilla-arm-disable-edsp.patch
 Patch7:         mozilla-ppc.patch
+Patch8:         ppc-xpcshell.patch
 # SLE11 patches
 Patch10:        mozilla-gcc43-enums.patch
 Patch11:        mozilla-gcc43-template_hacks.patch
@@ -208,6 +209,7 @@
 %endif
 %patch5 -p1
 %patch7 -p1
+%patch8 -p1
 # SLE patches
 %if %suse_version <= 1110
 %patch10 -p1


++++++ 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]

Reply via email to