Upgrade bazel to 4.0.0rc2

A few things of note here:
- I disabled a few incompatible flags in order to minimize the number
  of changes we have to deal with.
- I had to upgrade the typescript rules because the old ones didn't
  work with new bazel anymore. That brought a typescript compiler
  upgrade along. This in turn required me to turn off strict mode.
  Otherwise, there are a _ton_ of errors in our typescript files. The
  vast majority of them are related to `null` checking.
- The `default_python_version` attribute on Python rules doesn't exist
  anymore. It's now replaced by `python_version`.
- I removed the CROSSTOOL in favour of a Starlark-equivalent
  configuration function. See `tools/cpp/toolchain_config.bzl` for
  more details. This new file is auto-generated using the migration
  tools from `rules_cc`. I have made no attempt to beautify this file.
  Relatedly, all CROSSTOOL-related files/functionality are gone as well.
- The `config_setting` targets to detect the compiler names had to
  change. This is perhaps not surprising. Thanks to Austin for
  pointing this out to me.
- The `cc_toolchain` targets all required `ar_files` and `as_files`
  attributes where they didn't before. Not really sure what changed,
  but the compilations appears to work with these changes.

Change-Id: I2317e5160fa3f8d87f94106b0c3b328918d0c42c
diff --git a/third_party/bazel/BUILD b/third_party/bazel/BUILD
index ed1724a..282cdad 100644
--- a/third_party/bazel/BUILD
+++ b/third_party/bazel/BUILD
@@ -2,6 +2,7 @@
 
 # Generated from Bazel's
 # 30df02a567cbd8a307b96037f0960fca66a5deaf://src/main/protobuf/extra_actions_base.proto.
+# TODO(phil): Update this once we upgrade protobuf.
 py_library(
     name = "extra_actions_proto_py",
     srcs = [
@@ -9,14 +10,3 @@
     ],
     visibility = ["//visibility:public"],
 )
