Make the Carbon toolchain a viable Bazel module exposing cc_toolchains (#6652)

This let's you point Bazel at an installed toolchain or download one of
our release archives. When you do, it will configure itself as a C++
Bazel toolchain. This toolchain works reasonably well, but doesn't cache
the C++ runtimes, and so linking is inefficient. The next step will be
to pivot the runtimes from the implicitly on-demand (which can't cache
when using a sandboxed build system like Bazel) to _explicit_ on-demand
runtimes directly with Bazel support.

I've included an example Bazel project that uses this and provides a
bunch of documentation and an example script that should let folks try
this out easily.

---------

Co-authored-by: Geoff Romer <gromer@google.com>
Co-authored-by: David Blaikie <dblaikie@gmail.com>
This commit is contained in:
Chandler Carruth
2026-01-28 02:45:19 +00:00
committed by GitHub
co-authored by Geoff Romer David Blaikie
parent e69c3fd978
commit b0ffed7c3e
15 changed files with 544 additions and 0 deletions
+16
View File
@@ -0,0 +1,16 @@
// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
// Exceptions. See /LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#include "example.h"
#include <stdlib.h>
#include <iostream>
auto HelloWorld() -> void { std::cout << "Hello World!\n"; }
auto main() -> int {
HelloWorld();
return EXIT_SUCCESS;
}