Ingenieure von Collabora haben einen Bericht ĂŒber die Umsetzung eines Projekts zur UnterstĂŒtzung des Builds der GNU C Library (glibc) mit dem LLVM-Toolset (Clang, LLD, compiler-rt) anstelle von GCC veröffentlicht. Bis zuletzt blieb Glibc eine der wesentlichen Komponenten von Distributionen, die nur mit GCC bauen konnten.
Die Schwierigkeiten bei der Anpassung von Glibc zum Bau mit LLVM ergeben sich sowohl aus den Unterschieden im Verhalten von GCC und Clang bei der Verarbeitung bestimmter Konstruktionen (zum Beispiel AusdrĂŒcke mit dem Symbol $, verschachtelte Funktionen, Labels in asm-Blöcken, Typen long double und float128) als auch aus der Notwendigkeit, das Runtime von libgcc auf compiler-rt umzustellen.
FĂŒr den Aufbau von Glibc mit LLVM wurden etwa 150 Patches fĂŒr die Gentoo-Umgebung und 160 fĂŒr die ChromiumOS-basierte Umgebung vorbereitet. In ihrem derzeitigen Zustand durchlĂ€uft der Build in ChromiumOS bereits erfolgreich die Testsuite, ist aber noch nicht standardmĂ€Ăig aktiviert. Der nĂ€chste Schritt wird die Ăbertragung der vorbereiteten Ănderungen in den Hauptzweig von Glibc und LLVM sein, gefolgt von fortlaufenden Tests und der Behebung auftretender untypischer Probleme. Einige der Patches wurden bereits in den Branch von Glibc 2.37 aufgenommen.
Quelle: opennet.ru
