New toolchain for All Scenarios OS

We’re about to (finally) flip the switch and make our own toolchain the default instead of using Yocto’s defaults.

We’ve opted for a clang 12 based toolchain (with a clang 13/master branch based version already in development).

We’ve picked clang primarily because it is clean and maintainable code - adding a new backend, or a new language frontend, is quite a bit less painful than in the alternatives. We also find the sanitizers interesting.

The main drawback of other non-traditional toolchain components (such as libc++ in place of libstdc++, or a libc other than glibc) is the lack of binary compatibility. This isn’t a problem in the embedded world, given nobody (well, at least nobody outside of a community that knows how to work around this anyway :wink: ) is going to run Steam on a lightbulb – So we’ve decided to go all the way: The new All Scenarios OS toolchain uses libc++ (which should give us another bit of a performance boost especially on devices with multiple processor cores), compiler-rt and musl.

So far all tests have gone well.
Let us know in the thread if you’re experiencing any problems with the new toolchain.

1 Like