-
Notifications
You must be signed in to change notification settings - Fork 13
Description
Title
Building, Testing, and Distributing Chromium's C++ Toolchain
Author
Hans Wennborg, [email protected], Google
Distribution
Chromium's C++ toolchain, used to build Chromium and Chromium-derived web browsers.
Abstract (optional)
Chromium uses an LLVM-based C++ toolchain to build the browser for all its supported platforms. This talk covers how we build the toolchain for best performance, test it to be confident it works, and distribute it to all our developers and infrastructure. In particular, it covers how we manage to stay so close to the HEAD revision.
What's unique about the environment you package LLVM for? (optional)
What makes your distribution of LLVM unique? (optional)
-
Many host and target platforms: Windows, Mac, Linux, Android, iOS, Fuchsia
-
Living at HEAD: rigorous CI, shipping a new toolchain semi-weekly, no local patches, your LLVM commit can be used to build tomorrow's shipping canary version of the browser
-
Not a general-purpose toolchain release: building Chromium is the supported use case
-
Lots of upstream contributions to support our needs: clang-cl, the new lld; and things which are possible when controlling the whole toolchain such as constructor type homing, global type hashing for PDBs, etc.
What might others learn from your experience? (optional)
What could be improved in upstream LLVM to make working with it easier as a downstream packager? (optional)
Anything that makes the HEAD revision more stable.
Reminder that this is meant to be a 15 minute lightning talk; enough to pique
interests but follow up should be done after. Slides can always include links
to more info; we will ask that you send a PR to this repo with your slides when
they are ready.