summaryrefslogtreecommitdiff
path: root/debian/patches
diff options
context:
space:
mode:
authorLisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>2014-02-04 21:41:53 -0300
committerLisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>2014-02-04 21:41:53 -0300
commit285f5a84c232dee43f5ddca6d7140e06f7c28619 (patch)
tree03104058e93b93ade6bef7402f4705896f35ef37 /debian/patches
parentd71f7e3ef86b341db0098819bfe6cae4f78a9fb7 (diff)
downloadqt5webkit-285f5a84c232dee43f5ddca6d7140e06f7c28619.tar.gz
Backport reduce_memory_footprint.patch.
This patch reduces memory footprint when linking by forcing GCC 4.8+ to fully use DWARF-4 debug-types sections.
Diffstat (limited to 'debian/patches')
-rw-r--r--debian/patches/reduce_memory_footprint.patch71
-rw-r--r--debian/patches/series1
2 files changed, 72 insertions, 0 deletions
diff --git a/debian/patches/reduce_memory_footprint.patch b/debian/patches/reduce_memory_footprint.patch
new file mode 100644
index 0000000..a742fe6
--- /dev/null
+++ b/debian/patches/reduce_memory_footprint.patch
@@ -0,0 +1,71 @@
+From 99113b7cc7877d3ff1a4ed522ae0517edcde081b Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen@digia.com>
+Date: Tue, 26 Nov 2013 10:11:27 +0100
+Subject: [PATCH] Reduce memory footprint when linking
+
+Linking QtWebKit on Linux x64 with debug symbols can use up to 11Gbyte
+of memory. This can make it impossible to link on many systems.
+
+This patch forces GCC 4.8+ to fully use DWARF-4 debug-types sections
+to eleminate duplicate symbols and makes earlier GCC versions STABS
+which also uses much less memory.
+
+Task-number: QTBUG-36131
+
+Change-Id: Ib1ba3e073b5984ead3a0badb935e7b89c01b962b
+Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
+---
+ Tools/qmake/mkspecs/features/unix/default_post.prf | 29 +++++++++++++++++-----
+ 1 file changed, 23 insertions(+), 6 deletions(-)
+
+diff --git a/Tools/qmake/mkspecs/features/unix/default_post.prf b/Tools/qmake/mkspecs/features/unix/default_post.prf
+index 2df72d9..79b7208 100644
+--- a/Tools/qmake/mkspecs/features/unix/default_post.prf
++++ b/Tools/qmake/mkspecs/features/unix/default_post.prf
+@@ -12,10 +12,27 @@ linux-g++*:isEqual(QT_ARCH,i386) {
+ QMAKE_CFLAGS += -march=pentium4 -msse2 -mfpmath=sse
+ QMAKE_CXXFLAGS += -march=pentium4 -msse2 -mfpmath=sse
+ }
++}
+
+- # Use the stabs format for 32 bit debug builds to make the object files a bit smaller.
+- QMAKE_CXXFLAGS_DEBUG -= -g
+- QMAKE_CXXFLAGS_DEBUG += -gstabs
++*g++* {
++ # Use DWARF-4 optimally with GCC 4.8+, otherwise use STABS which uses much less memory.
++ greaterThan(QT_GCC_MAJOR_VERSION, 4)|greaterThan(QT_GCC_MINOR_VERSION, 7) {
++ QMAKE_CXXFLAGS_DEBUG += -fdebug-types-section
++ QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -fdebug-types-section
++ separate_debug_info: QMAKE_CXXFLAGS_RELEASE += -fdebug-types-section
++ QMAKE_LFLAGS += -fdebug-types-section
++ } else {
++ # If DWARF-2 is desired -feliminate-dwarf2-dups can be used with GCC 4.7,
++ # but it causes internal compiler errors in older versions of GCC.
++ QMAKE_CXXFLAGS_DEBUG -= -g
++ QMAKE_CXXFLAGS_DEBUG += -gstabs
++ QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO -= -g
++ QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -gstabs
++ separate_debug_info {
++ QMAKE_CXXFLAGS_RELEASE -= -g
++ QMAKE_CXXFLAGS_RELEASE += -gstabs
++ }
++ }
+ }
+
+ linux-*g++* {
+@@ -43,9 +60,9 @@ linux-*g++* {
+
+ contains(TEMPLATE, app): CONFIG += rpath
+
+-isEqual(QT_ARCH,i386):CONFIG(debug, debug|release) {
+- # Make ld not cache the symbol tables of input files in memory to avoid memory exhaustion during the linking phase.
+- config_gnuld: QMAKE_LFLAGS += -Wl,--no-keep-memory
++CONFIG(debug, debug|release)|force_debug_info|separate_debug_info {
++ # Make ld not cache the symbol tables of input files in memory to avoid memory exhaustion during the linking phase.
++ !force_static_libs_as_shared:config_gnuld: QMAKE_LFLAGS += -Wl,--no-keep-memory
+ }
+
+ load(default_post)
+--
+1.9.rc1
+
diff --git a/debian/patches/series b/debian/patches/series
index 7b42e59..8ada334 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,3 +5,4 @@ no_gc_sections.diff
hurd.diff
webkit_qt_hide_symbols.diff
disable_jit_llint.diff
+reduce_memory_footprint.patch