Hello community,
here is the log from the commit of package libqt4 for openSUSE:Factory checked in at 2012-10-05 13:45:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqt4 (Old)
and /work/SRC/openSUSE:Factory/.libqt4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt4", Maintainer is "DMueller@suse.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libqt4/libqt4-devel-doc.changes 2012-09-17 13:58:21.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libqt4.new/libqt4-devel-doc.changes 2012-10-06 18:38:29.000000000 +0200
@@ -1,0 +2,23 @@
+Thu Oct 4 09:25:36 UTC 2012 - dmueller@suse.com
+
+- Disable compression by default to mitigate CRIME attack (CVE-2012-4929)
+
+-------------------------------------------------------------------
+Tue Oct 2 23:03:48 UTC 2012 - hrvoje.senjan@gmail.com
+
+- Revert fix-jit-crash commit responsible for kde#305718
+ undo-fix-jit-crash-on-x86_64.patch
+
+-------------------------------------------------------------------
+Tue Sep 18 15:04:13 UTC 2012 - dmueller@suse.com
+
+- update to 4.8.3:
+ * long list of forward and backward compatible
+ bug fixes. see included changes-4.8.3 for details
+
+-------------------------------------------------------------------
+Wed Aug 22 00:20:20 UTC 2012 - hrvoje.senjan@gmail.com
+
+- Omit qdbusconnection warnings in release/no-debug mode
+
+-------------------------------------------------------------------
libqt4-sql-plugins.changes: same change
--- /work/SRC/openSUSE:Factory/libqt4/libqt4.changes 2012-09-17 13:58:21.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libqt4.new/libqt4.changes 2012-10-06 18:38:29.000000000 +0200
@@ -1,0 +2,18 @@
+Thu Oct 4 09:25:36 UTC 2012 - dmueller@suse.com
+
+- Disable compression by default to mitigate CRIME attack (CVE-2012-4929)
+
+-------------------------------------------------------------------
+Tue Oct 2 23:03:48 UTC 2012 - hrvoje.senjan@gmail.com
+
+- Revert fix-jit-crash commit responsible for kde#305718
+ undo-fix-jit-crash-on-x86_64.patch
+
+-------------------------------------------------------------------
+Tue Sep 18 15:04:13 UTC 2012 - dmueller@suse.com
+
+- update to 4.8.3:
+ * long list of forward and backward compatible
+ bug fixes. see included changes-4.8.3 for details
+
+-------------------------------------------------------------------
Old:
----
qt-everywhere-opensource-src-4.8.1-qdbusconnection_no_debug.patch
qt-everywhere-opensource-src-4.8.2.tar.gz
New:
----
disable-ssl-compression-by-default.patch
qdbusconnection-no-warning-output.patch
qt-everywhere-opensource-src-4.8.3.tar.gz
undo-fix-jit-crash-on-x86_64.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libqt4-devel-doc.spec ++++++
--- /var/tmp/diff_new_pack.k9Gjss/_old 2012-10-06 18:38:41.000000000 +0200
+++ /var/tmp/diff_new_pack.k9Gjss/_new 2012-10-06 18:38:41.000000000 +0200
@@ -34,7 +34,7 @@
%endif
# COMMON-VERSION-BEGIN
# COMMON-VERSION-BEGIN
-Version: 4.8.2
+Version: 4.8.3
Release: 0
%define base_name libqt4
%define tar_version everywhere-opensource-src-%{version}
@@ -94,6 +94,9 @@
Patch131: disable-im-for-password.diff
Patch132: CVE-2011-3922.diff
Patch136: handle-tga-files-properly.diff
+Patch137: qdbusconnection-no-warning-output.patch
+Patch138: undo-fix-jit-crash-on-x86_64.patch
+Patch139: disable-ssl-compression-by-default.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%define common_options --opensource -fast -no-separate-debug-info -shared -xkb -xrender -xcursor -dbus-linked -xfixes -xrandr -xinerama -sm -no-nas-sound -no-rpath -system-libjpeg -system-libpng -accessibility -cups -stl -nis -system-zlib -prefix /usr -L %_libdir -libdir %_libdir -docdir %_docdir/%{base_name} -examplesdir %_libdir/qt4/examples -demosdir %_libdir/qt4/demos -plugindir %plugindir -translationdir /usr/share/qt4/translations -iconv -sysconfdir /etc/settings -datadir /usr/share/qt4/ -no-pch -reduce-relocations -exceptions -system-libtiff -glib -optimized-qmake -no-webkit -no-xmlpatterns -system-sqlite -qt3support -no-sql-mysql -importdir %plugindir/imports -xsync -xinput -gtkstyle
@@ -149,6 +152,9 @@
%patch131 -p1
%patch132
%patch136
+%patch137
+%patch138 -Rp1
+%patch139 -p1
# ### 47 rediff
#%patch121 -p1
# be sure not to use them
libqt4-sql-plugins.spec: same change
++++++ libqt4.spec ++++++
--- /var/tmp/diff_new_pack.k9Gjss/_old 2012-10-06 18:38:41.000000000 +0200
+++ /var/tmp/diff_new_pack.k9Gjss/_new 2012-10-06 18:38:41.000000000 +0200
@@ -65,7 +65,7 @@
Provides: qt = 4.4.0
Obsoletes: libqt4-dbus-1 < 4.4.0
# COMMON-VERSION-BEGIN
-Version: 4.8.2
+Version: 4.8.3
Release: 0
%define base_name libqt4
%define tar_version everywhere-opensource-src-%{version}
@@ -110,7 +110,9 @@
Patch131: disable-im-for-password.diff
Patch132: CVE-2011-3922.diff
Patch136: handle-tga-files-properly.diff
-Patch137: qt-everywhere-opensource-src-4.8.1-qdbusconnection_no_debug.patch
+Patch137: qdbusconnection-no-warning-output.patch
+Patch138: undo-fix-jit-crash-on-x86_64.patch
+Patch139: disable-ssl-compression-by-default.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%define common_options --opensource -fast -no-separate-debug-info -shared -xkb -xrender -xcursor -dbus-linked -xfixes -xrandr -xinerama -sm -no-nas-sound -no-rpath -system-libjpeg -system-libpng -accessibility -cups -stl -nis -system-zlib -prefix /usr -L %_libdir -libdir %_libdir -docdir %_docdir/%{base_name} -examplesdir %_libdir/qt4/examples -demosdir %_libdir/qt4/demos -plugindir %plugindir -translationdir /usr/share/qt4/translations -iconv -sysconfdir /etc/settings -datadir /usr/share/qt4/ -no-pch -reduce-relocations -exceptions -system-libtiff -glib -optimized-qmake -no-webkit -no-xmlpatterns -system-sqlite -qt3support -no-sql-mysql -importdir %plugindir/imports -xsync -xinput -gtkstyle
@@ -166,7 +168,9 @@
%patch131 -p1
%patch132
%patch136
-%patch137 -p1
+%patch137
+%patch138 -Rp1
+%patch139 -p1
# ### 47 rediff
#%patch121 -p1
# be sure not to use them
@@ -297,7 +301,7 @@
%package -n libQtWebKit4
Summary: Open source Web Browser engine based on Qt4
-License: BSD-3-Clause ; LGPL-2.0+
+License: BSD-3-Clause and LGPL-2.0+
Group: Development/Libraries/C and C++
Requires: libqt4-x11 = %version
Provides: libQtDeclarative4 = 4.6.0
@@ -313,7 +317,7 @@
%package -n libQtWebKit-devel
Summary: Open source Web Browser engine based on Qt4
-License: BSD-3-Clause ; LGPL-2.0+
+License: BSD-3-Clause and LGPL-2.0+
Group: Development/Libraries/C and C++
Requires: libQtWebKit4 = %version
Requires: libqt4-devel = %version
++++++ disable-ssl-compression-by-default.patch ++++++
commit d41dc3e101a694dec98d7bbb582d428d209e5401
Author: Richard Moore
Date: Fri Sep 14 00:13:08 2012 +0100
Disable SSL compression by default.
Disable SSL compression by default since this appears to be the a likely
cause of the currently hyped CRIME attack.
This is a backport of 5ea896fbc63593f424a7dfbb11387599c0025c74
Change-Id: I6eeefb23c6b140a9633b28ed85879459c474348a
Reviewed-by: Thiago Macieira
Reviewed-by: Peter Hartmann
diff --git a/src/network/ssl/qssl.cpp b/src/network/ssl/qssl.cpp
index 49e086f..9578178 100644
--- a/src/network/ssl/qssl.cpp
+++ b/src/network/ssl/qssl.cpp
@@ -148,8 +148,9 @@ QT_BEGIN_NAMESPACE
By default, SslOptionDisableEmptyFragments is turned on since this causes
problems with a large number of servers. SslOptionDisableLegacyRenegotiation
- is also turned on, since it introduces a security risk. The other options
- are turned off.
+ is also turned on, since it introduces a security risk.
+ SslOptionDisableCompression is turned on to prevent the attack publicised by
+ CRIME. The other options are turned off.
Note: Availability of above options depends on the version of the SSL
backend in use.
diff --git a/src/network/ssl/qsslconfiguration.cpp b/src/network/ssl/qsslconfiguration.cpp
index 24c7b77..3a05f54 100644
--- a/src/network/ssl/qsslconfiguration.cpp
+++ b/src/network/ssl/qsslconfiguration.cpp
@@ -201,7 +201,9 @@ bool QSslConfiguration::isNull() const
d->privateKey.isNull() &&
d->peerCertificate.isNull() &&
d->peerCertificateChain.count() == 0 &&
- d->sslOptions == (QSsl::SslOptionDisableEmptyFragments|QSsl::SslOptionDisableLegacyRenegotiation));
+ d->sslOptions == ( QSsl::SslOptionDisableEmptyFragments
+ |QSsl::SslOptionDisableLegacyRenegotiation
+ |QSsl::SslOptionDisableCompression));
}
/*!
diff --git a/src/network/ssl/qsslconfiguration_p.h b/src/network/ssl/qsslconfiguration_p.h
index 74f17cd..c36b651 100644
--- a/src/network/ssl/qsslconfiguration_p.h
+++ b/src/network/ssl/qsslconfiguration_p.h
@@ -83,7 +83,9 @@ public:
: protocol(QSsl::SecureProtocols),
peerVerifyMode(QSslSocket::AutoVerifyPeer),
peerVerifyDepth(0),
- sslOptions(QSsl::SslOptionDisableEmptyFragments|QSsl::SslOptionDisableLegacyRenegotiation)
+ sslOptions(QSsl::SslOptionDisableEmptyFragments
+ |QSsl::SslOptionDisableLegacyRenegotiation
+ |QSsl::SslOptionDisableCompression)
{ }
QSslCertificate peerCertificate;
++++++ qdbusconnection-no-warning-output.patch ++++++
--- src/dbus/qdbusconnection.cpp
+++ src/dbus/qdbusconnection.cpp
@@ -1109,8 +1109,10 @@
// make sure this connection is running on the main thread
QCoreApplication *instance = QCoreApplication::instance();
if (!instance) {
+#ifndef QT_NO_DEBUG
qWarning("QDBusConnection: %s D-Bus connection created before QCoreApplication. Application may misbehave.",
type == SessionBus ? "session" : type == SystemBus ? "system" : "generic");
+#endif
} else if (QDBusConnectionPrivate::d(*this)) {
QDBusConnectionPrivate::d(*this)->moveToThread(instance->thread());
}
++++++ qt-everywhere-opensource-src-4.8.2.tar.gz -> qt-everywhere-opensource-src-4.8.3.tar.gz ++++++
/work/SRC/openSUSE:Factory/libqt4/qt-everywhere-opensource-src-4.8.2.tar.gz /work/SRC/openSUSE:Factory/.libqt4.new/qt-everywhere-opensource-src-4.8.3.tar.gz differ: char 5, line 1
++++++ qt-never-strip.diff ++++++
--- /var/tmp/diff_new_pack.k9Gjss/_old 2012-10-06 18:38:42.000000000 +0200
+++ /var/tmp/diff_new_pack.k9Gjss/_new 2012-10-06 18:38:42.000000000 +0200
@@ -1,8 +1,6 @@
-Index: configure
-===================================================================
---- configure.orig
+--- configure
+++ configure
-@@ -65,7 +65,6 @@ OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,
+@@ -65,7 +65,6 @@
# initialize global variables
QMAKE_SWITCHES=
@@ -10,7 +8,7 @@
QMAKE_CONFIG=
QTCONFIG_CONFIG=
QT_CONFIG=
-@@ -1521,7 +1520,7 @@ while [ "$#" -gt 0 ]; do
+@@ -1607,7 +1606,7 @@
QMakeVar add QMAKE_CFLAGS -pg
QMakeVar add QMAKE_CXXFLAGS -pg
QMakeVar add QMAKE_LFLAGS -pg
@@ -19,8 +17,8 @@
else
UNKNOWN_OPT=yes
fi
-@@ -3225,6 +3224,8 @@ if [ "$OPT_VERBOSE" = "yes" ]; then
- fi
+@@ -3338,6 +3337,8 @@
+ DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
fi
+QMakeVar add CONFIG nostrip
++++++ undo-fix-jit-crash-on-x86_64.patch ++++++
Description: Fix JIT crash on x86-64 (avoid 32-bit branch offset overflow)
.
Cherry-picked from webkit commit
a5b3261a8c4386b4e14ce40a34c7fc933a5f7001
Origin: commit ada98493bbfbd9af0d0b593017e29d39bcd3495e
Author: Kent Hansen
Forwarded: not-needed
Applied-Upstream: yes
Reviewed-by: Simon Hausmann
Reviewed-by: Kent Hansen
---
.../javascriptcore/JavaScriptCore/ChangeLog | 27 +++++++++++++++++
.../JavaScriptCore/JavaScriptCore.pri | 1 +
.../JavaScriptCore/jit/ExecutableAllocator.cpp | 21 +++++++++++++
.../jit/ExecutableAllocatorFixedVMPool.cpp | 31 +++++++++++++-------
.../jit/ExecutableAllocatorPosix.cpp | 29 ++----------------
.../jit/ExecutableAllocatorSymbian.cpp | 2 +-
.../JavaScriptCore/jit/ExecutableAllocatorWin.cpp | 2 +-
.../javascriptcore/JavaScriptCore/wtf/Platform.h | 10 +++++++
8 files changed, 84 insertions(+), 39 deletions(-)
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog b/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
index 9cbf0c1..5ab23e6 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/ChangeLog
@@ -1,3 +1,30 @@
+2010-07-08 Gavin Barraclough
+
+ Reviewed by Sam Weinig.
+
+ https://bugs.webkit.org/show_bug.cgi?id=41641
+
+ Update compile flags to allow use of ExecutableAllocatorFixedVMPool on platforms
+ other than x86-64 (this may be useful on 32-bit platforms, too).
+
+ Simplify ifdefs by dividing into thwo broad allocation strategies
+ (ENABLE_EXECUTABLE_ALLOCATOR_FIXED & ENABLE_EXECUTABLE_ALLOCATOR_DEMAND).
+
+ Rename constant used in the code to have names descriptive of their purpose,
+ rather than their specific value on a given platform.
+
+ * jit/ExecutableAllocator.cpp:
+ (JSC::ExecutableAllocator::reprotectRegion):
+ (JSC::ExecutableAllocator::cacheFlush):
+ * jit/ExecutableAllocatorFixedVMPool.cpp:
+ (JSC::FixedVMPoolAllocator::FixedVMPoolAllocator):
+ (JSC::FixedVMPoolAllocator::free):
+ (JSC::ExecutablePool::systemAlloc):
+ * jit/ExecutableAllocatorPosix.cpp:
+ * jit/ExecutableAllocatorSymbian.cpp:
+ * jit/ExecutableAllocatorWin.cpp:
+ * wtf/Platform.h:
+
2010-08-24 Oliver Hunt
Reviewed by Geoff Garen.
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri b/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
index b061321..847f69c 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
@@ -100,6 +100,7 @@ SOURCES += \
interpreter/CallFrame.cpp \
interpreter/Interpreter.cpp \
interpreter/RegisterFile.cpp \
+ jit/ExecutableAllocatorFixedVMPool.cpp \
jit/ExecutableAllocatorPosix.cpp \
jit/ExecutableAllocatorSymbian.cpp \
jit/ExecutableAllocatorWin.cpp \
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocator.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocator.cpp
index f6b27ec..f0ebbab 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocator.cpp
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocator.cpp
@@ -33,6 +33,27 @@ namespace JSC {
size_t ExecutableAllocator::pageSize = 0;
+#if ENABLE(ASSEMBLER_WX_EXCLUSIVE)
+void ExecutableAllocator::reprotectRegion(void* start, size_t size, ProtectionSeting setting)
+{
+ if (!pageSize)
+ intializePageSize();
+
+ // Calculate the start of the page containing this region,
+ // and account for this extra memory within size.
+ intptr_t startPtr = reinterpret_cast(start);
+ intptr_t pageStartPtr = startPtr & ~(pageSize - 1);
+ void* pageStart = reinterpret_cast(pageStartPtr);
+ size += (startPtr - pageStartPtr);
+
+ // Round size up
+ size += (pageSize - 1);
+ size &= ~(pageSize - 1);
+
+ mprotect(pageStart, size, (setting == Writable) ? PROTECTION_FLAGS_RW : PROTECTION_FLAGS_RX);
+}
+#endif
+
}
#endif // HAVE(ASSEMBLER)
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp
index dd1db4e..16d0fb1 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp
@@ -27,25 +27,33 @@
#include "ExecutableAllocator.h"
-#include
+#if ENABLE(EXECUTABLE_ALLOCATOR_FIXED)
-#if ENABLE(ASSEMBLER) && OS(DARWIN) && CPU(X86_64)
+#include
#include "TCSpinLock.h"
-#include
-#include
#include
#include
#include
#include
+#if CPU(X86_64)
+ // These limits suitable on 64-bit platforms (particularly x86-64, where we require all jumps to have a 2Gb max range).
+ #define VM_POOL_SIZE (2u * 1024u * 1024u * 1024u) // 2Gb
+ #define COALESCE_LIMIT (16u * 1024u * 1024u) // 16Mb
+#else
+ // These limits are hopefully sensible on embedded platforms.
+ #define VM_POOL_SIZE (32u * 1024u * 1024u) // 32Mb
+ #define COALESCE_LIMIT (4u * 1024u * 1024u) // 4Mb
+#endif
+
+// ASLR currently only works on darwin (due to arc4random) & 64-bit (due to address space size).
+#define VM_POOL_ASLR (OS(DARWIN) && CPU(X86_64))
+
using namespace WTF;
namespace JSC {
-#define TWO_GB (2u * 1024u * 1024u * 1024u)
-#define SIXTEEN_MB (16u * 1024u * 1024u)
-
// FreeListEntry describes a free chunk of memory, stored in the freeList.
struct FreeListEntry {
FreeListEntry(void* pointer, size_t size)
@@ -291,9 +299,12 @@ public:
// for now instead of 2^26 bits of ASLR lets stick with 25 bits of randomization plus
// 2^24, which should put up somewhere in the middle of usespace (in the address range
// 0x200000000000 .. 0x5fffffffffff).
- intptr_t randomLocation = arc4random() & ((1 << 25) - 1);
+ intptr_t randomLocation = 0;
+#if VM_POOL_ASLR
+ randomLocation = arc4random() & ((1 << 25) - 1);
randomLocation += (1 << 24);
randomLocation <<= 21;
+#endif
m_base = mmap(reinterpret_cast(randomLocation), m_totalHeapSize, INITIAL_PROTECTION_FLAGS, MAP_PRIVATE | MAP_ANON, VM_TAG_FOR_EXECUTABLEALLOCATOR_MEMORY, 0);
if (!m_base)
CRASH();
@@ -387,7 +398,7 @@ public:
// 16MB of allocations have been freed, sweep m_freeList
// coalescing any neighboring fragments.
m_countFreedSinceLastCoalesce += size;
- if (m_countFreedSinceLastCoalesce >= SIXTEEN_MB) {
+ if (m_countFreedSinceLastCoalesce >= COALESCE_LIMIT) {
m_countFreedSinceLastCoalesce = 0;
coalesceFreeSpace();
}
@@ -429,7 +440,7 @@ ExecutablePool::Allocation ExecutablePool::systemAlloc(size_t size)
SpinLockHolder lock_holder(&spinlock);
if (!allocator)
- allocator = new FixedVMPoolAllocator(JIT_ALLOCATOR_LARGE_ALLOC_SIZE, TWO_GB);
+ allocator = new FixedVMPoolAllocator(JIT_ALLOCATOR_LARGE_ALLOC_SIZE, VM_POOL_SIZE);
ExecutablePool::Allocation alloc = {reinterpret_cast(allocator->alloc(size)), size};
return alloc;
}
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorPosix.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorPosix.cpp
index 2eb0c87..b04049c 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorPosix.cpp
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorPosix.cpp
@@ -27,7 +27,7 @@
#include "ExecutableAllocator.h"
-#if ENABLE(ASSEMBLER) && OS(UNIX) && !OS(SYMBIAN)
+#if ENABLE(EXECUTABLE_ALLOCATOR_DEMAND) && !OS(WINDOWS) && !OS(SYMBIAN)
#include
#include
@@ -35,8 +35,6 @@
namespace JSC {
-#if !(OS(DARWIN) && !PLATFORM(QT) && CPU(X86_64))
-
void ExecutableAllocator::intializePageSize()
{
ExecutableAllocator::pageSize = getpagesize();
@@ -57,29 +55,6 @@ void ExecutablePool::systemRelease(const ExecutablePool::Allocation& alloc)
ASSERT_UNUSED(result, !result);
}
-#endif // !(OS(DARWIN) && !PLATFORM(QT) && CPU(X86_64))
-
-#if ENABLE(ASSEMBLER_WX_EXCLUSIVE)
-void ExecutableAllocator::reprotectRegion(void* start, size_t size, ProtectionSeting setting)
-{
- if (!pageSize)
- intializePageSize();
-
- // Calculate the start of the page containing this region,
- // and account for this extra memory within size.
- intptr_t startPtr = reinterpret_cast(start);
- intptr_t pageStartPtr = startPtr & ~(pageSize - 1);
- void* pageStart = reinterpret_cast(pageStartPtr);
- size += (startPtr - pageStartPtr);
-
- // Round size up
- size += (pageSize - 1);
- size &= ~(pageSize - 1);
-
- mprotect(pageStart, size, (setting == Writable) ? PROTECTION_FLAGS_RW : PROTECTION_FLAGS_RX);
-}
-#endif
-
}
-#endif // HAVE(ASSEMBLER)
+#endif
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorSymbian.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorSymbian.cpp
index e82975c..9028f50 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorSymbian.cpp
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorSymbian.cpp
@@ -22,7 +22,7 @@
#include "ExecutableAllocator.h"
-#if ENABLE(ASSEMBLER) && OS(SYMBIAN)
+#if ENABLE(EXECUTABLE_ALLOCATOR_DEMAND) && OS(SYMBIAN)
#include
#include
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorWin.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorWin.cpp
index e38323c..72a1d5f 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorWin.cpp
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorWin.cpp
@@ -27,7 +27,7 @@
#include "ExecutableAllocator.h"
-#if ENABLE(ASSEMBLER) && OS(WINDOWS)
+#if ENABLE(EXECUTABLE_ALLOCATOR_DEMAND) && OS(WINDOWS)
#include "windows.h"
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
index 700977e..d930ed7 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
@@ -1016,6 +1016,16 @@ on MinGW. See https://bugs.webkit.org/show_bug.cgi?id=29268 */
#define ENABLE_ASSEMBLER_WX_EXCLUSIVE 0
#endif
+/* Pick which allocator to use; we only need an executable allocator if the assembler is compiled in.
+ On x86-64 we use a single fixed mmap, on other platforms we mmap on demand. */
+#if ENABLE(ASSEMBLER)
+#if CPU(X86_64)
+#define ENABLE_EXECUTABLE_ALLOCATOR_FIXED 1
+#else
+#define ENABLE_EXECUTABLE_ALLOCATOR_DEMAND 1
+#endif
+#endif
+
#if !defined(ENABLE_PAN_SCROLLING) && OS(WINDOWS)
#define ENABLE_PAN_SCROLLING 1
#endif
--
1.7.10.4
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org