Jądro Linux może być kompilowane z użyciem LLVM/Clang

Jądro Linux może być kompilowane z użyciem LLVM/Clang

    przez -
    16 467
    LLVM
    Na konferencji LinuxCon North America, która odbyła się w dniach 16 – 18 września 2013 roku, Behan Webster przedstawił obecne prace nad projektem LLVMLinux. Chodzi mianowicie o umożliwienie pełnej i bez błędów kompilacji jądra Linux z użyciem LLVM i Clang. Owe narzędzia są wykorzystywane m.in. przez Apple, nVidia, Intel, Google, a nawet Debiana. Dodatkowo LLVM 3.3 i Clang 3.3, jako jedne z pierwszych narzędzi obsługiwały w pełni standard C++11.

    Oto najważniejsze punkty z prezentacji:

    • LLVM 3.3 i Clang 3.3 posiadają już odpowiednie wsparcie, aczkolwiek zintegrowany asembler Clang jest nadal wyłączony
    • LLVM 3.3 i Clang 3.3 potrafią już kompilować jądro Linux, jednakże nadal potrzebne jest dodanie kilku łatek spoza głównego drzewa jądra Linux.
    • Deweloperzy LLVM na bieżąco obserwują zmiany w jądrze, dzięki czemu mogą cały czas wprowadzać zmiany w kodzie
    • Można pomóc w rozwoju, poprzez testowanie łatek, zgłaszanie błędów, pracą nad nowymi funkcjami lub zgłoszeniem własnych poprawek

    • o_O

      I jest jakiś realny zysk z tego, czy tak sztuka dla sztuki?

      • Firmy zajmujące się ARM za to płacą.

      • Mateusz

        poza takim, że nie trzeba mieć kompilatora GNU? :D

      • pijaczek

        Clang potrafi wypluć wydajniejszy kod niż GCC więc zysk to większa wydajność jądra oraz kompilacja trwa mniej niż w GCC więc zmniejszenie czasu kompilacji. Główny minus Clanga nie jest w jądrze istotny (brak wsparcia dla standardu OpenMP), bo i tak nie może z niego skorzystać.

      • To czemu na Phoronix nie mogą tej wydajności udowodnić?

      • pijaczek

        Może dlatego, że używają -O3 czyli maksymalnego poziomu optymalizacji GCC też dla Clang, gdzie masz do -O4, a resztę optymalizacji zarówno w GCC i Clang trzeba włączyć ręcznie, a na Phoronix wydaje się, że nie mają pojęcia o żadnym z tych kompilatorów (brak optymalizacji Interprocedural optimization, Profile-Guided Optimization, Link Time Optimization… i masy innych (brak wektoryzacji przykładowo)).
        Po prostu nie testują jakie możliwości maja te kompilatory w rękach programisty, który wyciśnie z nich wszystko, a jaki kod wypluwają w rękach laika, który nie do końca wie co robi.

      • krzabr

        Czyżby kolejna sytuacja kiedy to phoronix ma złą metodologię testów ?

        Druga sprawa jest taka że GCC od lat 90tych był monopolistą wśród wolnych kompilatorów C, stąd konkurencja korzystnie wpłynie na oba produkty.

      • To zależy, czy ktoś będzie chciał w GCC inwestować. Na razie duża część pieniędzy idzie na LLVM.

      • OpenMP ostatnio dodał Intel.

      • pijaczek

        Intel dodał brancha, ale zanim wejdzie to do trunka to jeszcze droga daleka, bo obecnie wspierane z tego co pamiętam jest tylko Linux, MacOS i tylko x86_64… a to trochę mało (mimo wszystko przydałby się Windows i wsparcie dla ARM/PowerPC zanim wejdzie do trunka).

    • Pingback: Jądro Linux 3.15 z obsługą miksowanego EFI oraz wieloma nowościami | OSWorld.pl()