Sviluppatori di FreeBSD piano per la rimozione di GCC 4.2.1 dai sorgenti del sistema di base di FreeBSD. I componenti GCC saranno rimossi prima del branching della versione FreeBSD 13, che includerà solo il compilatore Clang. GCC potrà essere installato dai port, se desiderato. , e , così come già tradotti alla categoria di obsoleti , , e .
Sono state offerte architetture legate a GCC e che non possono passare a Clang la possibilità di utilizzare strumenti esterni, installati dai port. In preparazione per la rimozione di GCC dal sistema di base, è prevista un'attività per migliorare l'integrazione del sistema di build di base con strumenti esterni. Ad esempio, per l'architettura amd64, è già stata aggiunta nel sistema di integrazione continua la possibilità di build utilizzando gcc 6.4 dai port, che può essere utilizzata come base per il trasferimento di altre architetture.
Ricordiamo che a partire da FreeBSD 10, il sistema di base per le architetture i386, AMD64 e ARM è stato spostato per utilizzare, di default, il compilatore Clang e la libreria libc++ sviluppata dal progetto LLVM. GCC e libstdc++ per le architetture indicate hanno smesso di essere compilati come parte del sistema di base, ma continuano a essere forniti per impostazione predefinita per le architetture powerpc, mips, mips64 e sparc64 e possono essere installati durante la ricompilazione specificando i flag WITH_GCC e WITH_GNUCXX. La fornitura della versione obsoleta di GCC 4.2.1 è stata determinata da restrizioni di licenza.
FreeBSD non ha potuto passare a una versione più recente di GCC, poiché a partire dalla versione 4.2.2 GCC è stato alla licenza GPLv3 e l'integrazione di GCC 4.2.2 è stata ostacolata dall'incompatibilità dei componenti runtime di GCC con la licenza BSD. In seguito, con la versione GCC 4.4, questa incompatibilità , ma l'aggiunta di componenti nel sistema di base di FreeBSD sotto licenza GPLv3 è stata a causa dei conflitti con e della riluttanza a imporre restrizioni aggiuntive agli utenti, come il divieto .
Il processo di rimozione di GCC dal sistema di base sarà suddiviso in più fasi e durerà 9 mesi, dando così agli sviluppatori legati alle architetture GCC (powerpc, mips, mips64 e sparc64) il tempo necessario per migrare a Clang o passare all'uso di strumenti esterni. La prima fase inizierà il 31 agosto e porterà all'esclusione di gcc 4.2.1 dalla build nel sistema di integrazione continua, oltre a interrompere l'uso del flag "-Werror" per le piattaforme legate a GCC e disabilitare di default la build di GCC eseguendo "make universe".
Il 31 dicembre 2019 la build di GCC sarà disabilitata di default, ma potrà essere ripristinata specificando alcune opzioni. Il 31 marzo 2020 GCC sarà rimosso dal repository SVN, e il 31 maggio saranno rimosse da SVN tutte le piattaforme non coperte dal sistema di integrazione continua, che non supportano LLVM o non sono state migrate all'uso di strumenti di build esterni. Il 31 luglio 2020 sarà eseguita la rimozione finale da SVN di tutte le piattaforme rimanenti, che richiedono l'uso di strumenti di build esterni ma non sono supportate negli script di generazione delle release.
Fonte: opennet.ru
