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 пречеше на несъвместимостта на компонентите на изпълнението на GCC с лиценза BSD. По-късно, в версия GCC 4.4, тази несъвместимост беше отстранена, но добавянето на компоненти с лиценз GPLv3 в основната система FreeBSD беше признато за невъзможно поради противоречия с целите на проекта 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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster