Generate gdb indexing for faster debugging on Linux

If the linker supports it, add the gdb index to the debug symbols, which
makes loading gdb on Qt libraries much faster.

Change-Id: I2ed201c22913b97ac2efaefb5e31636e795ae102
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
bb10
Allan Sandfeld Jensen 2017-12-04 11:34:09 +01:00
parent e2c10e99db
commit 7951d1cdfa
3 changed files with 18 additions and 0 deletions

View File

@ -307,6 +307,11 @@
"type": "linkerSupportsFlag",
"flag": "--enable-new-dtags"
},
"gdb_index": {
"label": "gdb index support",
"type": "linkerSupportsFlag",
"flag": "--gdb-index"
},
"reduce_exports": {
"label": "symbol visibility support",
"type": "compile",
@ -813,6 +818,12 @@
"condition": "config.linux && tests.enable_new_dtags",
"output": [ "privateConfig" ]
},
"enable_gdb_index": {
"label": "Generating GDB index",
"autoDetect": "features.developer-build",
"condition": "config.gcc && !config.clang && (features.debug || features.force_debug_info || features.debug_and_release) && tests.gdb_index",
"output": [ "privateConfig" ]
},
"reduce_exports": {
"label": "Reduce amount of exported symbols",
"condition": "!config.win32 && tests.reduce_exports",
@ -1265,6 +1276,11 @@ Configure with '-qreal float' to create a build that is binary-compatible with 5
"args": "enable_new_dtags",
"condition": "config.linux"
},
{
"type": "feature",
"args": "enable_gdb_index",
"condition": "config.gcc && !config.clang && (features.debug || features.force_debug_info || features.debug_and_release)"
},
"precompile_header",
"ltcg",
{

View File

@ -19,6 +19,7 @@ QMAKE_LFLAGS_THREAD +=
QMAKE_LFLAGS_RPATH = -Wl,-rpath,
QMAKE_LFLAGS_RPATHLINK = -Wl,-rpath-link,
QMAKE_LFLAGS_NEW_DTAGS = -Wl,--enable-new-dtags
QMAKE_LFLAGS_GDB_INDEX = -Wl,--gdb-index
QMAKE_LFLAGS_USE_GOLD = -fuse-ld=gold
# -Bsymbolic-functions (ld) support

View File

@ -80,6 +80,7 @@ stack_protector_strong {
!host_build|!cross_compile {
use_gold_linker: QMAKE_LFLAGS += $$QMAKE_LFLAGS_USE_GOLD
enable_new_dtags: QMAKE_LFLAGS += $$QMAKE_LFLAGS_NEW_DTAGS
enable_gdb_index: QMAKE_LFLAGS += $$QMAKE_LFLAGS_GDB_INDEX
}
dll:win32: QMAKE_LFLAGS += $$QMAKE_LFLAGS_DLL