Package: release.debian.org Severity: normal User: [email protected] Usertags: unblock
Please unblock package qt4-x11 This last upload fixes the FTBFS we had on ia64 [0]. I'm including two debdiffs: - qt4-x11_against_sid.diff represents the changes in the last upload wrt the previous one. - qt4-x11_against_wheezy.diff represents all the changes wrt wheezy, including previously unblocked uploads. [0] JFTR, it seems to be a bug in gcc with precompiled headers. The diffstats: $ diffstat qt4-x11_against_sid.diff changelog | 11 +++++++++++ patches/add-winvalid-pch.patch | 16 ---------------- patches/series | 1 - rules | 4 ++++ 4 files changed, 15 insertions(+), 17 deletions(-) $ diffstat qt4-x11_against_wheezy.diff changelog | 44 +++ control | 1 patches/add_missing_map_noreserve.patch | 33 ++ patches/disable-SSL-compression-by-default.patch | 65 +++++ patches/fix_jit_crash_on_x86_64.patch | 283 +++++++++++++++++++++++ patches/series | 3 rules | 6 7 files changed, 432 insertions(+), 3 deletions(-) Kinds regards, Lisandro. unblock qt4-x11/4:4.8.2+dfsg-6 -- System Information: Debian Release: 7.0 Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.2.21+edid (SMP w/2 CPU cores) Locale: LANG=es_AR.UTF-8, LC_CTYPE=es_AR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash
diff -Nru qt4-x11-4.8.2+dfsg/debian/changelog qt4-x11-4.8.2+dfsg/debian/changelog --- qt4-x11-4.8.2+dfsg/debian/changelog 2012-12-16 15:03:58.000000000 -0300 +++ qt4-x11-4.8.2+dfsg/debian/changelog 2012-12-18 07:21:52.000000000 -0300 @@ -1,3 +1,14 @@ +qt4-x11 (4:4.8.2+dfsg-6) unstable; urgency=low + + [ Debian Qt/KDE Maintainers ] + * Hopefully fix ia64 FTBFS: + - Remove add-winvalid.patch. Stephan Schreiber has determined the problem + with the precompiled headers on ia64. Thanks *a lot* Stephan. + - Apply the changes suggested by Stephan to avoid using pre compiled + headers just on ia64. + + -- Lisandro Damián Nicanor Pérez Meyer <[email protected]> Tue, 18 Dec 2012 07:21:48 -0300 + qt4-x11 (4:4.8.2+dfsg-5) unstable; urgency=low * Add some changes in order to determine the reason of the FTBFS on ia64: diff -Nru qt4-x11-4.8.2+dfsg/debian/patches/add-winvalid-pch.patch qt4-x11-4.8.2+dfsg/debian/patches/add-winvalid-pch.patch --- qt4-x11-4.8.2+dfsg/debian/patches/add-winvalid-pch.patch 2012-12-16 14:55:45.000000000 -0300 +++ qt4-x11-4.8.2+dfsg/debian/patches/add-winvalid-pch.patch 1969-12-31 21:00:00.000000000 -0300 @@ -1,16 +0,0 @@ -Description: Add -Winvalid-pch to CFLAGS. - This will allow a more verbose build, which may help us to determine the reason - of the FTBFS on ia64. -Author: Stephan Schreiber <[email protected]> -Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=696096 - ---- a/mkspecs/common/g++-base.conf.orig 2012-12-16 14:36:37.347714646 +0100 -+++ b/mkspecs/common/g++-base.conf 2012-12-16 14:37:45.335717820 +0100 -@@ -25,6 +25,6 @@ - QMAKE_PCH_OUTPUT_EXT = .gch - - QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} --QMAKE_CFLAGS_USE_PRECOMPILE = -include ${QMAKE_PCH_OUTPUT_BASE} -+QMAKE_CFLAGS_USE_PRECOMPILE = -include ${QMAKE_PCH_OUTPUT_BASE} -Winvalid-pch - QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} - QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE diff -Nru qt4-x11-4.8.2+dfsg/debian/patches/series qt4-x11-4.8.2+dfsg/debian/patches/series --- qt4-x11-4.8.2+dfsg/debian/patches/series 2012-12-16 14:51:16.000000000 -0300 +++ qt4-x11-4.8.2+dfsg/debian/patches/series 2012-12-17 21:47:01.000000000 -0300 @@ -51,4 +51,3 @@ no_libicu_message.diff QTBUG-25324_assistant_segfault_on_start_with_gcc_4.7.patch fix_use_after_free_qlocale_unix.patch -add-winvalid-pch.patch diff -Nru qt4-x11-4.8.2+dfsg/debian/rules qt4-x11-4.8.2+dfsg/debian/rules --- qt4-x11-4.8.2+dfsg/debian/rules 2012-12-16 14:48:43.000000000 -0300 +++ qt4-x11-4.8.2+dfsg/debian/rules 2012-12-18 07:21:08.000000000 -0300 @@ -85,6 +85,10 @@ endif endif +ifeq ($(DEB_HOST_ARCH),ia64) + extra_configure_opts += -no-pch +endif + %: dh $@ --with pkgkde_symbolshelper
diff -Nru qt4-x11-4.8.2+dfsg/debian/changelog qt4-x11-4.8.2+dfsg/debian/changelog --- qt4-x11-4.8.2+dfsg/debian/changelog 2012-08-27 17:54:43.000000000 -0300 +++ qt4-x11-4.8.2+dfsg/debian/changelog 2012-12-18 07:21:52.000000000 -0300 @@ -1,3 +1,47 @@ +qt4-x11 (4:4.8.2+dfsg-6) unstable; urgency=low + + [ Debian Qt/KDE Maintainers ] + * Hopefully fix ia64 FTBFS: + - Remove add-winvalid.patch. Stephan Schreiber has determined the problem + with the precompiled headers on ia64. Thanks *a lot* Stephan. + - Apply the changes suggested by Stephan to avoid using pre compiled + headers just on ia64. + + -- Lisandro Damián Nicanor Pérez Meyer <[email protected]> Tue, 18 Dec 2012 07:21:48 -0300 + +qt4-x11 (4:4.8.2+dfsg-5) unstable; urgency=low + + * Add some changes in order to determine the reason of the FTBFS on ia64: + - Re-allow parallel building on ia64. + - Pass -Winvalid-pch to CFLAGS. + See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=696096 for more info. + + -- Lisandro Damián Nicanor Pérez Meyer <[email protected]> Sun, 16 Dec 2012 15:00:35 -0300 + +qt4-x11 (4:4.8.2+dfsg-4) unstable; urgency=medium + + * Really apply add_missing_map_noreserve.patch. Thanks Sune for noticing :) + (Closes: #685524). + * Release to unstable. Keep urgency medium because of the fix for the CRIME + attack. + + -- Lisandro Damián Nicanor Pérez Meyer <[email protected]> Mon, 26 Nov 2012 14:08:14 -0300 + +qt4-x11 (4:4.8.2+dfsg-3) unstable; urgency=medium + + * Apply disable-SSL-compression-by-default.patch. Disables SSL compression + by default since this appears to be the a likely cause of the currently + hyped CRIME attack. Set urgency to medium. + * Build-conflict against libqtwebkit-dev. Upstream said that this should be + the correct way of handling this (Closes: #689265). + * Add fix_jit_crash_on_x86_64.patch, which avoids 32-bit branch offset + overflows. Taken from upstream. + * Add add_missing_map_noreserve.patch. The previous patch uncovered a bug + that happened when memory was reserved in swap. This patch adds a missing + MAP_NORESERVE and fixes error checking. Taken from upstream. + + -- Lisandro Damián Nicanor Pérez Meyer <[email protected]> Fri, 23 Nov 2012 22:09:58 -0300 + qt4-x11 (4:4.8.2+dfsg-2) unstable; urgency=low * Remove Fix-JIT-crash-on-x86-64-avoid-32-bit-branch-offset-o.patch. It seems diff -Nru qt4-x11-4.8.2+dfsg/debian/control qt4-x11-4.8.2+dfsg/debian/control --- qt4-x11-4.8.2+dfsg/debian/control 2012-08-18 16:03:29.000000000 -0300 +++ qt4-x11-4.8.2+dfsg/debian/control 2012-12-16 14:45:20.000000000 -0300 @@ -56,6 +56,7 @@ rsync, unixodbc-dev, zlib1g-dev +Build-Conflicts: libqtwebkit-dev Standards-Version: 3.9.3 Homepage: http://qt-project.org/ Vcs-Git: git://git.debian.org/pkg-kde/qt/qt4-x11.git diff -Nru qt4-x11-4.8.2+dfsg/debian/patches/add_missing_map_noreserve.patch qt4-x11-4.8.2+dfsg/debian/patches/add_missing_map_noreserve.patch --- qt4-x11-4.8.2+dfsg/debian/patches/add_missing_map_noreserve.patch 1969-12-31 21:00:00.000000000 -0300 +++ qt4-x11-4.8.2+dfsg/debian/patches/add_missing_map_noreserve.patch 2012-11-23 18:59:19.000000000 -0300 @@ -0,0 +1,33 @@ +From 24318c77d3fd7441e045c91e1e689391a79b6353 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C4=99drzej=20Nowacki?= <[email protected]> +Date: Mon, 22 Oct 2012 15:17:19 +0200 +Subject: [PATCH] Fix mmap usage. + +Add missing MAP_NORESERVE and fix error checking. + +Special thanks to Olivier JG for debugging the issue. + +Task-number: QTBUG-27322 +Change-Id: Ia9f4aa80415f0127318714912b524131a5b0f18a +--- + .../JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp +index 16d0fb1..e1237e4 100644 +--- a/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp ++++ b/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp +@@ -305,8 +305,8 @@ public: + 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) ++ m_base = mmap(reinterpret_cast<void*>(randomLocation), m_totalHeapSize, INITIAL_PROTECTION_FLAGS, MAP_PRIVATE | MAP_ANON | MAP_NORESERVE, VM_TAG_FOR_EXECUTABLEALLOCATOR_MEMORY, 0); ++ if (m_base == MAP_FAILED) + CRASH(); + + // For simplicity, we keep all memory in m_freeList in a 'released' state. +-- +1.7.10.4 + diff -Nru qt4-x11-4.8.2+dfsg/debian/patches/disable-SSL-compression-by-default.patch qt4-x11-4.8.2+dfsg/debian/patches/disable-SSL-compression-by-default.patch --- qt4-x11-4.8.2+dfsg/debian/patches/disable-SSL-compression-by-default.patch 1969-12-31 21:00:00.000000000 -0300 +++ qt4-x11-4.8.2+dfsg/debian/patches/disable-SSL-compression-by-default.patch 2012-11-23 18:00:02.000000000 -0300 @@ -0,0 +1,65 @@ +Description:: 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 +From: commit d41dc3e101a694dec98d7bbb582d428d209e5401 Mon Sep 17 00:00:00 2001 +Author: Richard Moore <[email protected]> +Change-Id: I6eeefb23c6b140a9633b28ed85879459c474348a +Reviewed-by: Thiago Macieira <[email protected]> +Reviewed-by: Peter Hartmann <[email protected]> +--- + src/network/ssl/qssl.cpp | 5 +++-- + src/network/ssl/qsslconfiguration.cpp | 4 +++- + src/network/ssl/qsslconfiguration_p.h | 4 +++- + 3 files changed, 9 insertions(+), 4 deletions(-) + +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; +-- +1.7.10.4 + diff -Nru qt4-x11-4.8.2+dfsg/debian/patches/fix_jit_crash_on_x86_64.patch qt4-x11-4.8.2+dfsg/debian/patches/fix_jit_crash_on_x86_64.patch --- qt4-x11-4.8.2+dfsg/debian/patches/fix_jit_crash_on_x86_64.patch 1969-12-31 21:00:00.000000000 -0300 +++ qt4-x11-4.8.2+dfsg/debian/patches/fix_jit_crash_on_x86_64.patch 2012-11-23 18:59:20.000000000 -0300 @@ -0,0 +1,283 @@ +From 353d77098aa7c4cd1e795feeb035799cf70f5c72 Mon Sep 17 00:00:00 2001 +From: Kent Hansen <[email protected]> +Date: Thu, 8 Jul 2010 17:26:50 +0000 +Subject: [PATCH] Fix JIT crash on x86-64 (avoid 32-bit branch offset + overflow) + +Cherry-picked from webkit commit +a5b3261a8c4386b4e14ce40a34c7fc933a5f7001 + +Task-number: QTBUG-23871 +Change-Id: Ia028fe072b349e3a7883ae0f6f7298941cc1bc9e +Reviewed-by: Simon Hausmann <[email protected]> +(cherry picked from commit 79ebd39d0d4846cb911ae122d2059e5add568d7e in qtscript) +--- + .../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 + diff -Nru qt4-x11-4.8.2+dfsg/debian/patches/series qt4-x11-4.8.2+dfsg/debian/patches/series --- qt4-x11-4.8.2+dfsg/debian/patches/series 2012-08-21 14:18:28.000000000 -0300 +++ qt4-x11-4.8.2+dfsg/debian/patches/series 2012-12-17 21:47:01.000000000 -0300 @@ -4,6 +4,9 @@ QTBUG-21900_Buttons_in_Qt_applications_not_clickable_when_run_under_gnome-shell.patch QElfParser-fix-type-of-sh_size.patch Fix-cursor-truncate-to-include-line-position.patch +disable-SSL-compression-by-default.patch +fix_jit_crash_on_x86_64.patch +add_missing_map_noreserve.patch # qt-copy patches 0195-compositing-properties.diff diff -Nru qt4-x11-4.8.2+dfsg/debian/rules qt4-x11-4.8.2+dfsg/debian/rules --- qt4-x11-4.8.2+dfsg/debian/rules 2012-08-18 16:35:58.000000000 -0300 +++ qt4-x11-4.8.2+dfsg/debian/rules 2012-12-18 07:21:08.000000000 -0300 @@ -85,12 +85,12 @@ endif endif -ifneq ($(DEB_HOST_ARCH),ia64) - extra_dh_opts += --parallel +ifeq ($(DEB_HOST_ARCH),ia64) + extra_configure_opts += -no-pch endif %: - dh $@ $(extra_dh_opts) --with pkgkde_symbolshelper + dh $@ --with pkgkde_symbolshelper override_dh_auto_configure: # Test broken hppa kernel with glibc >= 2.5

