С прошлого года стало возможным собрать основную ветку ядра x86_64 Linux с помощью компилятора Calng из набора LLVM. Теперь же в обновленной системе Kbuild для ядра Linux 5.7 этот процесс стал значительно проще — достаточно присвоить переменной LLVM значение 1 и для компиляции ядра будет задействован Clang и все утилиты LLVM вместо традиционных GCC и Binutils.
Параметр LLVM=1 может быть передан из командной строки или как переменная окружения.
Единственное исключение заключается в том, что ассемблер из состава LLVM не будет использоваться по умолчанию, так как в ядре все ещё есть некоторые проблемы с его поддержкой. Тем не менее, обновленный Kbuild для Linux 5.7 также включает переменную LLVM_IAS=1 для задействования интегрированного ассемблера, который пока всё ещё считается экспериментальным. В любом случае новые параметры позволяют очень легко перейти к использованию стека компиляторов на основе LLVM для сборки ядра.
Вышедшая недавно десятая версия LLVM получила массу обновлений — экосистема вокруг LLVM расширяется, а популярность проекта только растёт. Конечно, вряд ли мы в ближайшее время увидим полный «переезд» и отказ от GCC. Впрочем, другая открытая ОС, FreeBSD уже сделала шаг в этом направлении: из дерева исходных кодов удалены GCC и сопутствующие утилиты, а для сборки для платформ, которые не готовы к Clang, придётся использовать уже внешний инструментарий.