diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
index a5a107c..7e09bb3a 100644
--- a/build/config/BUILDCONFIG.gn
+++ b/build/config/BUILDCONFIG.gn
@@ -177,7 +177,6 @@
   is_mac = false
   is_nacl = false
   is_posix = false
-  is_watchos = false
   is_win = true
 } else if (current_os == "mac") {
   is_android = false
@@ -188,7 +187,6 @@
   is_mac = true
   is_nacl = false
   is_posix = true
-  is_watchos = false
   is_win = false
 } else if (current_os == "android") {
   is_android = true
@@ -199,7 +197,6 @@
   is_mac = false
   is_nacl = false
   is_posix = true
-  is_watchos = false
   is_win = false
 } else if (current_os == "linux") {
   is_android = false
@@ -210,7 +207,6 @@
   is_mac = false
   is_nacl = false
   is_posix = true
-  is_watchos = false
   is_win = false
 } else if (current_os == "fuchsia") {
   is_android = false
@@ -221,7 +217,6 @@
   is_mac = false
   is_nacl = false
   is_posix = true
-  is_watchos = false
   is_win = false
 } else if (current_os == "ios") {
   is_android = false
@@ -232,23 +227,6 @@
   is_mac = false
   is_nacl = false
   is_posix = true
-  is_watchos = false
-  is_win = false
-} else if (current_os == "watchos") {
-  is_android = false
-  is_chromeos = false
-  is_fuchsia = false
-
-  # watchOS and iOS are similar enough, so almost all codepaths in
-  # BUILD files are the same for watchOS and iOS. Additionally,
-  # BUILD.gn zlib file doesn't support `is_watchos`, but works fine
-  # with `is_ios`.
-  is_ios = true
-  is_linux = false
-  is_mac = false
-  is_nacl = false
-  is_posix = true
-  is_watchos = true
   is_win = false
 }
 
