diff --git a/cc/BUILD b/cc/BUILD
index 730133a..b0a349b 100644
--- a/cc/BUILD
+++ b/cc/BUILD
@@ -13,6 +13,7 @@
 # limitations under the License.
 
 load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
+load("//cc/toolchains:cc_toolchain_alias.bzl", "cc_toolchain_alias")
 load(":starlark_doc_extract_helper.bzl", "starlark_doc_extract_helper")
 
 package(default_visibility = ["//visibility:public"])
diff --git a/cc/extensions.bzl b/cc/extensions.bzl
index 6252622..c95b775 100644
--- a/cc/extensions.bzl
+++ b/cc/extensions.bzl
@@ -60,6 +60,7 @@
 load("@rules_cc//cc/private/rules_impl:fdo/memprof_profile.bzl", _memprof_profile = "memprof_profile")
 load("@rules_cc//cc/private/rules_impl:fdo/propeller_optimize.bzl", _propeller_optimize = "propeller_optimize")
 load("@rules_cc//cc/private/rules_impl:cc_toolchain.bzl", _cc_toolchain = "cc_toolchain")
+load("@rules_cc//cc/private/rules_impl:cc_toolchain_alias.bzl", _cc_toolchain_alias = "cc_toolchain_alias")
 
 cc_binary = _cc_binary
 cc_import = _cc_import
@@ -74,6 +75,7 @@
 memprof_profile = _memprof_profile
 propeller_optimize = _propeller_optimize
 cc_toolchain = _cc_toolchain
+cc_toolchain_alias = _cc_toolchain_alias
 
 CcSharedLibraryInfo = _CcSharedLibraryInfo
             """,
@@ -108,6 +110,7 @@
 memprof_profile = getattr(native, "memprof_profile", None) # only in Bazel 7+
 propeller_optimize = native.propeller_optimize
 cc_toolchain = native.cc_toolchain
+cc_toolchain_alias = native.cc_toolchain_alias
 
 CcSharedLibraryInfo = NativeCcSharedLibraryInfo
             """,
diff --git a/cc/private/bazel7/BUILD b/cc/private/bazel7/BUILD
index ebf88d4..494e01b 100644
--- a/cc/private/bazel7/BUILD
+++ b/cc/private/bazel7/BUILD
@@ -11,6 +11,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+load("//cc/toolchains:cc_toolchain_alias.bzl", "cc_toolchain_alias")
 
 package(default_visibility = ["//visibility:public"])
 
diff --git a/cc/private/rules_impl/BUILD b/cc/private/rules_impl/BUILD
index a817d68..c38189e 100644
--- a/cc/private/rules_impl/BUILD
+++ b/cc/private/rules_impl/BUILD
@@ -64,6 +64,7 @@
     name = "toolchain_rules",
     srcs = [
         "cc_toolchain.bzl",
+        "cc_toolchain_alias.bzl",
         "cc_toolchain_info.bzl",
         "cc_toolchain_provider_helper.bzl",
         "fdo/fdo_context.bzl",
diff --git a/cc/private/rules_impl/cc_toolchain_alias.bzl b/cc/private/rules_impl/cc_toolchain_alias.bzl
new file mode 100644
index 0000000..630451b
--- /dev/null
+++ b/cc/private/rules_impl/cc_toolchain_alias.bzl
@@ -0,0 +1,53 @@
+# Copyright 2022 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Starlark implementation of cc_toolchain_alias rule."""
+
+load("//cc:find_cc_toolchain.bzl", "find_cc_toolchain", "use_cc_toolchain")
+load("//cc/common:cc_common.bzl", "cc_common")
+load("//cc/common:cc_helper.bzl", "cc_helper")
+load("//cc/common:semantics.bzl", "semantics")
+
+CcToolchainInfo = cc_common.CcToolchainInfo
+TemplateVariableInfo = platform_common.TemplateVariableInfo
+ToolchainInfo = platform_common.ToolchainInfo
+
+def _impl(ctx):
+    cc_toolchain = find_cc_toolchain(ctx, mandatory = ctx.attr.mandatory)
+    if not cc_toolchain:
+        return []
+    make_variables = cc_toolchain._additional_make_variables
+    cc_provider_make_variables = cc_helper.get_toolchain_global_make_variables(cc_toolchain)
+    template_variable_info = TemplateVariableInfo(make_variables | cc_provider_make_variables)
+    toolchain = ToolchainInfo(
+        cc = cc_toolchain,
+        cc_provider_in_toolchain = True,
+    )
+    return [
+        cc_toolchain,
+        toolchain,
+        template_variable_info,
+        DefaultInfo(
+            files = cc_toolchain._all_files_including_libc,
+        ),
+    ]
+
+cc_toolchain_alias = rule(
+    implementation = _impl,
+    fragments = ["cpp", "platform"],
+    attrs = {
+        "mandatory": attr.bool(default = True),
+    },
+    toolchains = use_cc_toolchain() + semantics.get_runtimes_toolchain(),
+)
diff --git a/cc/toolchains/cc_toolchain_alias.bzl b/cc/toolchains/cc_toolchain_alias.bzl
new file mode 100644
index 0000000..b0aa1b1
--- /dev/null
+++ b/cc/toolchains/cc_toolchain_alias.bzl
@@ -0,0 +1,16 @@
+# Copyright 2024 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""cc_toolchain_alias rule"""
+
+cc_toolchain_alias = native.cc_toolchain_alias
diff --git a/cc/toolchains/cc_toolchain_alias.bzl.oss b/cc/toolchains/cc_toolchain_alias.bzl.oss
new file mode 100644
index 0000000..2728213
--- /dev/null
+++ b/cc/toolchains/cc_toolchain_alias.bzl.oss
@@ -0,0 +1,18 @@
+# Copyright 2024 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""cc_toolchain rule"""
+
+load("@cc_compatibility_proxy//:proxy.bzl", _cc_toolchain_alias = "cc_toolchain_alias")
+
+cc_toolchain_alias = _cc_toolchain_alias
