commit webkitgtk for openSUSE:Factory
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<char*>(m_commitEnd) - reinterpret_cast<char*>(newEnd), commitSize); + size_t commitsize = PageSize(); + long delta = roundUpAllocationSize(reinterpret_cast<char*>(m_commitEnd) - reinterpret_cast<char*>(newEnd), commitsize); if (reinterpret_cast<char*>(m_commitEnd) - delta <= reinterpret_cast<char*>(m_useableEnd)) return false; @@ -149,7 +151,8 @@ void JSStack::disableErrorStackReserve() { - char* useableEnd = reinterpret_cast<char*>(reservationEnd()) + commitSize; + size_t commitsize = PageSize(); + char* useableEnd = reinterpret_cast<char*>(reservationEnd()) + commitsize; m_useableEnd = reinterpret_cast_ptr<Register*>(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<void *>(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<void *>(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 <mark.lam@apple.com> + + 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 <mark.lam@apple.com> 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
participants (1)
-
root@hilbert.suse.de