Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сборки Glibc ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ инструмСнтария LLVM

Π˜Π½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π‘ollabora ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΠΎΡ‚Ρ‡Ρ‘Ρ‚ ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ сборки систСмной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GNU C Library (glibc) с использованиСм инструмСнтария LLVM (Clang, LLD, compiler-rt) вмСсто GCC. Π”ΠΎ послСднСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Glibc оставался ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² дистрибутивов, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… сборку Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ GCC.

БлоТности Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ Glibc для сборки ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ LLVM Π²Ρ‹Π·Π²Π°Π½Ρ‹ ΠΊΠ°ΠΊ различиями Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ GCC ΠΈ Clang ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… конструкций (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с символом $, Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΌΠ΅Ρ‚ΠΎΠΊ Π² asm-Π±Π»ΠΎΠΊΠ°Ρ…, Ρ‚ΠΈΠΏΠΎΠ² long double ΠΈ float128), Ρ‚Π°ΠΊ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Π½Ρ‹ runtime с libgcc Π½Π° compiler-rt.

Для обСспСчСния сборки Glibc ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ LLVM ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ΠΎ ΠΎΠΊΠΎΠ»ΠΎ 150 ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ для окруТСния Gentoo ΠΈ 160 для окруТСния Π½Π° Π±Π°Π·Π΅ ChromiumOS. Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ сборка Π² ChromiumOS ΡƒΠΆΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ тСстовый Π½Π°Π±ΠΎΡ€, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом станСт ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² основной состав Glibc ΠΈ LLVM, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ тСстирования ΠΈ исправлСниС Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π½Π΅Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. НСкоторыС ΠΈΠ· ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ ΡƒΠΆΠ΅ приняты Π² Π²Π΅Ρ‚ΠΊΡƒ Glibc 2.37.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru