diff options
-rw-r--r-- | Tools/qmake/mkspecs/features/unix/default_post.prf | 29 |
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) |