Desenvolvedores do FreeBSD plano para remoção do GCC 4.2.1 dos códigos fonte do sistema base FreeBSD. Os componentes do GCC serão removidos antes do branch FreeBSD 13, que incluirá apenas o compilador Clang. O GCC poderá ser instalado a partir dos ports, onde é oferecido , e , assim como aqueles já classificados como obsoletos , , e .
Arquiteturas que dependem do GCC e não podem migrar para o Clang serão aconselhadas a mudar para ferramentas externas, instaladas a partir dos ports. Como parte dos preparativos para a remoção do GCC do sistema base, planeja-se melhorar a integração do sistema de build do sistema base com ferramentas externas. Por exemplo, para a arquitetura amd64, já foi adicionada ao sistema de integração contínua a capacidade de compilar usando gcc 6.4 a partir dos ports, que pode ser utilizada como base para portar outras arquiteturas.
Lembramos que desde o FreeBSD 10, o sistema base para as arquiteturas i386, AMD64 e ARM foi alterado para fornecer por padrão o compilador Clang e a biblioteca libc++ desenvolvida pelo projeto LLVM. O GCC e libstdc++ para as arquiteturas mencionadas deixaram de ser compilados como parte do sistema base, mas continuaram a ser fornecidos por padrão para arquiteturas powerpc, mips, mips64 e sparc64, além de poderem ser instalados ao recompilar com os flags WITH_GCC e WITH_GNUCXX. A entrega da versão obsoleta GCC 4.2.1 foi motivada por restrições de licença.
O FreeBSD não pôde migrar para uma versão mais recente do GCC, pois a partir do lançamento 4.2.2, o GCC foi para a licença GPLv3 e a integração do GCC 4.2.2 foi dificultada pela incompatibilidade dos componentes de runtime do GCC com a licença BSD. Posteriormente, na versão GCC 4.4, esta incompatibilidade , mas a adição de componentes sob licença GPLv3 ao sistema base FreeBSD foi devido a conflitos com e a relutância em impor restrições adicionais aos usuários, como a proibição .
O processo de remoção do GCC do sistema base será dividido em várias etapas e durará 9 meses, o que dará aos desenvolvedores das arquiteturas ligadas ao GCC (powerpc, mips, mips64 e sparc64) tempo para migrar para o Clang ou optar por ferramentas externas. A primeira etapa começará em 31 de agosto e resultará na exclusão do gcc 4.2.1 da build no sistema de integração contínua, além da interrupção do uso da flag "-Werror" para as plataformas ligadas ao GCC e da desativação da build do GCC por padrão ao executar "make universe".
Em 31 de dezembro de 2019, a build do GCC será desativada por padrão, mas poderá ser reativada com a especificação de certas flags. Em 31 de março de 2020, o GCC será removido do repositório SVN, e em 31 de maio, todas as plataformas que não estão cobertas pelo sistema de integração contínua, que não suportam LLVM ou que não migraram para o uso de ferramentas de build externas, serão removidas do SVN. Em 31 de julho de 2020, a remoção final de todas as plataformas restantes que requerem ferramentas de build externas, mas que não têm suporte nos scripts de formação de lançamentos, será realizada.
Fonte: opennet.ru
