GCC Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Ρ‘Π½ ΠΈΠ· основного состава FreeBSD

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ FreeBSD прСдставили ΠΏΠ»Π°Π½ удалСния GCC 4.2.1 ΠΈΠ· исходных тСкстов Π±Π°Π·ΠΎΠ²ΠΎΠΉ систСмы FreeBSD. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ GCC Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ Π΄ΠΎ отвСтвлСния Π²Π΅Ρ‚ΠΊΠΈ FreeBSD 13, Π² состав ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ компилятор Clang. GCC ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ· ΠΏΠΎΡ€Ρ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прСдлагаСтся GCC 9, 7 ΠΈ 8, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ Π² разряд ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… выпуски GCC 4.8, 5, 6 ΠΈ 7.

АрхитСктурам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ завязаны Π½Π° GCC ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Clang, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° внСшний инструмСнтарий, устанавливаСмый ΠΈΠ· ΠΏΠΎΡ€Ρ‚ΠΎΠ². Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ GCC ΠΈΠ· Π±Π°Π·ΠΎΠ²ΠΎΠΉ систСмы планируСтся провСсти Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ систСмы сборки Π±Π°Π·ΠΎΠ²ΠΎΠΉ систСмы с внСшними инструмСнтариями. НапримСр, для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ amd64 Π² систСму Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сборки с использованиСм gcc 6.4 ΠΈΠ· ΠΏΠΎΡ€Ρ‚ΠΎΠ², которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована Π² качСствС основы для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€.

Напомним, Ρ‡Ρ‚ΠΎ начиная с FreeBSD 10 базовая систСма для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ i386, AMD64 ΠΈ ARM Π±Ρ‹Π»Π° ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° Π½Π° поставку ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ компилятора Clang ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ LLVM Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libc++. GCC ΠΈ libstdc++ для ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ пСрСстали ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²ΠΎΠΉ систСмы, Π½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ»ΠΈ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ powerpc, mips, mips64 ΠΈ sparc64, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ установлСны ΠΏΡ€ΠΈ пСрСсборкС с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ„Π»Π°Π³ΠΎΠ² WITH_GCC ΠΈ WITH_GNUCXX. ΠŸΠΎΡΡ‚Π°Π²ΠΊΠ° ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ вСрсии GCC 4.2.1 Π±Ρ‹Π»Π° обусловлСна Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ ограничСниями.

FreeBSD Π½Π΅ ΠΌΠΎΠ³ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ GCC, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ начиная с выпуска 4.2.2 GCC Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ Π½Π° Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ GPLv3 ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ GCC 4.2.2 мСшала Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ runtime-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² GCC с Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD. ПозднСС, Π² вСрсии GCC 4.4 данная Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π±Ρ‹Π»Π° устранСна, Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π±Π°Π·ΠΎΠ²ΡƒΡŽ систСму FreeBSD ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPLv3 Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠ·Π½Π°Π½ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΈΠ·-Π·Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠΉ с цСлями ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° FreeBSD ΠΈ Π½Π΅ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΠΌ Π½Π°Π»Π°Π³Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ограничСния Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π·Π°ΠΏΡ€Π΅Ρ‚ Ρ‚ΠΈΠ²ΠΎΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ избавлСния ΠΎΡ‚ GCC Π² Π±Π°Π·ΠΎΠ²ΠΎΠΉ систСмС Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½ Π½Π° нСсколько этапов ΠΈ продлится 9 мСсяцСв, Ρ‡Ρ‚ΠΎ даст Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ привязанных ΠΊ GCC Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ (powerpc, mips, mips64 ΠΈ sparc64) врСмя Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ Π½Π° Clang ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° использованиС внСшнСго инструмСнтария. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ этап стартуСт 31 августа ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ gcc 4.2.1 ΠΈΠ· сборки Π² систСмС Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΡŽ примСнСния Ρ„Π»Π°Π³Π° «-Werror» для привязанных ΠΊ GCC ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ сборки GCC ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ «make universe».

31 дСкабря 2019 Π³ΠΎΠ΄Π° сборка GCC Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΏΠΎΠΊΠ° смоТСт Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π° ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ„Π»Π°Π³ΠΎΠ². 31 ΠΌΠ°Ρ€Ρ‚Π° 2020 Π³ΠΎΠ΄Π° GCC Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Ρ‘Π½ ΠΈΠ· SVN-рСпозитория, Π° 31 мая ΠΈΠ· SVN Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ всС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π½Π΅ ΠΎΡ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ систСмой Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ LLVM ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ Π½Π° использованиС внСшнСго сборочного инструмСнтария. 31 июля 2020 Π³ΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· SVN всСх ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… использованиС внСшнСго инструмСнтария, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π² скриптах формирования Ρ€Π΅Π»ΠΈΠ·ΠΎΠ².

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