diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-12-04 11:34:09 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-12-19 11:50:12 +0000 |
commit | 7951d1cdfaab6104535f25f5f47616ba71192344 (patch) | |
tree | a5f708e87f1722243cb292d310bda0e7fbe17ba6 | |
parent | e2c10e99dba1d3e0cf047a103518722b2a0eab58 (diff) |
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>
-rw-r--r-- | configure.json | 16 | ||||
-rw-r--r-- | mkspecs/common/gcc-base-unix.conf | 1 | ||||
-rw-r--r-- | mkspecs/features/default_post.prf | 1 |
3 files changed, 18 insertions, 0 deletions
diff --git a/configure.json b/configure.json index 6a37695d02..50d426594a 100644 --- a/configure.json +++ b/configure.json @@ -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", { diff --git a/mkspecs/common/gcc-base-unix.conf b/mkspecs/common/gcc-base-unix.conf index 2d63877dc9..700f228c36 100644 --- a/mkspecs/common/gcc-base-unix.conf +++ b/mkspecs/common/gcc-base-unix.conf @@ -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 diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf index 7e027325bd..9eba5bcf00 100644 --- a/mkspecs/features/default_post.prf +++ b/mkspecs/features/default_post.prf @@ -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 |