-
-# Generated from Bazel's
-# aa7e972dbc96aa94f86522d452089dc30f6dbbcd://src/main/protobuf/crosstool_config.proto.
-py_library(
-    name = "crosstool_config_proto_py",
-    srcs = [
-        "protos/crosstool_config_pb2.py",
-    ],
-    visibility = ["//visibility:public"],
-    deps = ["@com_google_protobuf//:protobuf_python"],
-)
diff --git a/third_party/bazel/protos/crosstool_config_pb2.py b/third_party/bazel/protos/crosstool_config_pb2.py
deleted file mode 100644
index 1c10fb8..0000000
--- a/third_party/bazel/protos/crosstool_config_pb2.py
+++ /dev/null
@@ -1,1564 +0,0 @@
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: src/main/protobuf/crosstool_config.proto
-
-import sys
-_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
-from google.protobuf.internal import enum_type_wrapper
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-from google.protobuf import descriptor_pb2
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='src/main/protobuf/crosstool_config.proto',
-  package='com.google.devtools.build.lib.view.config.crosstool',
-  syntax='proto2',
-  serialized_pb=_b('\n(src/main/protobuf/crosstool_config.proto\x12\x33\x63om.google.devtools.build.lib.view.config.crosstool\"\x8c \n\nCToolchain\x12X\n\x07\x66\x65\x61ture\x18\x32 \x03(\x0b\x32G.com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature\x12\x63\n\raction_config\x18\x35 \x03(\x0b\x32L.com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig\x12r\n\x15\x61rtifact_name_pattern\x18\x36 \x03(\x0b\x32S.com.google.devtools.build.lib.view.config.crosstool.CToolchain.ArtifactNamePattern\x12\x1c\n\x14toolchain_identifier\x18\x01 \x02(\t\x12\x18\n\x10host_system_name\x18\x02 \x02(\t\x12\x1a\n\x12target_system_name\x18\x03 \x02(\t\x12\x12\n\ntarget_cpu\x18\x04 \x02(\t\x12\x13\n\x0btarget_libc\x18\x05 \x02(\t\x12\x10\n\x08\x63ompiler\x18\x06 \x02(\t\x12\x13\n\x0b\x61\x62i_version\x18\x07 \x02(\t\x12\x18\n\x10\x61\x62i_libc_version\x18\x08 \x02(\t\x12P\n\ttool_path\x18\t \x03(\x0b\x32=.com.google.devtools.build.lib.view.config.crosstool.ToolPath\x12#\n\x14supports_gold_linker\x18\n \x01(\x08:\x05\x66\x61lse\x12%\n\x16supports_thin_archives\x18\x0b \x01(\x08:\x05\x66\x61lse\x12%\n\x16supports_start_end_lib\x18\x1c \x01(\x08:\x05\x66\x61lse\x12\x30\n!supports_interface_shared_objects\x18  \x01(\x08:\x05\x66\x61lse\x12)\n\x1asupports_embedded_runtimes\x18( \x01(\x08:\x05\x66\x61lse\x12!\n\x19static_runtimes_filegroup\x18- \x01(\t\x12\"\n\x1a\x64ynamic_runtimes_filegroup\x18. \x01(\t\x12*\n\x1bsupports_incremental_linker\x18) \x01(\x08:\x05\x66\x61lse\x12&\n\x17supports_normalizing_ar\x18\x1a \x01(\x08:\x05\x66\x61lse\x12\x1f\n\x10supports_fission\x18+ \x01(\x08:\x05\x66\x61lse\x12\x1c\n\rsupports_dsym\x18\x33 \x01(\x08:\x05\x66\x61lse\x12\x17\n\x08needsPic\x18\x0c \x01(\x08:\x05\x66\x61lse\x12\x15\n\rcompiler_flag\x18\r \x03(\t\x12\x10\n\x08\x63xx_flag\x18\x0e \x03(\t\x12\x1b\n\x13unfiltered_cxx_flag\x18\x19 \x03(\t\x12\x13\n\x0blinker_flag\x18\x0f \x03(\t\x12#\n\x1b\x64ynamic_library_linker_flag\x18\x1b \x03(\t\x12\x1d\n\x15test_only_linker_flag\x18\x31 \x03(\t\x12\x1a\n\x12objcopy_embed_flag\x18\x10 \x03(\t\x12\x15\n\rld_embed_flag\x18\x17 \x03(\t\x12\x0f\n\x07\x61r_flag\x18/ \x03(\t\x12\x1d\n\x15\x61r_thin_archives_flag\x18\x30 \x03(\t\x12 \n\x18gcc_plugin_compiler_flag\x18\" \x03(\t\x12i\n\x16\x63ompilation_mode_flags\x18\x11 \x03(\x0b\x32I.com.google.devtools.build.lib.view.config.crosstool.CompilationModeFlags\x12[\n\x0flipo_mode_flags\x18, \x03(\x0b\x32\x42.com.google.devtools.build.lib.view.config.crosstool.LipoModeFlags\x12\x61\n\x12linking_mode_flags\x18\x12 \x03(\x0b\x32\x45.com.google.devtools.build.lib.view.config.crosstool.LinkingModeFlags\x12#\n\x1bgcc_plugin_header_directory\x18\x13 \x03(\t\x12#\n\x1bmao_plugin_header_directory\x18\x14 \x03(\t\x12X\n\rmake_variable\x18\x15 \x03(\x0b\x32\x41.com.google.devtools.build.lib.view.config.crosstool.MakeVariable\x12%\n\x1d\x63xx_builtin_include_directory\x18\x16 \x03(\t\x12\x17\n\x0f\x62uiltin_sysroot\x18\x18 \x01(\t\x12\x1a\n\x12\x64\x65\x66\x61ult_python_top\x18\x1d \x01(\t\x12\x1e\n\x16\x64\x65\x66\x61ult_python_version\x18\x1e \x01(\t\x12\x1f\n\x17python_preload_swigdeps\x18* \x01(\x08\x12\x18\n\x10\x64\x65\x66\x61ult_grte_top\x18\x1f \x01(\t\x12\x1d\n\x15\x64\x65\x62ian_extra_requires\x18! \x03(\t\x12\x14\n\x0c\x63\x63_target_os\x18\x37 \x01(\t\x1a\xee\x02\n\tFlagGroup\x12\x0c\n\x04\x66lag\x18\x01 \x03(\t\x12]\n\nflag_group\x18\x02 \x03(\x0b\x32I.com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup\x12\x14\n\x0citerate_over\x18\x03 \x01(\t\x12\x1f\n\x17\x65xpand_if_all_available\x18\x04 \x03(\t\x12 \n\x18\x65xpand_if_none_available\x18\x05 \x03(\t\x12\x16\n\x0e\x65xpand_if_true\x18\x06 \x01(\t\x12\x17\n\x0f\x65xpand_if_false\x18\x07 \x01(\t\x12j\n\x0f\x65xpand_if_equal\x18\x08 \x01(\x0b\x32Q.com.google.devtools.build.lib.view.config.crosstool.CToolchain.VariableWithValue\x1a\x34\n\x11VariableWithValue\x12\x10\n\x08variable\x18\x01 \x02(\t\x12\r\n\x05value\x18\x02 \x02(\t\x1a&\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x02(\t\x12\r\n\x05value\x18\x02 \x02(\t\x1a\x1d\n\nFeatureSet\x12\x0f\n\x07\x66\x65\x61ture\x18\x01 \x03(\t\x1a\x36\n\x0eWithFeatureSet\x12\x0f\n\x07\x66\x65\x61ture\x18\x01 \x03(\t\x12\x13\n\x0bnot_feature\x18\x02 \x03(\t\x1a\xff\x01\n\x07\x46lagSet\x12\x0e\n\x06\x61\x63tion\x18\x01 \x03(\t\x12]\n\nflag_group\x18\x02 \x03(\x0b\x32I.com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup\x12\x64\n\x0cwith_feature\x18\x03 \x03(\x0b\x32N.com.google.devtools.build.lib.view.config.crosstool.CToolchain.WithFeatureSet\x12\x1f\n\x17\x65xpand_if_all_available\x18\x04 \x03(\t\x1a\xdb\x01\n\x06\x45nvSet\x12\x0e\n\x06\x61\x63tion\x18\x01 \x03(\t\x12[\n\tenv_entry\x18\x02 \x03(\x0b\x32H.com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvEntry\x12\x64\n\x0cwith_feature\x18\x03 \x03(\x0b\x32N.com.google.devtools.build.lib.view.config.crosstool.CToolchain.WithFeatureSet\x1a\xdd\x02\n\x07\x46\x65\x61ture\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x65nabled\x18\x07 \x01(\x08\x12Y\n\x08\x66lag_set\x18\x02 \x03(\x0b\x32G.com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet\x12W\n\x07\x65nv_set\x18\x06 \x03(\x0b\x32\x46.com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvSet\x12\\\n\x08requires\x18\x03 \x03(\x0b\x32J.com.google.devtools.build.lib.view.config.crosstool.CToolchain.FeatureSet\x12\x0f\n\x07implies\x18\x04 \x03(\t\x12\x10\n\x08provides\x18\x05 \x03(\t\x1a\x9e\x01\n\x04Tool\x12\x11\n\ttool_path\x18\x01 \x02(\t\x12\x64\n\x0cwith_feature\x18\x02 \x03(\x0b\x32N.com.google.devtools.build.lib.view.config.crosstool.CToolchain.WithFeatureSet\x12\x1d\n\x15\x65xecution_requirement\x18\x03 \x03(\t\x1aO\n\x13\x41rtifactNamePattern\x12\x15\n\rcategory_name\x18\x01 \x02(\t\x12\x0e\n\x06prefix\x18\x02 \x02(\t\x12\x11\n\textension\x18\x03 \x02(\t\x1a\xc0\x03\n\x0c\x41\x63tionConfig\x12\x13\n\x0b\x63onfig_name\x18\x01 \x02(\t\x12\x13\n\x0b\x61\x63tion_name\x18\x02 \x02(\t\x12\x0f\n\x07\x65nabled\x18\x08 \x01(\x08\x12R\n\x04tool\x18\x03 \x03(\x0b\x32\x44.com.google.devtools.build.lib.view.config.crosstool.CToolchain.Tool\x12Y\n\x08\x66lag_set\x18\x04 \x03(\x0b\x32G.com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet\x12W\n\x07\x65nv_set\x18\x05 \x03(\x0b\x32\x46.com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvSet\x12\\\n\x08requires\x18\x06 \x03(\x0b\x32J.com.google.devtools.build.lib.view.config.crosstool.CToolchain.FeatureSet\x12\x0f\n\x07implies\x18\x07 \x03(\t\"&\n\x08ToolPath\x12\x0c\n\x04name\x18\x01 \x02(\t\x12\x0c\n\x04path\x18\x02 \x02(\t\"\xa8\x01\n\x14\x43ompilationModeFlags\x12R\n\x04mode\x18\x01 \x02(\x0e\x32\x44.com.google.devtools.build.lib.view.config.crosstool.CompilationMode\x12\x15\n\rcompiler_flag\x18\x02 \x03(\t\x12\x10\n\x08\x63xx_flag\x18\x03 \x03(\t\x12\x13\n\x0blinker_flag\x18\x04 \x03(\t\"w\n\x10LinkingModeFlags\x12N\n\x04mode\x18\x01 \x02(\x0e\x32@.com.google.devtools.build.lib.view.config.crosstool.LinkingMode\x12\x13\n\x0blinker_flag\x18\x02 \x03(\t\"\x9a\x01\n\rLipoModeFlags\x12K\n\x04mode\x18\x01 \x02(\x0e\x32=.com.google.devtools.build.lib.view.config.crosstool.LipoMode\x12\x15\n\rcompiler_flag\x18\x02 \x03(\t\x12\x10\n\x08\x63xx_flag\x18\x03 \x03(\t\x12\x13\n\x0blinker_flag\x18\x04 \x03(\t\"+\n\x0cMakeVariable\x12\x0c\n\x04name\x18\x01 \x02(\t\x12\r\n\x05value\x18\x02 \x02(\t\"]\n\x13\x44\x65\x66\x61ultCpuToolchain\x12\x0b\n\x03\x63pu\x18\x01 \x02(\t\x12\x1c\n\x14toolchain_identifier\x18\x02 \x02(\t\x12\x1b\n\rsupports_lipo\x18\x03 \x01(\x08:\x04true\"\x95\x02\n\x10\x43rosstoolRelease\x12\x15\n\rmajor_version\x18\x01 \x02(\t\x12\x15\n\rminor_version\x18\x02 \x02(\t\x12\x1a\n\x12\x64\x65\x66\x61ult_target_cpu\x18\x03 \x02(\t\x12\x63\n\x11\x64\x65\x66\x61ult_toolchain\x18\x04 \x03(\x0b\x32H.com.google.devtools.build.lib.view.config.crosstool.DefaultCpuToolchain\x12R\n\ttoolchain\x18\x05 \x03(\x0b\x32?.com.google.devtools.build.lib.view.config.crosstool.CToolchain*@\n\x0f\x43ompilationMode\x12\r\n\tFASTBUILD\x10\x01\x12\x07\n\x03\x44\x42G\x10\x02\x12\x07\n\x03OPT\x10\x03\x12\x0c\n\x08\x43OVERAGE\x10\x04*\\\n\x0bLinkingMode\x12\x10\n\x0c\x46ULLY_STATIC\x10\x01\x12\x11\n\rMOSTLY_STATIC\x10\x02\x12\x0b\n\x07\x44YNAMIC\x10\x03\x12\x1b\n\x17MOSTLY_STATIC_LIBRARIES\x10\x04*\x1f\n\x08LipoMode\x12\x07\n\x03OFF\x10\x01\x12\n\n\x06\x42INARY\x10\x02\x42\x35\n3com.google.devtools.build.lib.view.config.crosstool')
-)
-
-_COMPILATIONMODE = _descriptor.EnumDescriptor(
-  name='CompilationMode',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.CompilationMode',
-  filename=None,
-  file=DESCRIPTOR,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='FASTBUILD', index=0, number=1,
-      options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='DBG', index=1, number=2,
-      options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='OPT', index=2, number=3,
-      options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='COVERAGE', index=3, number=4,
-      options=None,
-      type=None),
-  ],
-  containing_type=None,
-  options=None,
-  serialized_start=5117,
-  serialized_end=5181,
-)
-_sym_db.RegisterEnumDescriptor(_COMPILATIONMODE)
-
-CompilationMode = enum_type_wrapper.EnumTypeWrapper(_COMPILATIONMODE)
-_LINKINGMODE = _descriptor.EnumDescriptor(
-  name='LinkingMode',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.LinkingMode',
-  filename=None,
-  file=DESCRIPTOR,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='FULLY_STATIC', index=0, number=1,
-      options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='MOSTLY_STATIC', index=1, number=2,
-      options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='DYNAMIC', index=2, number=3,
-      options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='MOSTLY_STATIC_LIBRARIES', index=3, number=4,
-      options=None,
-      type=None),
-  ],
-  containing_type=None,
-  options=None,
-  serialized_start=5183,
-  serialized_end=5275,
-)
-_sym_db.RegisterEnumDescriptor(_LINKINGMODE)
-
-LinkingMode = enum_type_wrapper.EnumTypeWrapper(_LINKINGMODE)
-_LIPOMODE = _descriptor.EnumDescriptor(
-  name='LipoMode',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.LipoMode',
-  filename=None,
-  file=DESCRIPTOR,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='OFF', index=0, number=1,
-      options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='BINARY', index=1, number=2,
-      options=None,
-      type=None),
-  ],
-  containing_type=None,
-  options=None,
-  serialized_start=5277,
-  serialized_end=5308,
-)
-_sym_db.RegisterEnumDescriptor(_LIPOMODE)
-
-LipoMode = enum_type_wrapper.EnumTypeWrapper(_LIPOMODE)
-FASTBUILD = 1
-DBG = 2
-OPT = 3
-COVERAGE = 4
-FULLY_STATIC = 1
-MOSTLY_STATIC = 2
-DYNAMIC = 3
-MOSTLY_STATIC_LIBRARIES = 4
-OFF = 1
-BINARY = 2
-
-
-
-_CTOOLCHAIN_FLAGGROUP = _descriptor.Descriptor(
-  name='FlagGroup',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.flag', index=0,
-      number=1, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='flag_group', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.flag_group', index=1,
-      number=2, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='iterate_over', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.iterate_over', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='expand_if_all_available', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.expand_if_all_available', index=3,
-      number=4, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='expand_if_none_available', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.expand_if_none_available', index=4,
-      number=5, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='expand_if_true', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.expand_if_true', index=5,
-      number=6, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='expand_if_false', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.expand_if_false', index=6,
-      number=7, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='expand_if_equal', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup.expand_if_equal', index=7,
-      number=8, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2134,
-  serialized_end=2500,
-)
-
-_CTOOLCHAIN_VARIABLEWITHVALUE = _descriptor.Descriptor(
-  name='VariableWithValue',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.VariableWithValue',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='variable', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.VariableWithValue.variable', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='value', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.VariableWithValue.value', index=1,
-      number=2, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2502,
-  serialized_end=2554,
-)
-
-_CTOOLCHAIN_ENVENTRY = _descriptor.Descriptor(
-  name='EnvEntry',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvEntry',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='key', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvEntry.key', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='value', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvEntry.value', index=1,
-      number=2, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2556,
-  serialized_end=2594,
-)
-
-_CTOOLCHAIN_FEATURESET = _descriptor.Descriptor(
-  name='FeatureSet',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FeatureSet',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='feature', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FeatureSet.feature', index=0,
-      number=1, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2596,
-  serialized_end=2625,
-)
-
-_CTOOLCHAIN_WITHFEATURESET = _descriptor.Descriptor(
-  name='WithFeatureSet',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.WithFeatureSet',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='feature', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.WithFeatureSet.feature', index=0,
-      number=1, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='not_feature', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.WithFeatureSet.not_feature', index=1,
-      number=2, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2627,
-  serialized_end=2681,
-)
-
-_CTOOLCHAIN_FLAGSET = _descriptor.Descriptor(
-  name='FlagSet',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='action', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet.action', index=0,
-      number=1, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='flag_group', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet.flag_group', index=1,
-      number=2, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='with_feature', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet.with_feature', index=2,
-      number=3, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='expand_if_all_available', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet.expand_if_all_available', index=3,
-      number=4, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2684,
-  serialized_end=2939,
-)
-
-_CTOOLCHAIN_ENVSET = _descriptor.Descriptor(
-  name='EnvSet',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvSet',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='action', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvSet.action', index=0,
-      number=1, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='env_entry', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvSet.env_entry', index=1,
-      number=2, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='with_feature', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvSet.with_feature', index=2,
-      number=3, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2942,
-  serialized_end=3161,
-)
-
-_CTOOLCHAIN_FEATURE = _descriptor.Descriptor(
-  name='Feature',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature.name', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='enabled', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature.enabled', index=1,
-      number=7, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='flag_set', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature.flag_set', index=2,
-      number=2, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='env_set', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature.env_set', index=3,
-      number=6, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='requires', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature.requires', index=4,
-      number=3, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='implies', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature.implies', index=5,
-      number=4, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='provides', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature.provides', index=6,
-      number=5, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3164,
-  serialized_end=3513,
-)
-
-_CTOOLCHAIN_TOOL = _descriptor.Descriptor(
-  name='Tool',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Tool',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='tool_path', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Tool.tool_path', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='with_feature', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Tool.with_feature', index=1,
-      number=2, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='execution_requirement', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.Tool.execution_requirement', index=2,
-      number=3, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3516,
-  serialized_end=3674,
-)
-
-_CTOOLCHAIN_ARTIFACTNAMEPATTERN = _descriptor.Descriptor(
-  name='ArtifactNamePattern',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ArtifactNamePattern',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='category_name', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ArtifactNamePattern.category_name', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='prefix', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ArtifactNamePattern.prefix', index=1,
-      number=2, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='extension', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ArtifactNamePattern.extension', index=2,
-      number=3, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3676,
-  serialized_end=3755,
-)
-
-_CTOOLCHAIN_ACTIONCONFIG = _descriptor.Descriptor(
-  name='ActionConfig',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='config_name', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.config_name', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='action_name', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.action_name', index=1,
-      number=2, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='enabled', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.enabled', index=2,
-      number=8, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='tool', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.tool', index=3,
-      number=3, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='flag_set', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.flag_set', index=4,
-      number=4, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='env_set', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.env_set', index=5,
-      number=5, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='requires', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.requires', index=6,
-      number=6, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='implies', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig.implies', index=7,
-      number=7, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3758,
-  serialized_end=4206,
-)
-
-_CTOOLCHAIN = _descriptor.Descriptor(
-  name='CToolchain',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='feature', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.feature', index=0,
-      number=50, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='action_config', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.action_config', index=1,
-      number=53, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='artifact_name_pattern', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.artifact_name_pattern', index=2,
-      number=54, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='toolchain_identifier', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.toolchain_identifier', index=3,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='host_system_name', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.host_system_name', index=4,
-      number=2, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='target_system_name', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.target_system_name', index=5,
-      number=3, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='target_cpu', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.target_cpu', index=6,
-      number=4, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='target_libc', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.target_libc', index=7,
-      number=5, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='compiler', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.compiler', index=8,
-      number=6, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='abi_version', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.abi_version', index=9,
-      number=7, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='abi_libc_version', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.abi_libc_version', index=10,
-      number=8, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='tool_path', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.tool_path', index=11,
-      number=9, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='supports_gold_linker', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_gold_linker', index=12,
-      number=10, type=8, cpp_type=7, label=1,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='supports_thin_archives', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_thin_archives', index=13,
-      number=11, type=8, cpp_type=7, label=1,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='supports_start_end_lib', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_start_end_lib', index=14,
-      number=28, type=8, cpp_type=7, label=1,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='supports_interface_shared_objects', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_interface_shared_objects', index=15,
-      number=32, type=8, cpp_type=7, label=1,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='supports_embedded_runtimes', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_embedded_runtimes', index=16,
-      number=40, type=8, cpp_type=7, label=1,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='static_runtimes_filegroup', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.static_runtimes_filegroup', index=17,
-      number=45, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='dynamic_runtimes_filegroup', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.dynamic_runtimes_filegroup', index=18,
-      number=46, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='supports_incremental_linker', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_incremental_linker', index=19,
-      number=41, type=8, cpp_type=7, label=1,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='supports_normalizing_ar', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_normalizing_ar', index=20,
-      number=26, type=8, cpp_type=7, label=1,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='supports_fission', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_fission', index=21,
-      number=43, type=8, cpp_type=7, label=1,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='supports_dsym', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.supports_dsym', index=22,
-      number=51, type=8, cpp_type=7, label=1,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='needsPic', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.needsPic', index=23,
-      number=12, type=8, cpp_type=7, label=1,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='compiler_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.compiler_flag', index=24,
-      number=13, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='cxx_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.cxx_flag', index=25,
-      number=14, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='unfiltered_cxx_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.unfiltered_cxx_flag', index=26,
-      number=25, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='linker_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.linker_flag', index=27,
-      number=15, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='dynamic_library_linker_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.dynamic_library_linker_flag', index=28,
-      number=27, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='test_only_linker_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.test_only_linker_flag', index=29,
-      number=49, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='objcopy_embed_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.objcopy_embed_flag', index=30,
-      number=16, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='ld_embed_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ld_embed_flag', index=31,
-      number=23, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='ar_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ar_flag', index=32,
-      number=47, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='ar_thin_archives_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.ar_thin_archives_flag', index=33,
-      number=48, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='gcc_plugin_compiler_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.gcc_plugin_compiler_flag', index=34,
-      number=34, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='compilation_mode_flags', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.compilation_mode_flags', index=35,
-      number=17, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='lipo_mode_flags', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.lipo_mode_flags', index=36,
-      number=44, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='linking_mode_flags', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.linking_mode_flags', index=37,
-      number=18, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='gcc_plugin_header_directory', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.gcc_plugin_header_directory', index=38,
-      number=19, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='mao_plugin_header_directory', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.mao_plugin_header_directory', index=39,
-      number=20, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='make_variable', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.make_variable', index=40,
-      number=21, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='cxx_builtin_include_directory', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.cxx_builtin_include_directory', index=41,
-      number=22, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='builtin_sysroot', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.builtin_sysroot', index=42,
-      number=24, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='default_python_top', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.default_python_top', index=43,
-      number=29, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='default_python_version', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.default_python_version', index=44,
-      number=30, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='python_preload_swigdeps', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.python_preload_swigdeps', index=45,
-      number=42, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='default_grte_top', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.default_grte_top', index=46,
-      number=31, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='debian_extra_requires', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.debian_extra_requires', index=47,
-      number=33, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='cc_target_os', full_name='com.google.devtools.build.lib.view.config.crosstool.CToolchain.cc_target_os', index=48,
-      number=55, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[_CTOOLCHAIN_FLAGGROUP, _CTOOLCHAIN_VARIABLEWITHVALUE, _CTOOLCHAIN_ENVENTRY, _CTOOLCHAIN_FEATURESET, _CTOOLCHAIN_WITHFEATURESET, _CTOOLCHAIN_FLAGSET, _CTOOLCHAIN_ENVSET, _CTOOLCHAIN_FEATURE, _CTOOLCHAIN_TOOL, _CTOOLCHAIN_ARTIFACTNAMEPATTERN, _CTOOLCHAIN_ACTIONCONFIG, ],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=98,
-  serialized_end=4206,
-)
-
-
-_TOOLPATH = _descriptor.Descriptor(
-  name='ToolPath',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.ToolPath',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='com.google.devtools.build.lib.view.config.crosstool.ToolPath.name', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='path', full_name='com.google.devtools.build.lib.view.config.crosstool.ToolPath.path', index=1,
-      number=2, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4208,
-  serialized_end=4246,
-)
-
-
-_COMPILATIONMODEFLAGS = _descriptor.Descriptor(
-  name='CompilationModeFlags',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.CompilationModeFlags',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='mode', full_name='com.google.devtools.build.lib.view.config.crosstool.CompilationModeFlags.mode', index=0,
-      number=1, type=14, cpp_type=8, label=2,
-      has_default_value=False, default_value=1,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='compiler_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CompilationModeFlags.compiler_flag', index=1,
-      number=2, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='cxx_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CompilationModeFlags.cxx_flag', index=2,
-      number=3, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='linker_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.CompilationModeFlags.linker_flag', index=3,
-      number=4, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4249,
-  serialized_end=4417,
-)
-
-
-_LINKINGMODEFLAGS = _descriptor.Descriptor(
-  name='LinkingModeFlags',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.LinkingModeFlags',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='mode', full_name='com.google.devtools.build.lib.view.config.crosstool.LinkingModeFlags.mode', index=0,
-      number=1, type=14, cpp_type=8, label=2,
-      has_default_value=False, default_value=1,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='linker_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.LinkingModeFlags.linker_flag', index=1,
-      number=2, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4419,
-  serialized_end=4538,
-)
-
-
-_LIPOMODEFLAGS = _descriptor.Descriptor(
-  name='LipoModeFlags',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.LipoModeFlags',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='mode', full_name='com.google.devtools.build.lib.view.config.crosstool.LipoModeFlags.mode', index=0,
-      number=1, type=14, cpp_type=8, label=2,
-      has_default_value=False, default_value=1,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='compiler_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.LipoModeFlags.compiler_flag', index=1,
-      number=2, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='cxx_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.LipoModeFlags.cxx_flag', index=2,
-      number=3, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='linker_flag', full_name='com.google.devtools.build.lib.view.config.crosstool.LipoModeFlags.linker_flag', index=3,
-      number=4, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4541,
-  serialized_end=4695,
-)
-
-
-_MAKEVARIABLE = _descriptor.Descriptor(
-  name='MakeVariable',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.MakeVariable',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='com.google.devtools.build.lib.view.config.crosstool.MakeVariable.name', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='value', full_name='com.google.devtools.build.lib.view.config.crosstool.MakeVariable.value', index=1,
-      number=2, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4697,
-  serialized_end=4740,
-)
-
-
-_DEFAULTCPUTOOLCHAIN = _descriptor.Descriptor(
-  name='DefaultCpuToolchain',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.DefaultCpuToolchain',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='cpu', full_name='com.google.devtools.build.lib.view.config.crosstool.DefaultCpuToolchain.cpu', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='toolchain_identifier', full_name='com.google.devtools.build.lib.view.config.crosstool.DefaultCpuToolchain.toolchain_identifier', index=1,
-      number=2, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='supports_lipo', full_name='com.google.devtools.build.lib.view.config.crosstool.DefaultCpuToolchain.supports_lipo', index=2,
-      number=3, type=8, cpp_type=7, label=1,
-      has_default_value=True, default_value=True,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4742,
-  serialized_end=4835,
-)
-
-
-_CROSSTOOLRELEASE = _descriptor.Descriptor(
-  name='CrosstoolRelease',
-  full_name='com.google.devtools.build.lib.view.config.crosstool.CrosstoolRelease',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='major_version', full_name='com.google.devtools.build.lib.view.config.crosstool.CrosstoolRelease.major_version', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='minor_version', full_name='com.google.devtools.build.lib.view.config.crosstool.CrosstoolRelease.minor_version', index=1,
-      number=2, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='default_target_cpu', full_name='com.google.devtools.build.lib.view.config.crosstool.CrosstoolRelease.default_target_cpu', index=2,
-      number=3, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='default_toolchain', full_name='com.google.devtools.build.lib.view.config.crosstool.CrosstoolRelease.default_toolchain', index=3,
-      number=4, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    _descriptor.FieldDescriptor(
-      name='toolchain', full_name='com.google.devtools.build.lib.view.config.crosstool.CrosstoolRelease.toolchain', index=4,
-      number=5, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4838,
-  serialized_end=5115,
-)
-
-_CTOOLCHAIN_FLAGGROUP.fields_by_name['flag_group'].message_type = _CTOOLCHAIN_FLAGGROUP
-_CTOOLCHAIN_FLAGGROUP.fields_by_name['expand_if_equal'].message_type = _CTOOLCHAIN_VARIABLEWITHVALUE
-_CTOOLCHAIN_FLAGGROUP.containing_type = _CTOOLCHAIN
-_CTOOLCHAIN_VARIABLEWITHVALUE.containing_type = _CTOOLCHAIN
-_CTOOLCHAIN_ENVENTRY.containing_type = _CTOOLCHAIN
-_CTOOLCHAIN_FEATURESET.containing_type = _CTOOLCHAIN
-_CTOOLCHAIN_WITHFEATURESET.containing_type = _CTOOLCHAIN
-_CTOOLCHAIN_FLAGSET.fields_by_name['flag_group'].message_type = _CTOOLCHAIN_FLAGGROUP
-_CTOOLCHAIN_FLAGSET.fields_by_name['with_feature'].message_type = _CTOOLCHAIN_WITHFEATURESET
-_CTOOLCHAIN_FLAGSET.containing_type = _CTOOLCHAIN
-_CTOOLCHAIN_ENVSET.fields_by_name['env_entry'].message_type = _CTOOLCHAIN_ENVENTRY
-_CTOOLCHAIN_ENVSET.fields_by_name['with_feature'].message_type = _CTOOLCHAIN_WITHFEATURESET
-_CTOOLCHAIN_ENVSET.containing_type = _CTOOLCHAIN
-_CTOOLCHAIN_FEATURE.fields_by_name['flag_set'].message_type = _CTOOLCHAIN_FLAGSET
-_CTOOLCHAIN_FEATURE.fields_by_name['env_set'].message_type = _CTOOLCHAIN_ENVSET
-_CTOOLCHAIN_FEATURE.fields_by_name['requires'].message_type = _CTOOLCHAIN_FEATURESET
-_CTOOLCHAIN_FEATURE.containing_type = _CTOOLCHAIN
-_CTOOLCHAIN_TOOL.fields_by_name['with_feature'].message_type = _CTOOLCHAIN_WITHFEATURESET
-_CTOOLCHAIN_TOOL.containing_type = _CTOOLCHAIN
-_CTOOLCHAIN_ARTIFACTNAMEPATTERN.containing_type = _CTOOLCHAIN
-_CTOOLCHAIN_ACTIONCONFIG.fields_by_name['tool'].message_type = _CTOOLCHAIN_TOOL
-_CTOOLCHAIN_ACTIONCONFIG.fields_by_name['flag_set'].message_type = _CTOOLCHAIN_FLAGSET
-_CTOOLCHAIN_ACTIONCONFIG.fields_by_name['env_set'].message_type = _CTOOLCHAIN_ENVSET
-_CTOOLCHAIN_ACTIONCONFIG.fields_by_name['requires'].message_type = _CTOOLCHAIN_FEATURESET
-_CTOOLCHAIN_ACTIONCONFIG.containing_type = _CTOOLCHAIN
-_CTOOLCHAIN.fields_by_name['feature'].message_type = _CTOOLCHAIN_FEATURE
-_CTOOLCHAIN.fields_by_name['action_config'].message_type = _CTOOLCHAIN_ACTIONCONFIG
-_CTOOLCHAIN.fields_by_name['artifact_name_pattern'].message_type = _CTOOLCHAIN_ARTIFACTNAMEPATTERN
-_CTOOLCHAIN.fields_by_name['tool_path'].message_type = _TOOLPATH
-_CTOOLCHAIN.fields_by_name['compilation_mode_flags'].message_type = _COMPILATIONMODEFLAGS
-_CTOOLCHAIN.fields_by_name['lipo_mode_flags'].message_type = _LIPOMODEFLAGS
-_CTOOLCHAIN.fields_by_name['linking_mode_flags'].message_type = _LINKINGMODEFLAGS
-_CTOOLCHAIN.fields_by_name['make_variable'].message_type = _MAKEVARIABLE
-_COMPILATIONMODEFLAGS.fields_by_name['mode'].enum_type = _COMPILATIONMODE
-_LINKINGMODEFLAGS.fields_by_name['mode'].enum_type = _LINKINGMODE
-_LIPOMODEFLAGS.fields_by_name['mode'].enum_type = _LIPOMODE
-_CROSSTOOLRELEASE.fields_by_name['default_toolchain'].message_type = _DEFAULTCPUTOOLCHAIN
-_CROSSTOOLRELEASE.fields_by_name['toolchain'].message_type = _CTOOLCHAIN
-DESCRIPTOR.message_types_by_name['CToolchain'] = _CTOOLCHAIN
-DESCRIPTOR.message_types_by_name['ToolPath'] = _TOOLPATH
-DESCRIPTOR.message_types_by_name['CompilationModeFlags'] = _COMPILATIONMODEFLAGS
-DESCRIPTOR.message_types_by_name['LinkingModeFlags'] = _LINKINGMODEFLAGS
-DESCRIPTOR.message_types_by_name['LipoModeFlags'] = _LIPOMODEFLAGS
-DESCRIPTOR.message_types_by_name['MakeVariable'] = _MAKEVARIABLE
-DESCRIPTOR.message_types_by_name['DefaultCpuToolchain'] = _DEFAULTCPUTOOLCHAIN
-DESCRIPTOR.message_types_by_name['CrosstoolRelease'] = _CROSSTOOLRELEASE
-DESCRIPTOR.enum_types_by_name['CompilationMode'] = _COMPILATIONMODE
-DESCRIPTOR.enum_types_by_name['LinkingMode'] = _LINKINGMODE
-DESCRIPTOR.enum_types_by_name['LipoMode'] = _LIPOMODE
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-CToolchain = _reflection.GeneratedProtocolMessageType('CToolchain', (_message.Message,), dict(
-
-  FlagGroup = _reflection.GeneratedProtocolMessageType('FlagGroup', (_message.Message,), dict(
-    DESCRIPTOR = _CTOOLCHAIN_FLAGGROUP,
-    __module__ = 'src.main.protobuf.crosstool_config_pb2'
-    # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagGroup)
-    ))
-  ,
-
-  VariableWithValue = _reflection.GeneratedProtocolMessageType('VariableWithValue', (_message.Message,), dict(
-    DESCRIPTOR = _CTOOLCHAIN_VARIABLEWITHVALUE,
-    __module__ = 'src.main.protobuf.crosstool_config_pb2'
-    # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.VariableWithValue)
-    ))
-  ,
-
-  EnvEntry = _reflection.GeneratedProtocolMessageType('EnvEntry', (_message.Message,), dict(
-    DESCRIPTOR = _CTOOLCHAIN_ENVENTRY,
-    __module__ = 'src.main.protobuf.crosstool_config_pb2'
-    # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvEntry)
-    ))
-  ,
-
-  FeatureSet = _reflection.GeneratedProtocolMessageType('FeatureSet', (_message.Message,), dict(
-    DESCRIPTOR = _CTOOLCHAIN_FEATURESET,
-    __module__ = 'src.main.protobuf.crosstool_config_pb2'
-    # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.FeatureSet)
-    ))
-  ,
-
-  WithFeatureSet = _reflection.GeneratedProtocolMessageType('WithFeatureSet', (_message.Message,), dict(
-    DESCRIPTOR = _CTOOLCHAIN_WITHFEATURESET,
-    __module__ = 'src.main.protobuf.crosstool_config_pb2'
-    # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.WithFeatureSet)
-    ))
-  ,
-
-  FlagSet = _reflection.GeneratedProtocolMessageType('FlagSet', (_message.Message,), dict(
-    DESCRIPTOR = _CTOOLCHAIN_FLAGSET,
-    __module__ = 'src.main.protobuf.crosstool_config_pb2'
-    # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.FlagSet)
-    ))
-  ,
-
-  EnvSet = _reflection.GeneratedProtocolMessageType('EnvSet', (_message.Message,), dict(
-    DESCRIPTOR = _CTOOLCHAIN_ENVSET,
-    __module__ = 'src.main.protobuf.crosstool_config_pb2'
-    # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.EnvSet)
-    ))
-  ,
-
-  Feature = _reflection.GeneratedProtocolMessageType('Feature', (_message.Message,), dict(
-    DESCRIPTOR = _CTOOLCHAIN_FEATURE,
-    __module__ = 'src.main.protobuf.crosstool_config_pb2'
-    # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.Feature)
-    ))
-  ,
-
-  Tool = _reflection.GeneratedProtocolMessageType('Tool', (_message.Message,), dict(
-    DESCRIPTOR = _CTOOLCHAIN_TOOL,
-    __module__ = 'src.main.protobuf.crosstool_config_pb2'
-    # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.Tool)
-    ))
-  ,
-
-  ArtifactNamePattern = _reflection.GeneratedProtocolMessageType('ArtifactNamePattern', (_message.Message,), dict(
-    DESCRIPTOR = _CTOOLCHAIN_ARTIFACTNAMEPATTERN,
-    __module__ = 'src.main.protobuf.crosstool_config_pb2'
-    # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.ArtifactNamePattern)
-    ))
-  ,
-
-  ActionConfig = _reflection.GeneratedProtocolMessageType('ActionConfig', (_message.Message,), dict(
-    DESCRIPTOR = _CTOOLCHAIN_ACTIONCONFIG,
-    __module__ = 'src.main.protobuf.crosstool_config_pb2'
-    # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain.ActionConfig)
-    ))
-  ,
-  DESCRIPTOR = _CTOOLCHAIN,
-  __module__ = 'src.main.protobuf.crosstool_config_pb2'
-  # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CToolchain)
-  ))
-_sym_db.RegisterMessage(CToolchain)
-_sym_db.RegisterMessage(CToolchain.FlagGroup)
-_sym_db.RegisterMessage(CToolchain.VariableWithValue)
-_sym_db.RegisterMessage(CToolchain.EnvEntry)
-_sym_db.RegisterMessage(CToolchain.FeatureSet)
-_sym_db.RegisterMessage(CToolchain.WithFeatureSet)
-_sym_db.RegisterMessage(CToolchain.FlagSet)
-_sym_db.RegisterMessage(CToolchain.EnvSet)
-_sym_db.RegisterMessage(CToolchain.Feature)
-_sym_db.RegisterMessage(CToolchain.Tool)
-_sym_db.RegisterMessage(CToolchain.ArtifactNamePattern)
-_sym_db.RegisterMessage(CToolchain.ActionConfig)
-
-ToolPath = _reflection.GeneratedProtocolMessageType('ToolPath', (_message.Message,), dict(
-  DESCRIPTOR = _TOOLPATH,
-  __module__ = 'src.main.protobuf.crosstool_config_pb2'
-  # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.ToolPath)
-  ))
-_sym_db.RegisterMessage(ToolPath)
-
-CompilationModeFlags = _reflection.GeneratedProtocolMessageType('CompilationModeFlags', (_message.Message,), dict(
-  DESCRIPTOR = _COMPILATIONMODEFLAGS,
-  __module__ = 'src.main.protobuf.crosstool_config_pb2'
-  # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CompilationModeFlags)
-  ))
-_sym_db.RegisterMessage(CompilationModeFlags)
-
-LinkingModeFlags = _reflection.GeneratedProtocolMessageType('LinkingModeFlags', (_message.Message,), dict(
-  DESCRIPTOR = _LINKINGMODEFLAGS,
-  __module__ = 'src.main.protobuf.crosstool_config_pb2'
-  # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.LinkingModeFlags)
-  ))
-_sym_db.RegisterMessage(LinkingModeFlags)
-
-LipoModeFlags = _reflection.GeneratedProtocolMessageType('LipoModeFlags', (_message.Message,), dict(
-  DESCRIPTOR = _LIPOMODEFLAGS,
-  __module__ = 'src.main.protobuf.crosstool_config_pb2'
-  # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.LipoModeFlags)
-  ))
-_sym_db.RegisterMessage(LipoModeFlags)
-
-MakeVariable = _reflection.GeneratedProtocolMessageType('MakeVariable', (_message.Message,), dict(
-  DESCRIPTOR = _MAKEVARIABLE,
-  __module__ = 'src.main.protobuf.crosstool_config_pb2'
-  # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.MakeVariable)
-  ))
-_sym_db.RegisterMessage(MakeVariable)
-
-DefaultCpuToolchain = _reflection.GeneratedProtocolMessageType('DefaultCpuToolchain', (_message.Message,), dict(
-  DESCRIPTOR = _DEFAULTCPUTOOLCHAIN,
-  __module__ = 'src.main.protobuf.crosstool_config_pb2'
-  # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.DefaultCpuToolchain)
-  ))
-_sym_db.RegisterMessage(DefaultCpuToolchain)
-
-CrosstoolRelease = _reflection.GeneratedProtocolMessageType('CrosstoolRelease', (_message.Message,), dict(
-  DESCRIPTOR = _CROSSTOOLRELEASE,
-  __module__ = 'src.main.protobuf.crosstool_config_pb2'
-  # @@protoc_insertion_point(class_scope:com.google.devtools.build.lib.view.config.crosstool.CrosstoolRelease)
-  ))
-_sym_db.RegisterMessage(CrosstoolRelease)
-
-
-DESCRIPTOR.has_options = True
-DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n3com.google.devtools.build.lib.view.config.crosstool'))
-# @@protoc_insertion_point(module_scope)
diff --git a/third_party/flatbuffers/build_defs.bzl b/third_party/flatbuffers/build_defs.bzl
index afafe1c..be7ed13 100644
--- a/third_party/flatbuffers/build_defs.bzl
+++ b/third_party/flatbuffers/build_defs.bzl
@@ -5,7 +5,7 @@
 Rules for building C++ flatbuffers with Bazel.
 """
 
-load("@build_bazel_rules_typescript//:defs.bzl", "ts_library")
+load("@npm_bazel_typescript//:defs.bzl", "ts_library")
 
 flatc_path = "@com_github_google_flatbuffers//:flatc"
 
diff --git a/third_party/flatbuffers/ts/BUILD b/third_party/flatbuffers/ts/BUILD
index ad59551..2787fbc 100644
--- a/third_party/flatbuffers/ts/BUILD
+++ b/third_party/flatbuffers/ts/BUILD
@@ -1,4 +1,4 @@
-load("@build_bazel_rules_typescript//:defs.bzl", "ts_library")
+load("@npm_bazel_typescript//:defs.bzl", "ts_library")
 
 ts_library(
     name = "flatbuffers_ts",