Remove binutils from DEPS and pull in changes to build.gni from Dawn Change-Id: Id9855ccf133b50f406443c37b74f12ff1d9206fe Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/25560 Reviewed-by: dan sinclair <dsinclair@chromium.org>
diff --git a/DEPS b/DEPS index e00a393..892796b 100644 --- a/DEPS +++ b/DEPS
@@ -14,7 +14,6 @@ 'chromium_git': 'https://chromium.googlesource.com', 'github': '/external/github.com', - 'binutils_revision': '2566778206fdacdff455b2d96df3d52a18d439d4', 'build_revision': '9b01e295f87e0cbdef297148e2b14efdd5f9d699', 'buildtools_revision': 'eb3987ec709b39469423100c1e77f0446890e059', 'clang_revision': '6412135b3979b680c20cf007ab242d968025fc3e', @@ -49,9 +48,6 @@ 'tools/clang': Var('chromium_git') + '/chromium/src/tools/clang@' + Var('clang_revision'), - 'third_party/binutils': Var('chromium_git') + - '/chromium/src/third_party/binutils@' + Var('binutils_revision'), - # Dependencies required for testing 'testing': Var('chromium_git') + '/chromium/src/testing@' + Var('testing_revision'), @@ -139,16 +135,6 @@ '-s', 'build/toolchain/win/rc/win/rc.exe.sha1', ], }, - # Pull binutils for linux hermetic builds - { - 'name': 'binutils', - 'pattern': 'src/third_party/binutils', - 'condition': 'host_os == "linux"', - 'action': [ - 'python', - 'third_party/binutils/download.py', - ], - }, # Update build/util/LASTCHANGE. { 'name': 'lastchange',
diff --git a/build_overrides/build.gni b/build_overrides/build.gni index 3e06b7b..02c0462 100644 --- a/build_overrides/build.gni +++ b/build_overrides/build.gni
@@ -12,37 +12,35 @@ # See the License for the specific language governing permissions and # limitations under the License. -# This file contains build-related overrides. - -# Variable that can be used to support multiple build scenarios, like having -# Chromium specific targets in a client project's GN file etc. -build_with_chromium = false - -# Builds don't use Chromium's third_party/binutils. -linux_use_bundled_binutils_override = false - declare_args() { + # Tell Tint and dependencies to not do Chromium-specific things + build_with_chromium = false + + # Use Chromium's binutils to have "hermetic" builds on bots + linux_use_bundled_binutils_override = true + + # In standalone Tint builds, don't try to use the hermetic install of Xcode + # that Chromium uses + use_system_xcode = "" + # Android 32-bit non-component, non-clang builds cannot have symbol_level=2 # due to 4GiB file size limit, see https://crbug.com/648948. - # Set this flag to true to skip the assertion. ignore_elf32_limitations = false - - # Use the system install of Xcode for tools like ibtool, libtool, etc. - # This does not affect the compiler. When this variable is false, targets will - # instead use a hermetic install of Xcode. [The hermetic install can be - # obtained with gclient sync after setting the environment variable - # FORCE_MAC_TOOLCHAIN]. - use_system_xcode = "" } -if (use_system_xcode == "") { - if (target_os == "mac") { - _result = exec_script("//build/mac/should_use_hermetic_xcode.py", - [ target_os ], - "value") - use_system_xcode = _result == 0 - } - if (target_os == "ios") { - use_system_xcode = true - } +# Detect whether we can use the hermetic XCode like in Chromium and do so if +# possible. +if (host_os == "mac" && use_system_xcode == "") { + _result = exec_script("//build/mac/should_use_hermetic_xcode.py", + [ target_os ], + "value") + + assert(_result != 2, + "Do not allow building targets with the default" + + "hermetic toolchain if the minimum OS version is not met.") + assert(_result != 3, + "iOS does not support building with a hermetic toolchain. " + + "Please install Xcode.") + + use_system_xcode = _result != 1 }