Hello community,
here is the log from the commit of package webkitgtk for openSUSE:Factory checked in at 2014-06-01 18:54:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/webkitgtk (Old)
and /work/SRC/openSUSE:Factory/.webkitgtk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "webkitgtk"
Changes:
--------
--- /work/SRC/openSUSE:Factory/webkitgtk/webkitgtk.changes 2014-05-20 14:24:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.webkitgtk.new/webkitgtk.changes 2014-06-01 18:54:53.000000000 +0200
@@ -1,0 +2,9 @@
+Sun May 18 22:29:37 UTC 2014 - mgorse@suse.com
+
+- Add webkitgtk-commit-size.patch: call mprotect with appropriate
+ arguments on ppc64/s390x (bnc#866728 bgo#721569).
+- Add webkitgtk-js-endian-fixes.patch,
+ webkitgtk-protocall-endian-fix.patch: endian fixes (bnc#866728
+ bgo#721569).
+
+-------------------------------------------------------------------
webkitgtk3.changes: same change
New:
----
webkitgtk-commit-size.patch
webkitgtk-js-endian-fixes.patch
webkitgtk-protocall-endian-fix.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ webkitgtk.spec ++++++
--- /var/tmp/diff_new_pack.5xqr22/_old 2014-06-01 18:54:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5xqr22/_new 2014-06-01 18:54:55.000000000 +0200
@@ -65,6 +65,12 @@
Patch5: webkitgtk-ppc64le.patch
# PATCH-FIX-UPSTREAM webkitgtk-x86-assembler-fix.patch webkit#126985 dimstar@opensuse.org -- Fix build creating invalid assembler code on x86.
Patch6: webkitgtk-x86-assembler-fix.patch
+# PATCH-FIX-UPSTREAM webkitgtk-js-endian-fixes.patch bnc#866728 webkit#128743 mgorse@suse.com -- fix endian issues in the Javascript cloop code
+Patch7: webkitgtk-js-endian-fixes.patch
+# PATCH-FIX-UPSTREAM webkitgtk-commit-size.patch bnc#866728 mgorse@suse.com -- call mprotect with valid size on s390/ppc64.
+Patch8: webkitgtk-commit-size.patch
+# PATCH-FIX-UPSTREAM webkitgtk-protocall-endian-fix.patch webkit#131449 mgorse@suse.com -- fix a Javascript endian issue.
+Patch9: webkitgtk-protocall-endian-fix.patch
BuildRequires: Mesa-devel
BuildRequires: bison
BuildRequires: chrpath
@@ -319,6 +325,11 @@
%patch3 -p1
%patch5 -p1
%patch6 -p2
+%ifarch ppc ppc64 s390 s390x
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%endif
# FIXME: workaround needed in > 1.7.90 to fix build
mkdir -p DerivedSources/webkit
mkdir -p DerivedSources/WebCore
++++++ webkitgtk3.spec ++++++
--- /var/tmp/diff_new_pack.5xqr22/_old 2014-06-01 18:54:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5xqr22/_new 2014-06-01 18:54:55.000000000 +0200
@@ -65,6 +65,12 @@
Patch5: webkitgtk-ppc64le.patch
# PATCH-FIX-UPSTREAM webkitgtk-x86-assembler-fix.patch webkit#126985 dimstar@opensuse.org -- Fix build creating invalid assembler code on x86.
Patch6: webkitgtk-x86-assembler-fix.patch
+# PATCH-FIX-UPSTREAM webkitgtk-js-endian-fixes.patch bnc#866728 webkit#128743 mgorse@suse.com -- fix endian issues in the Javascript cloop code
+Patch7: webkitgtk-js-endian-fixes.patch
+# PATCH-FIX-UPSTREAM webkitgtk-commit-size.patch bnc#866728 mgorse@suse.com -- call mprotect with valid size on s390/ppc64.
+Patch8: webkitgtk-commit-size.patch
+# PATCH-FIX-UPSTREAM webkitgtk-protocall-endian-fix.patch webkit#131449 mgorse@suse.com -- fix a Javascript endian issue.
+Patch9: webkitgtk-protocall-endian-fix.patch
BuildRequires: Mesa-devel
BuildRequires: bison
BuildRequires: chrpath
@@ -319,6 +325,11 @@
%patch3 -p1
%patch5 -p1
%patch6 -p2
+%ifarch ppc ppc64 s390 s390x
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%endif
# FIXME: workaround needed in > 1.7.90 to fix build
mkdir -p DerivedSources/webkit
mkdir -p DerivedSources/WebCore
++++++ webkitgtk-commit-size.patch ++++++
diff -ur webkitgtk-2.4.1.orig/Source/JavaScriptCore/interpreter/JSStack.cpp webkitgtk-2.4.1/Source/JavaScriptCore/interpreter/JSStack.cpp
--- webkitgtk-2.4.1.orig/Source/JavaScriptCore/interpreter/JSStack.cpp 2014-04-14 01:40:44.000000000 -0500
+++ webkitgtk-2.4.1/Source/JavaScriptCore/interpreter/JSStack.cpp 2014-05-17 13:39:29.326005975 -0500
@@ -49,7 +49,8 @@
{
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);
updateStackLimit(highAddress());
m_commitEnd = highAddress();
@@ -80,7 +81,8 @@
// 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(m_commitEnd) - reinterpret_cast(newEnd), commitSize);
+ size_t commitsize = PageSize();
+ long delta = roundUpAllocationSize(reinterpret_cast(m_commitEnd) - reinterpret_cast(newEnd), commitsize);
if (reinterpret_cast(m_commitEnd) - delta <= reinterpret_cast(m_useableEnd))
return false;
@@ -149,7 +151,8 @@
void JSStack::disableErrorStackReserve()
{
- char* useableEnd = reinterpret_cast(reservationEnd()) + commitSize;
+ size_t commitsize = PageSize();
+ char* useableEnd = reinterpret_cast(reservationEnd()) + commitsize;
m_useableEnd = reinterpret_cast_ptr(useableEnd);
// By the time we get here, we are guaranteed to be destructing the last
++++++ webkitgtk-js-endian-fixes.patch ++++++
diff -ur webkitgtk-2.4.1.orig/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp webkitgtk-2.4.1/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
--- webkitgtk-2.4.1.orig/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp 2014-04-14 01:40:44.000000000 -0500
+++ webkitgtk-2.4.1/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp 2014-05-17 13:29:06.022182987 -0500
@@ -1354,7 +1354,7 @@
CodeBlock* codeBlock = exec->codeBlock();
ConcurrentJITLocker locker(codeBlock->m_lock);
pc[5].u.structure.set(exec->vm(), codeBlock->ownerExecutable(), scope->structure());
- pc[6].u.operand = slot.cachedOffset();
+ pc[6].u.pointer = reinterpret_cast(slot.cachedOffset());
}
}
@@ -1381,7 +1381,7 @@
if (slot.isCacheable() && slot.base() == scope && scope->structure()->propertyAccessesAreCacheable()) {
ConcurrentJITLocker locker(codeBlock->m_lock);
pc[5].u.structure.set(exec->vm(), codeBlock->ownerExecutable(), scope->structure());
- pc[6].u.operand = slot.cachedOffset();
+ pc[6].u.pointer = reinterpret_cast(slot.cachedOffset());
}
}
diff -ur webkitgtk-2.4.1.orig/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm webkitgtk-2.4.1/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
--- webkitgtk-2.4.1.orig/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm 2014-04-14 01:40:44.000000000 -0500
+++ webkitgtk-2.4.1/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm 2014-05-17 13:28:11.310181736 -0500
@@ -2047,7 +2047,7 @@
end
macro getProperty()
- loadisFromInstruction(6, t1)
+ loadpFromInstruction(6, t1)
loadPropertyAtVariableOffset(t1, t0, t2)
valueProfile(t2, 7, t0)
loadisFromInstruction(1, t0)
@@ -2121,7 +2121,7 @@
macro putProperty()
loadisFromInstruction(3, t1)
loadConstantOrVariable(t1, t2)
- loadisFromInstruction(6, t1)
+ loadpFromInstruction(6, t1)
storePropertyAtVariableOffset(t1, t0, t2)
end
++++++ webkitgtk-protocall-endian-fix.patch ++++++
diff -ur webkitgtk-2.4.1.orig/Source/JavaScriptCore/ChangeLog webkitgtk-2.4.1/Source/JavaScriptCore/ChangeLog
--- webkitgtk-2.4.1.orig/Source/JavaScriptCore/ChangeLog 2014-04-14 05:47:50.000000000 -0500
+++ webkitgtk-2.4.1/Source/JavaScriptCore/ChangeLog 2014-05-17 13:24:57.545177307 -0500
@@ -1,3 +1,39 @@
+2014-04-09 Mark Lam
+
+ Ensure that LLINT accessing of the ProtoCallFrame is big endian friendly.
+ https://webkit.org/b/131449
+
+ Reviewed by Mark Hahnenberg.
+
+ Change ProtoCallFrame::paddedArgCount to be of type uint32_t. The argCount
+ that it pads is of type int anyway. It doesn't need to be 64 bit. This
+ also makes it work with the LLINT which is loading it with a loadi
+ instruction.
+
+ We should add the PayLoadOffset to ProtoCallFrame::argCountAndCodeOriginValue
+ when loading the argCount.
+
+ The paddedArgCount issue was causing failures when running the JSC tests on a
+ 64-bit big endian machine. In this case, the paddedArgCount in the
+ ProtoCallFrame has the value 2. However, because the paddedArgCount was stored
+ as a 64-bit size_t and the LLINT was loading only the low address 32-bits of
+ that field, the LLINT got a value of 0 instead of the expected 2. With this
+ patch, we now have a matching store and load of a 32-bit value, and endianness
+ no longer comes into play.
+
+ As for ProtoCallFrame::argCountAndCodeOriginValue, the argCount is stored in
+ the payload field of the Register. In the definition of EncodedValueDescriptor,
+ We already ensure that that the payload is in the least significant 32-bits for
+ little endian machines, and in the most significant 32-bits for big endian
+ machines. This means that there is no endianness bug when loading this value
+ using loadi. However, adding the PayLoadOffset clarifies the intent of the
+ code to load the payload part of the Register value.
+
+ * interpreter/ProtoCallFrame.h:
+ (JSC::ProtoCallFrame::setPaddedArgCount):
+ * llint/LowLevelInterpreter32_64.asm:
+ * llint/LowLevelInterpreter64.asm:
+
2014-03-12 Mark Lam
Update type of local vars to match the type of String length.
diff -ur webkitgtk-2.4.1.orig/Source/JavaScriptCore/interpreter/ProtoCallFrame.h webkitgtk-2.4.1/Source/JavaScriptCore/interpreter/ProtoCallFrame.h
--- webkitgtk-2.4.1.orig/Source/JavaScriptCore/interpreter/ProtoCallFrame.h 2014-04-14 01:40:44.000000000 -0500
+++ webkitgtk-2.4.1/Source/JavaScriptCore/interpreter/ProtoCallFrame.h 2014-05-17 13:23:09.545174838 -0500
@@ -36,7 +36,7 @@
Register calleeValue;
Register argCountAndCodeOriginValue;
Register thisArg;
- size_t paddedArgCount;
+ uint32_t paddedArgCount;
JSValue *args;
void init(CodeBlock*, JSScope*, JSObject*, JSValue, int, JSValue* otherArgs = 0);
@@ -53,7 +53,7 @@
int argumentCountIncludingThis() const { return argCountAndCodeOriginValue.payload(); }
int argumentCount() const { return argumentCountIncludingThis() - 1; }
void setArgumentCountIncludingThis(int count) { argCountAndCodeOriginValue.payload() = count; }
- void setPaddedArgsCount(size_t argCount) { paddedArgCount = argCount; }
+ void setPaddedArgsCount(uint32_t argCount) { paddedArgCount = argCount; }
void clearCurrentVPC() { argCountAndCodeOriginValue.tag() = 0; }
diff -ur webkitgtk-2.4.1.orig/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm webkitgtk-2.4.1/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
--- webkitgtk-2.4.1.orig/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm 2014-04-14 01:40:44.000000000 -0500
+++ webkitgtk-2.4.1/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm 2014-05-17 13:23:09.547174838 -0500
@@ -282,7 +282,7 @@
storep temp3, CodeBlock+4[cfr, temp1, 8]
btinz temp1, .copyHeaderLoop
- loadi ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2
+ loadi PayloadOffset + ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2
subi 1, temp2
loadi ProtoCallFrame::paddedArgCount[protoCallFrame], temp3
subi 1, temp3
diff -ur webkitgtk-2.4.1.orig/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm webkitgtk-2.4.1/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
--- webkitgtk-2.4.1.orig/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm 2014-04-14 01:40:44.000000000 -0500
+++ webkitgtk-2.4.1/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm 2014-05-17 13:23:09.549174838 -0500
@@ -171,7 +171,7 @@
storep temp3, CodeBlock[cfr, temp1, 8]
btinz temp1, .copyHeaderLoop
- loadi ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2
+ loadi PayloadOffset + ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2
subi 1, temp2
loadi ProtoCallFrame::paddedArgCount[protoCallFrame], temp3
subi 1, temp3
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org