Inżynierowie z firmy Collabora opublikowali raport dotyczący realizacji projektu zapewnienia wsparcia dla budowy systemowej biblioteki GNU C Library (glibc) z wykorzystaniem narzędzi LLVM (Clang, LLD, compiler-rt) zamiast GCC. Do niedawna glibc pozostawał jednym z kluczowych komponentów dystrybucji, które wspierały budowę wyłącznie za pomocą GCC.
Trudności w adaptacji glibc do budowy z użyciem LLVM wynikają zarówno z różnic w zachowaniu GCC i Clang przy przetwarzaniu niektórych konstrukcji (na przykład wyrażeń z symbolem $, zagnieżdżonych funkcji, etykiet w blokach asm, typów long double i float128), jak i z konieczności zastąpienia runtime z libgcc na compiler-rt.
Aby zapewnić budowę glibc z użyciem LLVM, przygotowano około 150 patchy dla środowiska Gentoo i 160 dla środowiska opartego na ChromiumOS. W bieżącej postaci budowa w ChromiumOS już pomyślnie przechodzi zestaw testów, ale nie jest jeszcze włączona domyślnie. Kolejnym krokiem będzie przekazanie przygotowanych zmian do głównego repozytorium glibc i LLVM, kontynuacja testowania i naprawa pojawiających się nietypowych problemów. Niektóre z patchy zostały już przyjęte do gałęzi glibc 2.37.
Źródło: opennet.ru
