GCC zal worden verwijderd uit de hoofdreeks van FreeBSD

FreeBSD-ontwikkelaars ingediend zijn van plan GCC 4.2.1 te verwijderen uit de FreeBSD-basissysteembronnen. GCC-componenten zullen worden verwijderd voordat de FreeBSD 13-tak wordt gevorkt, die alleen de Clang-compiler zal bevatten. GCC kan desgewenst worden geleverd vanuit de havens waar het wordt aangeboden GCC 9, 7 и 8, en ook al overgebracht naar de categorie verouderd problemen GCC 4.8, 5, 6 и 7.

Architecturen die afhankelijk zijn van GCC en niet naar Clang kunnen migreren, zullen worden gevraagd om te migreren naar externe tools die vanuit ports zijn geïnstalleerd. Ter voorbereiding op de verwijdering van GCC uit het basissysteem zijn er werkzaamheden gepland om de integratie van het bouwsysteem van het basissysteem met externe tools te verbeteren. Voor de amd64-architectuur heeft het continue integratiesysteem bijvoorbeeld al de mogelijkheid toegevoegd om te bouwen met behulp van gcc 6.4 vanuit ports, wat kan worden gebruikt als basis voor het vertalen van andere architecturen.

Laten we ons herinneren dat vanaf FreeBSD 10 het basissysteem voor de i386-, AMD64- en ARM-architecturen werd overgebracht naar de standaardlevering van de Clang-compiler en de libc++-bibliotheek ontwikkeld door het LLVM-project. GCC en libstdc++ voor deze architecturen werden niet langer gebouwd als onderdeel van het basissysteem, maar werden nog steeds standaard geleverd voor de powerpc-, mips-, mips64- en sparc64-architecturen, en konden ook worden geïnstalleerd bij het opnieuw opbouwen met de gespecificeerde WITH_GCC- en WITH_GNUCXX-vlaggen. De verouderde versie van GCC 4.2.1 is verzonden vanwege licentiebeperkingen.

FreeBSD kon niet migreren naar een nieuwere versie van GCC, aangezien GCC sinds release 4.2.2 beschikbaar was vertaald De GPLv3-licentie en GCC 4.2.2-integratie werden belemmerd door de incompatibiliteit van GCC-runtimecomponenten met de BSD-licentie. Later kwam in versie GCC 4.4 deze incompatibiliteit voor werd geëlimineerd, maar de toevoeging van GPLv3-gelicentieerde componenten aan het FreeBSD-basissysteem was dat wel onmogelijk gevonden vanwege tegenstrijdigheden met doelstellingen van het FreeBSD-project en de onwil om gebruikers aanvullende beperkingen op te leggen, zoals een verbod tivoisatie.

Het proces om GCC in het basissysteem te verwijderen zal in verschillende fasen worden verdeeld en zal 9 maanden duren, wat ontwikkelaars van GCC-gebonden architecturen (powerpc, mips, mips64 en sparc64) de tijd zal geven om naar Clang te migreren of over te stappen op het gebruik van externe hulpmiddelen. De eerste fase start op 31 augustus en zal leiden tot de uitsluiting van gcc 4.2.1 van de continue integratiesysteembuild, evenals de beëindiging van de “-Werror”-vlag voor GCC-gebonden platforms en het uitschakelen van GCC-builds door standaard bij het uitvoeren van “make universe”.

Op 31 december 2019 wordt de GCC-build standaard uitgeschakeld, maar kan nog steeds worden teruggedraaid door bepaalde vlaggen op te geven. Op 31 maart 2020 wordt GCC verwijderd uit de SVN-repository, en op 31 mei worden alle platforms die niet onder continue integratie vallen, LLVM niet ondersteunen of niet zijn geconverteerd om externe buildtools te gebruiken, verwijderd uit SVN . Op 31 juli 2020 zal de definitieve verwijdering uit SVN plaatsvinden van alle resterende platforms die het gebruik van externe tools vereisen, maar niet worden ondersteund in scripts voor het genereren van releases.

Bron: opennet.ru

Voeg een reactie