GCC zostanie usunięty z podstawowego składu FreeBSD

Deweloperzy FreeBSD przedstawili plan usunięcia GCC 4.2.1 z podstawowych tekstów systemu FreeBSD. Komponenty GCC zostaną usunięte przed rozgałęzieniem gałęzi FreeBSD 13, która będzie zawierała wyłącznie kompilator Clang. GCC będzie można zainstalować z portów, w których są oferowane GCC 9, 7 i 8, a także zostały już uznane za przestarzałe wydań GCC 4.8, 5, 6 i 7.

Architekturom, które polegają na GCC i nie mogą przejść na Clang, zostanie zaproponowane przejście na zewnętrzne narzędzia, które można zainstalować z portów. W ramach przygotowań do usunięcia GCC z podstawowego systemu planowane są prace nad poprawą integracji systemu budowy podstawowego systemu z zewnętrznymi narzędziami. Na przykład dla architektury amd64 w systemie ciągłej integracji już dodano możliwość kompilacji z użyciem gcc 6.4 z portów, która może być wykorzystana jako baza do przeniesienia innych architektur.

Przypominamy, że od FreeBSD 10 podstawowy system dla architektur i386, AMD64 i ARM przeszedł na domyślne dostarczanie kompilatora Clang i rozwijanej przez projekt LLVM biblioteki libc++. GCC i libstdc++ dla wskazanych architektur przestały być budowane jako część podstawowego systemu, ale były nadal dostarczane domyślnie dla architektur powerpc, mips, mips64 i sparc64, a także mogły być zainstalowane przy ponownym kompilowaniu z określonymi flagami WITH_GCC i WITH_GNUCXX. Dostarczanie przestarzałej wersji GCC 4.2.1 było spowodowane ograniczeniami licencyjnymi.

FreeBSD nie mogło przejść na nowszą wersję GCC, ponieważ od wydania 4.2.2 GCC został przeniesiony na licencję GPLv3, a integracji GCC 4.2.2 przeszkadzała niezgodność komponentów runtime GCC z licencją BSD. Później, w wersji GCC 4.4 ta niezgodność została naprawiona, ale dodanie komponentów do podstawowego systemu FreeBSD na licencji GPLv3 zostało uznane za niemożliwe z powodu sprzeczności z celami projektu FreeBSD i niechęcią do nakładania dodatkowych ograniczeń na użytkowników, takich jak zakaz tivizacji.

Proces usunięcia GCC z systemu bazowego będzie podzielony na kilka etapów i potrwa 9 miesięcy, co da deweloperom związanym z architekturami GCC (powerpc, mips, mips64 i sparc64) czas na migrację do Clang lub przejście na korzystanie z zewnętrznych narzędzi. Pierwszy etap rozpocznie się 31 sierpnia i doprowadzi do wykluczenia gcc 4.2.1 z budowy w systemie ciągłej integracji, a także do zaprzestania stosowania flagi „-Werror” dla platform związanych z GCC oraz wyłączenia budowy GCC domyślnie podczas wykonywania „make universe”.

31 grudnia 2019 roku budowa GCC zostanie wyłączona domyślnie, ale będzie mogła być przywrócona przy użyciu określonych flag. 31 marca 2020 roku GCC zostanie usunięty z repozytorium SVN, a 31 maja z SVN zostaną usunięte wszystkie platformy, które nie są objęte systemem ciągłej integracji, nie wspierają LLVM ani nie zostały przetłumaczone na korzystanie z zewnętrznych narzędzi budowlanych. 31 lipca 2020 roku nastąpi ostateczne usunięcie z SVN wszystkich pozostałych platform, które wymagają korzystania z zewnętrznych narzędzi budowlanych, ale nie są wspierane w skryptach tworzenia wydań.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster