Index: build/common.gypi |
diff --git a/build/common.gypi b/build/common.gypi |
index cff6f608d5f00c0e533b23d92c2f05b5ce3b68a6..355a0f953797508c0bc9c379168b343170b0c624 100644 |
--- a/build/common.gypi |
+++ b/build/common.gypi |
@@ -1352,7 +1352,37 @@ |
}, { |
'syzygy_optimize%': 0, |
}], |
- |
+ # Get binutils version so we can enable debug fission if we can. |
+ ['os_posix==1 and OS!="mac" and OS!="ios"', { |
+ 'conditions': [ |
+ # compiler_version doesn't work with clang |
+ # TODO(mithro): Land https://codereview.chromium.org/199793014/ so |
+ # compiler_version works with clang. |
+ # TODO(glider): set clang to 1 earlier for ASan and TSan builds so |
+ # that it takes effect here. |
+ ['clang==0 and asan==0 and lsan==0 and tsan==0 and msan==0', { |
mithro-old
2014/04/04 18:19:52
This fix copied from https://code.google.com/p/chr
|
+ 'binutils_version%': '<!(python <(DEPTH)/build/compiler_version.py assembler)', |
+ }], |
+ # On Android we know the binutils version in the toolchain. |
+ ['OS=="android"', { |
+ 'binutils_version%': 222, |
+ }], |
+ # Our version of binutils in third_party/binutils |
+ ['linux_use_gold_binary==1', { |
+ 'binutils_version%': 224, |
+ 'conditions': [ |
+ ['host_arch=="x64"', { |
+ 'binutils_dir%': 'third_party/binutils/Linux_x64/Release/bin', |
+ }], |
+ ['host_arch=="ia32"', { |
+ 'binutils_dir%': 'third_party/binutils/Linux_ia32/Release/bin', |
+ }], |
+ ], |
+ }], |
+ ], |
+ }, { |
+ 'binutils_version%': 0, |
+ }], |
# The version of GCC in use, set later in platforms that use GCC and have |
# not explicitly chosen to build with clang. Currently, this means all |
# platforms except Windows, Mac and iOS. |
@@ -1369,15 +1399,12 @@ |
'gcc_version%': 46, |
}], |
], |
- 'binutils_version%': 222, |
}, { |
'gcc_version%': '<!(python <(DEPTH)/build/compiler_version.py)', |
- 'binutils_version%': '<!(python <(DEPTH)/build/compiler_version.py assembler)', |
}], |
], |
}, { |
'gcc_version%': 0, |
- 'binutils_version%': 0, |
}], |
['OS=="win" and "<!(python <(DEPTH)/build/dir_exists.py <(windows_sdk_default_path))"=="True"', { |
'windows_sdk_path%': '<(windows_sdk_default_path)', |
@@ -3187,7 +3214,7 @@ |
}], |
# 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', { |
+ ['linux_use_gold_flags==1 and (clang==1 or gcc_version>=48) and binutils_version>=223 and use_goma==0', { |
'cflags': ['-gsplit-dwarf'], |
'ldflags': ['-Wl,--gdb-index'], |
}], |
@@ -3857,13 +3884,15 @@ |
], |
}], |
['linux_use_gold_binary==1', { |
+ # Put our binutils, which contains gold in the search path. We pass |
+ # the path to gold to the compiler. gyp leaves unspecified what the |
+ # cwd is when running the compiler, so the normal gyp path-munging |
+ # fails us. This hack gets the right path. |
+ 'cflags': [ |
+ '-B<!(cd <(DEPTH) && pwd -P)/<(binutils_dir)', |
+ ], |
'ldflags': [ |
- # Put our gold binary in the search path for the linker. |
- # We pass the path to gold to the compiler. gyp leaves |
- # unspecified what the cwd is when running the compiler, |
- # so the normal gyp path-munging fails us. This hack |
- # gets the right path. |
- '-B<!(cd <(DEPTH) && pwd -P)/third_party/gold', |
+ '-B<!(cd <(DEPTH) && pwd -P)/<(binutils_dir)', |
], |
}], |
], |