Zaimplementowano możliwość budowania Glibc przy użyciu zestawu narzędzi LLVM

Inżynierowie z Collabora opublikowali raport z realizacji projektu zapewniającego montaż biblioteki systemowej GNU C Library (glibc) z wykorzystaniem zestawu narzędzi LLVM (Clang, LLD, compilator-rt) zamiast GCC. Do niedawna Glibc pozostawał jednym z istotnych komponentów dystrybucji obsługujących budowanie wyłącznie przy użyciu GCC.

Trudności w adaptacji Glibca do asemblera przy użyciu LLVM wynikają zarówno z różnic w zachowaniu GCC, jak i Clanga podczas przetwarzania niektórych konstrukcji (na przykład wyrażenia z symbolem $, funkcje zagnieżdżone, etykiety w blokach asm, typy long double i float128), oraz konieczność zastąpienia środowiska wykonawczego biblioteką libgcc na kompilatorze-rt.

Aby zapewnić montaż Glibc przy użyciu LLVM, przygotowano około 150 łatek dla środowiska Gentoo i 160 dla środowiska opartego na ChromiumOS. W swojej obecnej formie kompilacja ChromiumOS pomyślnie przeszła już zestaw testów, ale nie jest jeszcze domyślnie włączona. Następnym krokiem będzie przeniesienie przygotowanych zmian do głównej struktury Glibc i LLVM, kontynuacja testowania i poprawianie pojawiających się nietypowych problemów. Część łatek została już przyjęta do gałęzi Glibc 2.37.

Źródło: opennet.ru

Dodaj komentarz