From 9dbbabdcab0108bec7b3a2b298920dd7062928c6 Mon Sep 17 00:00:00 2001 From: "mostynb@opera.com" Date: Wed, 30 Apr 2014 23:42:32 +0000 Subject: [PATCH] add a linux_use_debug_fission gyp variable for -gsplit-dwarf Since -gsplit-dwarf breaks some extremely useful build tools (eg ccache and icecc), it deserves its own gyp variable. This setting replaces the previous hack, setting binutils_version=0. Background: ccache: https://bugzilla.samba.org/show_bug.cgi?id=10005 icecc: https://github.com/icecc/icecream/issues/86 BUG=352046 Review URL: https://codereview.chromium.org/226613005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267381 0039d316-1c4b-4281-b951-d872f2087c98 --- build/common.gypi | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/build/common.gypi b/build/common.gypi index 9fae86e07b9f19..f49174bdf8bf13 100644 --- a/build/common.gypi +++ b/build/common.gypi @@ -765,6 +765,17 @@ 'linux_use_gold_flags%': 0, }], + # linux_use_debug_fission: whether to use split DWARF debug info + # files. This can reduce link time significantly, but is incompatible + # with some utilities such as icecc and ccache. Requires gold and + # gcc >= 4.8 or clang. + # http://gcc.gnu.org/wiki/DebugFission + ['OS=="linux" and target_arch=="x64"', { + 'linux_use_debug_fission%': 1, + }, { + 'linux_use_debug_fission%': 0, + }], + ['OS=="android" or OS=="ios"', { 'enable_captive_portal_detection%': 0, }, { @@ -1014,6 +1025,7 @@ 'linux_use_bundled_gold%': '<(linux_use_bundled_gold)', 'linux_use_bundled_binutils%': '<(linux_use_bundled_binutils)', 'linux_use_gold_flags%': '<(linux_use_gold_flags)', + 'linux_use_debug_fission%': '<(linux_use_debug_fission)', 'use_canvas_skia%': '<(use_canvas_skia)', 'test_isolation_mode%': '<(test_isolation_mode)', 'test_isolation_outdir%': '<(test_isolation_outdir)', @@ -3227,9 +3239,10 @@ }, { 'cflags': ['-fno-unwind-tables', '-fno-asynchronous-unwind-tables'], }], - # http://gcc.gnu.org/wiki/DebugFission - # Requires gold and gcc >= 4.8 or clang. - ['linux_use_gold_flags==1 and (clang==1 or gcc_version>=48) and binutils_version>=223', { + # TODO(mostynb): shuffle clang/gcc_version/binutils_version + # definitions in to the right scope to use them when setting + # linux_use_debug_fission, so it can be used here alone. + ['linux_use_debug_fission==1 and linux_use_gold_flags==1 and (clang==1 or gcc_version>=48) and binutils_version>=223', { 'cflags': ['-gsplit-dwarf'], 'ldflags': ['-Wl,--gdb-index'], }],