Building Real-time Systems with Bazel
summary
SpaceX moves two large C++ repositories (about two million-line repos total) from Make to Bazel over a yearlong effort, adds cross-toolchain support, and implements a Skylark rule wrapping shell build for tricky third-party libs. CI validation proves identical object files between old and new builds after flag-by-flag comparison, sandboxing yields sandboxing and reproducibility benefits, C++ coverage and include-path quirks cost time, and a phased rollout shows faster, more reliable incremental builds that remove frequent “make clean” workarounds.
AI-written summary · about
chapters (15)
- 0:00SpaceX introduction
- 6:45Software challenges
- 12:43Why Bazel
- 15:09Bazel migration start
- 16:52Porting code to Bazel
- 18:16Toolchains and cross-compile
- 19:19Third-party dependencies
- 21:07Bazel CI integration
- 23:14Build determinism
- 24:38Team rollout
- 26:42C++ coverage issues
- 28:05Python tests
- 29:51Migration lessons
- 30:33Future plans
- 33:00Conclusion