@@ -467,19 +445,17 @@
   host_toolchain = "//build/toolchain/mac:clang_$host_cpu"
   set_default_toolchain("//build/toolchain/mac:clang_$current_cpu")
 } else if (is_ios) {
-  import("//build/config/ios/ios_sdk.gni")  # For use_simulator
+  import("//build/config/ios/ios_sdk.gni")  # For use_ios_simulator
   host_toolchain = "//build/toolchain/mac:clang_$host_cpu"
-  toolchain_target = "clang"
-  if (is_watchos) {
-    toolchain_target = "watchos_$toolchain_target"
+  if (use_ios_simulator) {
+    if (target_cpu == "arm64") {
+      set_default_toolchain("//build/toolchain/mac:ios_clang_arm64_sim")
+    } else {
+      set_default_toolchain("//build/toolchain/mac:ios_clang_x64_sim")
+    }
   } else {
-    toolchain_target = "ios_$toolchain_target"
+    set_default_toolchain("//build/toolchain/mac:ios_clang_arm64")
   }
-  toolchain_target = "${toolchain_target}_$target_cpu"
-  if (use_simulator) {
-    toolchain_target = "${toolchain_target}_sim"
-  }
-  set_default_toolchain("//build/toolchain/mac:$toolchain_target")
 } else if (is_fuchsia) {
   assert(host_cpu == "x64")
   if (host_os == "linux") {
@@ -578,8 +554,7 @@
 
       output_prefix = "lib"
       if (!defined(output_extension)) {
-        if (current_os == "mac" || current_os == "ios" ||
-            current_os == "watchos") {
+        if (current_os == "mac" || current_os == "ios") {
           output_extension = "dylib"
         } else if (current_os == "win") {
           output_extension = "dll"
diff --git a/build/config/ios/ios_sdk.gni b/build/config/ios/ios_sdk.gni
index 25eabed..4ee46a3 100644
--- a/build/config/ios/ios_sdk.gni
+++ b/build/config/ios/ios_sdk.gni
@@ -6,41 +6,28 @@
 
 declare_args() {
   # SDK path to use. When empty this will use the default SDK based on the
-  # value of use_simulator.
+  # value of use_ios_simulator.
   ios_sdk_path = ""
 
   # Set to true when targeting a simulator build on iOS. False means that the
   # target is for running on the device. The default value is to use the
   # Simulator except when targeting GYP's Xcode builds (for compat with the
   # existing GYP build).
-  use_simulator = false
+  use_ios_simulator = false
 
   # Minimum supported version of the iOS SDK.
   ios_sdk_min = "12.0"
 
-  # Minimum supported version of the watchOS SDK.
-  watchos_sdk_min = "11.0"
-
   # The path to the iOS device SDK.
   ios_device_sdk_path = ""
 
   # The path to the iOS simulator SDK.
   ios_simulator_sdk_path = ""
 
-  # The path to the watchOS device SDK.
-  watchos_device_sdk_path = ""
-
-  # The path to the watchOS simulator SDK.
-  watchos_simulator_sdk_path = ""
-
   ios_enable_relative_sdk_path = use_rbe
 }
 
 if (ios_sdk_path == "") {
-  if (is_watchos) {
-    ios_sdk_min = watchos_sdk_min
-  }
-
   _find_sdk_args = [
     "--print_sdk_path",
     ios_sdk_min,
@@ -55,44 +42,25 @@
     ]
   }
 
-  platform = "iphone"
-  if (is_watchos) {
-    platform = "watch"
-  }
-  if (use_simulator) {
-    platform = "${platform}_simulator"
+  if (use_ios_simulator && ios_simulator_sdk_path == "") {
+    _find_sdk_args += [ "--platform=iphone_simulator" ]
+    _find_sdk_result =
+        exec_script("//build/mac/find_sdk.py", _find_sdk_args, "list lines")
+    ios_simulator_sdk_path = _find_sdk_result[0]
   }
 
-  _find_sdk_args += [ "--platform=$platform" ]
-  _find_sdk_result =
-      exec_script("//build/mac/find_sdk.py", _find_sdk_args, "list lines")
-  platform_sdk_path = _find_sdk_result[0]
+  if (!use_ios_simulator && ios_device_sdk_path == "") {
+    _find_sdk_args += [ "--platform=iphone" ]
+    _find_sdk_result =
+        exec_script("//build/mac/find_sdk.py", _find_sdk_args, "list lines")
+    ios_device_sdk_path = _find_sdk_result[0]
+  }
 
-  if (use_simulator && is_watchos) {
-    # watchos_simulator
-    if (watchos_simulator_sdk_path != "") {
-      platform_sdk_path = watchos_simulator_sdk_path
-    }
-    ios_sdk_path = platform_sdk_path
-    ios_sdk_min = watchos_sdk_min
-  } else if (!use_simulator && is_watchos) {
-    # watchos
-    if (watchos_device_sdk_path != "") {
-      platform_sdk_path = watchos_device_sdk_path
-    }
-    ios_sdk_path = platform_sdk_path
-    ios_sdk_min = watchos_sdk_min
-  } else if (use_simulator && !is_watchos) {
-    # ios_simulator
-    if (ios_simulator_sdk_path != "") {
-      platform_sdk_path = ios_simulator_sdk_path
-    }
-    ios_sdk_path = platform_sdk_path
-  } else if (!use_simulator && !is_watchos) {
-    # ios
-    if (ios_device_sdk_path != "") {
-      platform_sdk_path = ios_device_sdk_path
-    }
-    ios_sdk_path = platform_sdk_path
+  if (use_ios_simulator) {
+    assert(ios_simulator_sdk_path != "")
+    ios_sdk_path = ios_simulator_sdk_path
+  } else {
+    assert(ios_device_sdk_path != "")
+    ios_sdk_path = ios_device_sdk_path
   }
 }
diff --git a/build/toolchain/mac/BUILD.gn b/build/toolchain/mac/BUILD.gn
index 88ef256..24f4755 100644
--- a/build/toolchain/mac/BUILD.gn
+++ b/build/toolchain/mac/BUILD.gn
@@ -78,55 +78,6 @@
       "-isysroot $ios_sdk_path -mios-simulator-version-min=$ios_sdk_min"
 }
 
-if (is_watchos) {
-  # Toolchain used for watchOS device targets.
-  mac_toolchain_suite("watchos_clang_arm64") {
-    toolchain_cpu = "arm64"
-    toolchain_os = "watchos"
-    prefix = rebased_clang_dir
-    cc = "${compiler_prefix}${prefix}/clang"
-    cxx = "${compiler_prefix}${prefix}/clang++"
-    if (use_rbe) {
-      cc = "${cc} --target=arm64-apple-darwin"
-      cxx = "${cxx} --target=arm64-apple-darwin"
-    }
-    asm = "${assembler_prefix}${prefix}/clang"
-    ar = "${prefix}/llvm-ar"
-    ld = "${link_prefix}${prefix}/clang++"
-    strip = "${prefix}/llvm-strip"
-    nm = "${prefix}/llvm-nm"
-    is_clang = true
-    if (ios_enable_relative_sdk_path) {
-      ios_sdk_path = rebase_path(ios_sdk_path, root_build_dir)
-    }
-    sysroot_flags = "-isysroot $ios_sdk_path -mwatchos-version-min=$ios_sdk_min"
-  }
-
-  # Toolchain used for watchOS simulator targets (arm64).
-  mac_toolchain_suite("watchos_clang_arm64_sim") {
-    toolchain_cpu = "arm64"
-    toolchain_os = "watchos"
-    prefix = rebased_clang_dir
-    cc = "${compiler_prefix}${prefix}/clang"
-    cxx = "${compiler_prefix}${prefix}/clang++"
-    if (use_rbe) {
-      cc = "${cc} --target=arm64-apple-darwin"
-      cxx = "${cxx} --target=arm64-apple-darwin"
-    }
-    asm = "${assembler_prefix}${prefix}/clang"
-    ar = "${prefix}/llvm-ar"
-    ld = "${link_prefix}${prefix}/clang++"
-    strip = "${prefix}/llvm-strip"
-    nm = "${prefix}/llvm-nm"
-    is_clang = true
-    if (ios_enable_relative_sdk_path) {
-      ios_sdk_path = rebase_path(ios_sdk_path, root_build_dir)
-    }
-    sysroot_flags =
-        "-isysroot $ios_sdk_path -mwatchos-simulator-version-min=$ios_sdk_min"
-  }
-}
-
 mac_toolchain_suite("clang_x64") {
   toolchain_cpu = "x64"
   toolchain_os = "mac"
diff --git a/runtime/BUILD.gn b/runtime/BUILD.gn
index 9db127b..d3d06a7 100644
--- a/runtime/BUILD.gn
+++ b/runtime/BUILD.gn
@@ -104,14 +104,6 @@
   } else if (target_os == "ios") {
     defines += [ "DART_TARGET_OS_MACOS" ]
     defines += [ "DART_TARGET_OS_MACOS_IOS" ]
-  } else if (target_os == "watchos") {
-    defines += [ "DART_TARGET_OS_MACOS" ]
-
-    # This doesn't look entirely correct, but so far it looks
-    # sufficient and allows to add watchOS support with less changes.
-    # If we need to differentiate iOS and watchOS targets later, we'll
-    # change this.
-    defines += [ "DART_TARGET_OS_MACOS_IOS" ]
   } else if (target_os == "linux") {
     defines += [ "DART_TARGET_OS_LINUX" ]
   } else if (target_os == "mac") {
@@ -325,10 +317,7 @@
 
 library_for_all_configs("libdart") {
   target_type = dart_component_kind
-  extra_nonproduct_deps = []
-  if (dart_support_perfetto) {
-    extra_nonproduct_deps += [ "vm:libprotozero" ]
-  }
+  extra_nonproduct_deps = [ "vm:libprotozero" ]
   extra_deps = [
     ":generate_version_cc_file",
     "../third_party/double-conversion/src:libdouble_conversion",
diff --git a/runtime/bin/process_macos.cc b/runtime/bin/process_macos.cc
index 7ebcf63..5f3c8a5 100644
--- a/runtime/bin/process_macos.cc
+++ b/runtime/bin/process_macos.cc
@@ -903,11 +903,6 @@
                   const char* working_directory,
                   char* errmsg,
                   intptr_t errmsg_len) {
-#if defined(DART_HOST_OS_WATCH)
-  // execvp is not available on watchOS.
-  Utils::StrError(ENOSYS, errmsg, errmsg_len);
-  return -1;
-#else
   if (working_directory != nullptr &&
       TEMP_FAILURE_RETRY(chdir(working_directory)) == -1) {
     Utils::StrError(errno, errmsg, errmsg_len);
@@ -917,7 +912,6 @@
   execvp(const_cast<const char*>(path), const_cast<char* const*>(arguments));
   Utils::StrError(errno, errmsg, errmsg_len);
   return -1;
-#endif
 }
 
 static int SignalMap(intptr_t id) {
diff --git a/runtime/platform/globals.h b/runtime/platform/globals.h
index 00b22c1..2996d47 100644
--- a/runtime/platform/globals.h
+++ b/runtime/platform/globals.h
@@ -122,9 +122,6 @@
 #if TARGET_OS_IPHONE
 #define DART_HOST_OS_IOS 1
 #endif
-#if TARGET_OS_WATCH
-#define DART_HOST_OS_WATCH 1
-#endif
 
 #elif defined(_WIN32)
 
diff --git a/runtime/runtime_args.gni b/runtime/runtime_args.gni
index aae47c5..9ee225d 100644
--- a/runtime/runtime_args.gni
+++ b/runtime/runtime_args.gni
@@ -72,11 +72,11 @@
   # Whether the sampling heap profiler should be included in product mode.
   dart_include_sampling_heap_profiler = false
 
-  # Whether features that depend on Perfetto should be built. We need
-  # to define this to allow excluding code that depends on Perfetto
-  # from being built on platforms which have a problem linking in the
-  # Perfetto library, e.g. watchOS.
-  dart_support_perfetto = !is_watchos
+  # Whether features that depend on Perfetto should be built. We temporarily
+  # need to define this to allow excluding code that depends on Perfetto from
+  # being built on platforms which have a problem linking in the Perfetto
+  # library.
+  dart_support_perfetto = true
 
   # Whether to support dynamic loading and interpretation of Dart bytecode.
   dart_dynamic_modules = false
diff --git a/runtime/tools/bin_to_assembly.py b/runtime/tools/bin_to_assembly.py
index 888d2d7..6e3b373 100755
--- a/runtime/tools/bin_to_assembly.py
+++ b/runtime/tools/bin_to_assembly.py
@@ -51,7 +51,7 @@
         return -1
 
     with open(options.output, "w") as output_file:
-        if options.target_os in ["mac", "ios", "watchos"]:
+        if options.target_os in ["mac", "ios"]:
             if options.executable:
                 output_file.write(".text\n")
             else:
@@ -106,7 +106,7 @@
                 if incbin:
                     output_file.write(".incbin \"%s\"\n" % options.input)
 
-        if options.target_os not in ["mac", "ios", "watchos", "win", "win_gnu"]:
+        if options.target_os not in ["mac", "ios", "win", "win_gnu"]:
             output_file.write(".size {0}, .-{0}\n".format(options.symbol_name))
 
         if options.size_symbol_name:
@@ -128,7 +128,7 @@
                 else:
                     output_file.write("dword %d\n" % size)
             else:
-                if options.target_os in ["mac", "ios", "watchos"]:
+                if options.target_os in ["mac", "ios"]:
                     output_file.write(
                         ".global _%s\n" % options.size_symbol_name)
                     output_file.write("_%s:\n" % options.size_symbol_name)
diff --git a/runtime/vm/BUILD.gn b/runtime/vm/BUILD.gn
index 19cfec7..f4be2d9 100644
--- a/runtime/vm/BUILD.gn
+++ b/runtime/vm/BUILD.gn
@@ -172,10 +172,7 @@
 library_for_all_configs("libdart_vm") {
   target_type = "source_set"
   extra_product_deps = []
-  extra_nonproduct_deps = []
-  if (dart_support_perfetto) {
-    extra_nonproduct_deps += [ ":libprotozero" ]
-  }
+  extra_nonproduct_deps = [ ":libprotozero" ]
   extra_deps = [
     "//third_party/icu:icui18n",
     "//third_party/icu:icuuc",
@@ -216,11 +213,7 @@
   public_configs = [ ":libdart_vm_config" ]
   sources = rebase_path(compiler_sources, ".", "./compiler/")
   include_dirs = [ ".." ]
-
-  extra_nonproduct_deps = []
-  if (dart_support_perfetto) {
-    extra_nonproduct_deps += [ ":libprotozero" ]
-  }
+  extra_nonproduct_deps = [ ":libprotozero" ]
   extra_deps = []
   if (is_fuchsia) {
     extra_deps += [ "$fuchsia_sdk/pkg/trace-engine" ]
@@ -229,10 +222,7 @@
 
 library_for_all_configs("libdart_lib") {
   target_type = "source_set"
-  extra_nonproduct_deps = []
-  if (dart_support_perfetto) {
-    extra_nonproduct_deps += [ ":libprotozero" ]
-  }
+  extra_nonproduct_deps = [ ":libprotozero" ]
   extra_deps = []
   if (is_fuchsia) {
     extra_deps += [ "$fuchsia_sdk/pkg/trace-engine" ]
diff --git a/runtime/vm/thread_interrupter_macos.cc b/runtime/vm/thread_interrupter_macos.cc
index 0d07da0..e9243a2 100644
--- a/runtime/vm/thread_interrupter_macos.cc
+++ b/runtime/vm/thread_interrupter_macos.cc
@@ -49,11 +49,7 @@
     ASSERT(os_thread != nullptr);
     mach_thread_ = pthread_mach_thread_np(os_thread->id());
     ASSERT(reinterpret_cast<void*>(mach_thread_) != nullptr);
-#if !defined(DART_HOST_OS_WATCH)
     res = thread_suspend(mach_thread_);
-#else
-    res = KERN_FAILURE;
-#endif
   }
 
   void CollectSample() {
@@ -62,14 +58,9 @@
     }
     auto count = static_cast<mach_msg_type_number_t>(THREAD_STATE_FLAVOR_SIZE);
     thread_state_flavor_t state;
-#if !defined(DART_HOST_OS_WATCH)
     kern_return_t res =
         thread_get_state(mach_thread_, THREAD_STATE_FLAVOR,
                          reinterpret_cast<thread_state_t>(&state), &count);
-#else
-    USE(count);
-    kern_return_t res = KERN_FAILURE;
-#endif
     ASSERT(res == KERN_SUCCESS);
     Thread* thread = static_cast<Thread*>(os_thread_->thread());
     if (thread == nullptr) {
@@ -83,11 +74,7 @@
     if (res != KERN_SUCCESS) {
       return;
     }
-#if !defined(DART_HOST_OS_WATCH)
     res = thread_resume(mach_thread_);
-#else
-    res = KERN_FAILURE;
-#endif
     ASSERT(res == KERN_SUCCESS);
   }
 
diff --git a/tools/gn.py b/tools/gn.py
index 752c6aa..dcb4888 100755
--- a/tools/gn.py
+++ b/tools/gn.py
@@ -198,12 +198,7 @@
         gn_args['target_os'] = host_os
     elif target_os == 'ios_simulator':
         gn_args['target_os'] = 'ios'
-        gn_args['use_simulator'] = True
-    elif target_os == 'watchos_simulator':
-        gn_args['target_os'] = 'watchos'
-        gn_args['use_simulator'] = True
-    elif target_os == 'watchos':
-        gn_args['target_os'] = 'watchos'
+        gn_args['use_ios_simulator'] = True
     else:
         gn_args['target_os'] = target_os
 
@@ -363,7 +358,7 @@
     for os_name in oses:
         if not os_name in [
                 'android', 'freebsd', 'linux', 'macos', 'win32', 'fuchsia',
-                'ios', 'ios_simulator', 'watchos', 'watchos_simulator'
+                'ios', 'ios_simulator'
         ]:
             print("Unknown os %s" % os_name)
             return False
@@ -398,7 +393,7 @@
                     "Cross-compilation to %s is not supported for architecture %s."
                     % (os_name, arch))
                 return False
-        elif os_name == 'ios' or os_name == 'ios_simulator' or os_name == 'watchos' or os_name == 'watchos_simulator':
+        elif os_name == 'ios' or os_name == 'ios_simulator':
             if not HOST_OS in ['macos']:
                 print(f'Target os {os_name} is only supported on macOS')
                 return False
diff --git a/tools/utils.py b/tools/utils.py
index b7686af..d8d5200 100644
--- a/tools/utils.py
+++ b/tools/utils.py
@@ -339,8 +339,6 @@
         os_fragment = conf_os.title()
         if (conf_os == 'ios_simulator'):
             os_fragment = 'IosSim'
-        if (conf_os == 'watchos_simulator'):
-            os_fragment = 'WatchosSim'
         return '{}{}{}'.format(GetBuildMode(mode), os_fragment, arch.upper())
 
     # Ask for a cross build if the host and target architectures don't match.
diff --git a/utils/aot_snapshot.gni b/utils/aot_snapshot.gni
index d29cc47..5288554 100644
--- a/utils/aot_snapshot.gni
+++ b/utils/aot_snapshot.gni
@@ -174,7 +174,7 @@
     output_prefix = "lib"
     output_extension = ""
 
-    if (current_os == "mac" || current_os == "ios" || current_os == "watchos") {
+    if (current_os == "mac" || current_os == "ios") {
       output_extension = "dylib"
     } else if (current_os == "win") {
       output_extension = "dll"
