diff --git a/DEPS b/DEPS
index c088c2d..0e33842 100644
--- a/DEPS
+++ b/DEPS
@@ -101,12 +101,6 @@
     'condition': 'dawn_standalone',
   },
 
-  # Our own pre-compiled Linux clang-format 7.0 for presubmit
-  'third_party/clang-format': {
-    'url': '{dawn_git}/clang-format@2451c56cd368676cdb230fd5ad11731ab859f1a3',
-    'condition': 'dawn_standalone and checkout_linux',
-  },
-
   # Khronos Vulkan headers, validation layers and loader.
   'third_party/vulkan-headers': {
     'url': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Headers@4c079bf40c2587220dbf157d825d3185c9adc896',
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index ae10063..55958d3 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -17,8 +17,13 @@
 import subprocess
 
 def _DoClangFormat(input_api, output_api):
-    # Our binary clang-format is a linux binary compiled for x64
-    if platform.system() != 'Linux' or platform.architecture()[0] != '64bit':
+    if platform.system() == 'Linux' and platform.architecture()[0] == '64bit':
+        clang_format_path = 'buildtools/linux64/clang-format'
+    elif platform.system() == 'Mac':
+        clang_format_path = 'buildtools/mac/clang-format'
+    elif platform.system() == 'Windows':
+        clang_format_path = 'buildtools/win/clang-format.exe'
+    else:
         return [output_api.PresubmitNotifyResult('Skipping clang-format')]
 
     # We need to know which commit to diff against. It doesn't seem to be exposed anywhere
@@ -30,27 +35,13 @@
 
     lint_cmd = [
         'scripts/lint_clang_format.sh',
-        'third_party/clang-format/clang-format',
+        clang_format_path,
         upstream_commit
     ]
 
-    # Make clang-format use our linux x64 sysroot because it is compiled with a version of
-    # stdlibc++ that's incompatible with the old libraries present on the bots.
-    env = {
-        'LD_LIBRARY_PATH': os.path.join(
-            os.getcwd(),
-            'build',
-            'linux',
-            'debian_sid_amd64-sysroot',
-            'usr',
-            'lib',
-            'x86_64-linux-gnu'
-        )
-    }
-
     # Call the linting script and forward the output as a notification or as an error
     try:
-        output = subprocess.check_output(lint_cmd, env=env);
+        output = subprocess.check_output(lint_cmd)
         return [output_api.PresubmitNotifyResult(output)]
     except subprocess.CalledProcessError as e:
         return [output_api.PresubmitError(e.output)]
