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 "[email protected]"

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 - [email protected]
+
+- Disable compression by default to mitigate CRIME attack (CVE-2012-4929)
+
+-------------------------------------------------------------------
+Tue Oct  2 23:03:48 UTC 2012 - [email protected]
+
+- 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 - [email protected]
+
+- 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 - [email protected]
+
+- 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 - [email protected]
+
+- Disable compression by default to mitigate CRIME attack (CVE-2012-4929)
+
+-------------------------------------------------------------------
+Tue Oct  2 23:03:48 UTC 2012 - [email protected]
+
+- 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 - [email protected]
+
+- 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 <[email protected]>
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 <[email protected]>
    Reviewed-by: Peter Hartmann <[email protected]>

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 <[email protected]>
Forwarded: not-needed
Applied-Upstream: yes
Reviewed-by: Simon Hausmann <[email protected]>
Reviewed-by: Kent Hansen <[email protected]>
---
 .../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  <[email protected]>
+
+        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  <[email protected]>

         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<intptr_t>(start);
+    intptr_t pageStartPtr = startPtr & ~(pageSize - 1);
+    void* pageStart = reinterpret_cast<void*>(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 <errno.h>
+#if ENABLE(EXECUTABLE_ALLOCATOR_FIXED)

-#if ENABLE(ASSEMBLER) && OS(DARWIN) && CPU(X86_64)
+#include <errno.h>

 #include "TCSpinLock.h"
-#include <mach/mach_init.h>
-#include <mach/vm_map.h>
 #include <sys/mman.h>
 #include <unistd.h>
 #include <wtf/AVLTree.h>
 #include <wtf/VMTags.h>

+#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<void*>(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<char*>(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 <sys/mman.h>
 #include <unistd.h>
@@ -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<intptr_t>(start);
-    intptr_t pageStartPtr = startPtr & ~(pageSize - 1);
-    void* pageStart = reinterpret_cast<void*>(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 <e32hal.h>
 #include <e32std.h>
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to