Not too long ago, it was clear how to build a new toolchain -- build binutils, build a gcc bootstrap compiler, build glibc, build a full featured gcc, debug it with gdb. That is still a good option - but no longer the only one: These days, alternatives to each of those components are available. This talk examines the available options and gives recommendations of what components make sense for what use cases.
The talk looks at the traditional toolchain options as well as alternatives including LLVM/clang/lld, elfutils, TinyCC and OpenArk, musl, uClibc-ng, klibc, newlib, LLVM libc, bionic and dietlibc, libstdc++, libc++ and uClibc++, and shows which components go well together and which don't.
Speakers: Bernhard Rosenkränzer