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
 }