carbon-lang
carbon-lang copied to clipboard
Implement a basic busybox for carbon/clang.
For reference, we're going down the busyboxing route because Carbon depends on Clang, and we want both to be available as binaries. Busyboxing allows this while avoiding duplicating symbols between multiple binaries.
I'm removing the cc_binary for driver:carbon because I want to avoid a significant increase in binary outputs; bazel run //toolchain still works great.
This still doesn't have great test coverage (but non-zero: //examples:sieve still builds/runs, for example). The problem is that we want to avoid subprocessing for performance, but this mainly deals with subprocessing. I'm still thinking about good approaches for that, since we'll probably want more significant testing for clang interaction... the solution might involve busyboxing file_test too.
Note the TODO about the scripts in install/BUILD; these work but are probably a temporary solution. Even if we stay with scripts, we should probably autogenerate them since we'll have a bunch.
Note development on this ran into the argv issue being fixed in #4405