Index: build/common.gypi |
diff --git a/build/common.gypi b/build/common.gypi |
index 0eaf2c7a6c253899b945dcbe4e5168ef83b3fcfb..7e8d33e342216cc9bc4929e33e253be90b697241 100644 |
--- a/build/common.gypi |
+++ b/build/common.gypi |
@@ -732,13 +732,26 @@ |
'enable_plugins%': 1, |
}], |
- # linux_use_gold_binary: whether to use the binary checked into |
- # third_party/binutils. Gold is not used for 32-bit linux builds |
- # as it runs out of address space. |
+ # linux_use_bundled_gold: whether to use the gold linker binary checked |
+ # into third_party/binutils. Force this off via GYP_DEFINES when you |
+ # are using a custom toolchain and need to control -B in ldflags. |
+ # Gold is not used for 32-bit linux builds as it runs out of address |
+ # space. |
['OS=="linux" and (target_arch=="x64" or target_arch=="arm")', { |
- 'linux_use_gold_binary%': 1, |
+ 'linux_use_bundled_gold%': 1, |
}, { |
- 'linux_use_gold_binary%': 0, |
+ 'linux_use_bundled_gold%': 0, |
+ }], |
+ |
+ # linux_use_bundled_binutils: whether to use the binary binutils |
+ # checked into third_party/binutils. These are not multi-arch so cannot |
+ # be used except on x86 and x86-64 (the only two architectures which |
+ # are currently checke in). Force this off via GYP_DEFINES when you |
+ # are using a custom toolchain and need to control -B in cflags. |
+ ['OS=="linux" and (target_arch=="x64")', { |
+ 'linux_use_bundled_binutils%': 1, |
+ }, { |
+ 'linux_use_bundled_binutils%': 0, |
}], |
# linux_use_gold_flags: whether to use build flags that rely on gold. |
@@ -996,7 +1009,8 @@ |
'enable_themes%': '<(enable_themes)', |
'enable_autofill_dialog%': '<(enable_autofill_dialog)', |
'enable_background%': '<(enable_background)', |
- 'linux_use_gold_binary%': '<(linux_use_gold_binary)', |
+ 'linux_use_bundled_gold%': '<(linux_use_bundled_gold)', |
+ 'linux_use_bundled_binutils%': '<(linux_use_bundled_binutils)', |
'linux_use_gold_flags%': '<(linux_use_gold_flags)', |
'use_canvas_skia%': '<(use_canvas_skia)', |
'test_isolation_mode%': '<(test_isolation_mode)', |
@@ -1364,17 +1378,15 @@ |
['OS=="android"', { |
'binutils_version%': 222, |
}], |
+ ['host_arch=="x64"', { |
+ 'binutils_dir%': 'third_party/binutils/Linux_x64/Release/bin', |
+ }], |
+ ['host_arch=="ia32"', { |
+ 'binutils_dir%': 'third_party/binutils/Linux_ia32/Release/bin', |
+ }], |
# Our version of binutils in third_party/binutils |
- ['linux_use_gold_binary==1', { |
+ ['linux_use_bundled_binutils==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', |
- }], |
- ], |
}], |
], |
}, { |
@@ -3828,9 +3840,9 @@ |
'cflags': [ '-g' ], |
'conditions': [ |
# TODO(thestig) We should not need to specify chromeos==0 here, |
- # but somehow ChromeOS uses gold despite linux_use_gold_binary==0. |
+ # but somehow ChromeOS uses gold despite linux_use_bundled_gold==0. |
# http://crbug.com./360082 |
- ['linux_use_gold_binary==0 and chromeos==0 and OS!="android"', { |
+ ['linux_use_bundled_gold==0 and chromeos==0 and OS!="android"', { |
'target_conditions': [ |
['_toolset=="target"', { |
'ldflags': [ |
@@ -3893,24 +3905,26 @@ |
}] |
], |
}], |
- ['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. |
+ ['linux_use_bundled_binutils==1', { |
'cflags': [ |
'-B<!(cd <(DEPTH) && pwd -P)/<(binutils_dir)', |
], |
+ }], |
+ ['linux_use_bundled_gold==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. |
'ldflags': [ |
'-B<!(cd <(DEPTH) && pwd -P)/<(binutils_dir)', |
], |
}], |
['binutils_version>=224', { |
- # Newer binutils don't set DT_RPATH unless you disable "new" dtags |
- # and the new DT_RUNPATH doesn't work without --no-as-needed flag. |
- # FIXME(mithro): Figure out the --as-needed/--no-as-needed flags |
- # inside this file to allow usage of --no-as-needed and removal of |
- # this flag. |
+ # Newer binutils don't set DT_RPATH unless you disable "new" dtags |
+ # and the new DT_RUNPATH doesn't work without --no-as-needed flag. |
+ # FIXME(mithro): Figure out the --as-needed/--no-as-needed flags |
+ # inside this file to allow usage of --no-as-needed and removal of |
+ # this flag. |
'ldflags': [ |
'-Wl,--disable-new-dtags', |
], |