Π’ Fedora ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сборки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² Clang вмСсто GCC

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Fedora 33 Π½Π°ΠΌΠ΅Ρ‡Π΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ» примСнСния компиляторов Π² дистрибутивС, Π² соотвСтствии с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ компилятор для сборки ΠΏΠ°ΠΊΠ΅Ρ‚Π° смоТСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ основного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (upstream). Π’ настоящСС врСмя Π² Fedora Тёстко прСдписано ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GCC для сборки всСх ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ случаСв, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ собран Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Clang/LLVM.

ΠœΠΎΡ‚ΠΈΠ²ΠΎΠΌ прСдоставлСния возмоТности сборки ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Clang являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Firefox ΠΈ Chromium, ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Clang Π² качСствС основного компилятора ΠΈ сборки Π½Π° Π΅Π³ΠΎ основС ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ качСствСнно протСстированными. ИспользованиС Clang для ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ вылавливания ошибок, Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ сборкС Π² GCC, Π° Ρ‚Π°ΠΊΠΆΠ΅ согласования исправлСний этих ошибок с основным ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. Π‘Π±ΠΎΡ€ΠΊΠ° с использованиСм GCC ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ влияСт Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠΈ пСрСносимости ΠΊΠΎΠ΄Π°, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ с использованиСм Clang, Π½ΠΎ создаёт Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Mozilla Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ€Π³ΠΎΠ²ΡƒΡŽ ΠΌΠ°Ρ€ΠΊΡƒ Firefox ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ сторонних ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ, поэтому приходится Π²Π½Π°Ρ‡Π°Π»Π΅ Π΄ΠΎΠ±ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ Π² основной состав ΠΈ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС появлСния исправлСний Π² upstream).

ΠžΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Clang для ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹ΠΉ компилятор ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² основном ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Для ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π±Ρ‹ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° сопровоТдСниС, Ссли ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ прСдставитСли основного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Если сборкой ΠΏΠ°ΠΊΠ΅Ρ‚Π° занимаСтся ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒ ΠΈΠ· сообщСства, Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° компилятора прСдлагаСтся ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ мэйнтСйнСру. Для ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², основныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΎΡ‚Π΄Π°ΡŽΡ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΌΡƒ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌΡƒ компилятору рСкомСндуСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ статус-ΠΊΠ²ΠΎ (ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π² GCC ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅). Автором прСдлоТСния являСтся Π”ΠΆΠ΅Ρ„ Π›ΠΎ (Jeff Law) ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Red Hat, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² число мэйнтСйнСров GCC ΠΈ Binutils.

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