GCC bude odstraněno z hlavní sestavy FreeBSD

Vývojáři FreeBSD prezentovány plán na odstranění GCC 4.2.1 ze zdrojů základního systému FreeBSD. Komponenty GCC budou odstraněny před rozvětvením větve FreeBSD 13, která bude obsahovat pouze kompilátor Clang. GCC, pokud je to požadováno, může být doručeno z portů, ve kterých je nabízeno GCC 9, 7 и 8, stejně jako již převedeny do kategorie zastaralé problémy GCC 4.8, 5, 6 и 7.

Architektury, které se spoléhají na GCC a nemohou migrovat na Clang, budou požádány o migraci na externí nástroje nainstalované z portů. V rámci přípravy na odstranění GCC ze základního systému se plánují práce na zlepšení integrace systému sestavení základního systému s externími nástroji. Například pro architekturu amd64 již systém průběžné integrace přidal možnost stavět pomocí gcc 6.4 z portů, což lze použít jako základ pro překlad jiných architektur.

Připomeňme, že počínaje FreeBSD 10 byl základní systém pro architektury i386, AMD64 a ARM převeden do výchozí dodávky kompilátoru Clang a knihovny libc++ vyvinuté projektem LLVM. GCC a libstdc++ pro tyto architektury již nebyly stavěny jako součást základního systému, ale nadále byly standardně dodávány pro architektury powerpc, mips, mips64 a sparc64 a mohly být také instalovány při přestavbě se specifikovanými příznaky WITH_GCC a WITH_GNUCXX. Zastaralá verze GCC 4.2.1 byla dodána z důvodu licenčních omezení.

FreeBSD nemohlo migrovat na novější verzi GCC, protože od vydání 4.2.2 GCC bylo přeloženo Licence GPLv3 a integrace GCC 4.2.2 byly ztíženy nekompatibilitou runtime komponent GCC s licencí BSD. Později, ve verzi GCC 4.4 tato nekompatibilita byl eliminován, ale přidání komponent s licencí GPLv3 do základního systému FreeBSD bylo shledán nemožným kvůli rozporům s cíle projektu FreeBSD a neochota ukládat uživatelům další omezení, jako je zákaz tivoizace.

Proces zbavování se GCC v základním systému bude rozdělen do několika fází a bude trvat 9 měsíců, což dá vývojářům architektur vázaných na GCC (powerpc, mips, mips64 a sparc64) čas na migraci na Clang nebo přechod na používání externí nástroje. První fáze bude zahájena 31. srpna a povede k vyloučení gcc 4.2.1 z nepřetržité integrace systému, stejně jako ukončení příznaku „-Werror“ pro platformy vázané na GCC a deaktivaci sestavení GCC výchozí při spuštění „make universe“.

Dne 31. prosince 2019 bude sestavení GCC ve výchozím nastavení zakázáno, ale stále jej lze vrátit zpět zadáním určitých příznaků. 31. března 2020 bude GCC odstraněn z úložiště SVN a 31. května budou z SVN odstraněny všechny platformy, na které se nevztahuje průběžná integrace, nepodporují LLVM nebo nebyly převedeny na externí nástroje pro sestavení. . 31. července 2020 bude ze SVN provedeno konečné odstranění všech zbývajících platforem, které vyžadují použití externích nástrojů, ale nejsou podporovány ve skriptech generování vydání.

Zdroj: opennet.ru

Přidat komentář