diff options
author | Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com> | 2014-02-04 21:41:53 -0300 |
---|---|---|
committer | Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com> | 2014-02-04 21:41:53 -0300 |
commit | 285f5a84c232dee43f5ddca6d7140e06f7c28619 (patch) | |
tree | 03104058e93b93ade6bef7402f4705896f35ef37 /debian/patches | |
parent | d71f7e3ef86b341db0098819bfe6cae4f78a9fb7 (diff) | |
download | qt5webkit-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.patch | 71 | ||||
-rw-r--r-- | debian/patches/series | 1 |
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 |