From 97255204adc21c071dff2712708d041935faabf8 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Jun 10 2014 14:02:36 +0000 Subject: import webkitgtk3-2.0.4-6.el7_0.1 --- diff --git a/SOURCES/webkitgtk-2.0.4-cloop_fix.patch b/SOURCES/webkitgtk-2.0.4-cloop_fix.patch new file mode 100644 index 0000000..63ff18b --- /dev/null +++ b/SOURCES/webkitgtk-2.0.4-cloop_fix.patch @@ -0,0 +1,90 @@ +diff -up webkitgtk-2.0.4/Source/JavaScriptCore/llint/LowLevelInterpreter.asm.cloop_fix webkitgtk-2.0.4/Source/JavaScriptCore/llint/LowLevelInterpreter.asm +--- webkitgtk-2.0.4/Source/JavaScriptCore/llint/LowLevelInterpreter.asm.cloop_fix 2014-05-12 15:38:39.748538807 +0200 ++++ webkitgtk-2.0.4/Source/JavaScriptCore/llint/LowLevelInterpreter.asm 2014-05-12 15:36:46.908580462 +0200 +@@ -541,7 +541,7 @@ end + + macro putToBaseVariableBody(variableOffset, scratch1, scratch2, scratch3) + loadisFromInstruction(1, scratch1) +- loadp PayloadOffset[cfr, scratch1, 8], scratch1 ++ loadp [cfr, scratch1, 8], scratch1 + loadp JSVariableObject::m_registers[scratch1], scratch1 + loadisFromInstruction(3, scratch2) + if JSVALUE64 +@@ -667,7 +667,7 @@ _llint_op_resolve_global_var: + macro resolveScopedVarBody(resolveOperations) + # First ResolveOperation is to skip scope chain nodes + getScope(macro(dest) +- loadp ScopeChain + PayloadOffset[cfr], dest ++ loadp ScopeChain[cfr], dest + end, + ResolveOperation::m_scopesToSkip[resolveOperations], t1, t2) + loadp JSVariableObject::m_registers[t1], t1 # t1 now contains the activation registers +@@ -692,7 +692,7 @@ _llint_op_resolve_scoped_var_on_top_scop + loadisFromInstruction(1, t3) + + # We know we want the top scope chain entry +- loadp ScopeChain + PayloadOffset[cfr], t1 ++ loadp ScopeChain[cfr], t1 + loadp JSVariableObject::m_registers[t1], t1 # t1 now contains the activation registers + + # Second ResolveOperation tells us what offset to use +@@ -707,14 +707,14 @@ _llint_op_resolve_scoped_var_with_top_sc + # First ResolveOperation tells us what register to check + loadis ResolveOperation::m_activationRegister[t0], t1 + +- loadp PayloadOffset[cfr, t1, 8], t1 ++ loadp [cfr, t1, 8], t1 + + getScope(macro(dest) + btpz t1, .scopeChainNotCreated + loadp JSScope::m_next[t1], dest + jmp .done + .scopeChainNotCreated: +- loadp ScopeChain + PayloadOffset[cfr], dest ++ loadp ScopeChain[cfr], dest + .done: + end, + # Second ResolveOperation tells us how many more nodes to skip +@@ -769,7 +769,7 @@ _llint_op_resolve_base_to_scope: + getResolveOperation(4, t0) + # First ResolveOperation is to skip scope chain nodes + getScope(macro(dest) +- loadp ScopeChain + PayloadOffset[cfr], dest ++ loadp ScopeChain[cfr], dest + end, + ResolveOperation::m_scopesToSkip[t0], t1, t2) + loadisFromInstruction(1, t3) +@@ -787,14 +787,14 @@ _llint_op_resolve_base_to_scope_with_top + # First ResolveOperation tells us what register to check + loadis ResolveOperation::m_activationRegister[t0], t1 + +- loadp PayloadOffset[cfr, t1, 8], t1 ++ loadp [cfr, t1, 8], t1 + + getScope(macro(dest) + btpz t1, .scopeChainNotCreated + loadp JSScope::m_next[t1], dest + jmp .done + .scopeChainNotCreated: +- loadp ScopeChain + PayloadOffset[cfr], dest ++ loadp ScopeChain[cfr], dest + .done: + end, + # Second ResolveOperation tells us how many more nodes to skip +@@ -839,14 +839,14 @@ macro interpretResolveWithBase(opcodeLen + + bineq t2, ResolveOperationSkipTopScopeNode, .notSkipTopScopeNode + loadis ResolveOperation::m_activationRegister[t0], t1 +- loadp PayloadOffset[cfr, t1, 8], t1 ++ loadp [cfr, t1, 8], t1 + + getScope(macro(dest) + btpz t1, .scopeChainNotCreated + loadp JSScope::m_next[t1], dest + jmp .done + .scopeChainNotCreated: +- loadp ScopeChain + PayloadOffset[cfr], dest ++ loadp ScopeChain[cfr], dest + .done: + end, + sizeof ResolveOperation + ResolveOperation::m_scopesToSkip[t0], t1, t2) diff --git a/SOURCES/webkitgtk-2.0.4-ppc64_align.patch b/SOURCES/webkitgtk-2.0.4-ppc64_align.patch new file mode 100644 index 0000000..108396c --- /dev/null +++ b/SOURCES/webkitgtk-2.0.4-ppc64_align.patch @@ -0,0 +1,45 @@ +diff -up webkitgtk-2.0.4/Source/JavaScriptCore/heap/CopiedBlock.h.ppc64_align webkitgtk-2.0.4/Source/JavaScriptCore/heap/CopiedBlock.h +--- webkitgtk-2.0.4/Source/JavaScriptCore/heap/CopiedBlock.h.ppc64_align 2014-05-07 11:13:48.249690429 +0200 ++++ webkitgtk-2.0.4/Source/JavaScriptCore/heap/CopiedBlock.h 2014-05-07 11:14:02.442872375 +0200 +@@ -77,7 +77,7 @@ public: + size_t size(); + size_t capacity(); + +- static const size_t blockSize = 32 * KB; ++ static const size_t blockSize = 64 * KB; + + bool hasWorkList(); + CopyWorkList& workList(); +diff -up webkitgtk-2.0.4/Source/JavaScriptCore/interpreter/JSStack.cpp.ppc64_align webkitgtk-2.0.4/Source/JavaScriptCore/interpreter/JSStack.cpp +--- webkitgtk-2.0.4/Source/JavaScriptCore/interpreter/JSStack.cpp.ppc64_align 2014-05-07 11:14:17.785069040 +0200 ++++ webkitgtk-2.0.4/Source/JavaScriptCore/interpreter/JSStack.cpp 2014-05-07 11:15:15.610810268 +0200 +@@ -49,7 +49,8 @@ JSStack::JSStack(JSGlobalData& globalDat + { + ASSERT(capacity && isPageAligned(capacity)); + +- m_reservation = PageReservation::reserve(roundUpAllocationSize(capacity * sizeof(Register), commitSize), OSAllocator::JSVMStackPages); ++ size_t commitsize = pageSize(); ++ m_reservation = PageReservation::reserve(roundUpAllocationSize(capacity * sizeof(Register), commitsize), OSAllocator::JSVMStackPages); + m_end = static_cast(m_reservation.base()); + m_commitEnd = static_cast(m_reservation.base()); + +@@ -78,7 +79,8 @@ bool JSStack::growSlowCase(Register* new + // Compute the chunk size of additional memory to commit, and see if we + // have it is still within our budget. If not, we'll fail to grow and + // return false. +- long delta = roundUpAllocationSize(reinterpret_cast(newEnd) - reinterpret_cast(m_commitEnd), commitSize); ++ size_t commitsize = pageSize(); ++ long delta = roundUpAllocationSize(reinterpret_cast(newEnd) - reinterpret_cast(m_commitEnd), commitsize); + if (reinterpret_cast(m_commitEnd) + delta > reinterpret_cast(m_useableEnd)) + return false; + +@@ -134,7 +136,8 @@ void JSStack::enableErrorStackReserve() + + void JSStack::disableErrorStackReserve() + { +- char* useableEnd = reinterpret_cast(reservationEnd()) - commitSize; ++ size_t commitsize = pageSize(); ++ char* useableEnd = reinterpret_cast(reservationEnd()) - commitsize; + m_useableEnd = reinterpret_cast(useableEnd); + + // By the time we get here, we are guaranteed to be destructing the last diff --git a/SPECS/webkitgtk3.spec b/SPECS/webkitgtk3.spec index e70d2a8..4fd892a 100644 --- a/SPECS/webkitgtk3.spec +++ b/SPECS/webkitgtk3.spec @@ -11,7 +11,7 @@ Name: webkitgtk3 Version: 2.0.4 -Release: 6%{?dist} +Release: 6%{?dist}.1 Summary: GTK+ Web content engine library Group: Development/Libraries @@ -33,6 +33,8 @@ Patch5: webkitgtk-aarch64.patch Patch6: webkitgtk-2.0.4_translation-updates.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1029783 Patch7: webkitgtk-2.0.4-volume.patch +Patch8: webkitgtk-2.0.4-ppc64_align.patch +Patch9: webkitgtk-2.0.4-cloop_fix.patch BuildRequires: bison BuildRequires: cairo-devel @@ -124,6 +126,14 @@ This package contains developer documentation for %{name}. %patch5 -p1 -b .aarch64 %endif +%ifarch ppc64 +%patch8 -p1 -b .ppc64_align +%endif + +%ifarch ppc64 s390x +%patch9 -p1 -b .cloop_fix +%endif + %build # Use linker flags to reduce memory consumption %global optflags %{optflags} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads @@ -237,6 +247,11 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.la" -delete %changelog +* Mon May 12 2014 Tomas Popela - 2.0.4-6.1 +- Fix memory align in JSC for ppc64 +- Fix CLoop for ppc64 and s390x +- Resolves: rhbz#1097138 + * Tue Jan 28 2014 Tomas Popela - 2.0.4-6 - Enable higher compression for output rpms - Resolves: rhbz#1039590