summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Tools/qmake/mkspecs/features/unix/default_post.prf29
1 files 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 2df72d909..79b72087c 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)