GCC será removido da programação principal do FreeBSD

Desenvolvedores FreeBSD submetido planeja remover o GCC 4.2.1 das fontes do sistema base do FreeBSD. Os componentes do GCC serão removidos antes que o branch do FreeBSD 13 seja bifurcado, que incluirá apenas o compilador Clang. O GCC, se desejado, pode ser entregue nos portos onde é oferecido GCC 9, 7 и 8, bem como aqueles já transferidos para a categoria de obsoletos problemas GCC 4.8, 5, 6 и 7.

As arquiteturas que dependem do GCC e não podem migrar para o Clang serão solicitadas a migrar para ferramentas externas instaladas a partir dos ports. Na preparação para a remoção do GCC do sistema base, está planejado um trabalho para melhorar a integração do sistema de construção do sistema base com ferramentas externas. Por exemplo, para a arquitetura amd64, o sistema de integração contínua já adicionou a capacidade de construir usando gcc 6.4 a partir de ports, que pode ser usado como base para tradução de outras arquiteturas.

Lembremos que a partir do FreeBSD 10, o sistema base das arquiteturas i386, AMD64 e ARM foi transferido para a entrega padrão do compilador Clang e da biblioteca libc++ desenvolvida pelo projeto LLVM. GCC e libstdc++ para essas arquiteturas não foram mais construídos como parte do sistema base, mas continuaram a ser fornecidos por padrão para as arquiteturas powerpc, mips, mips64 e sparc64, e também podiam ser instalados durante a reconstrução com os sinalizadores WITH_GCC e WITH_GNUCXX especificados. A versão desatualizada do GCC 4.2.1 foi enviada devido a restrições de licenciamento.

O FreeBSD não pôde migrar para uma versão mais recente do GCC, pois desde a versão 4.2.2 o GCC foi traduzido A licença GPLv3 e a integração do GCC 4.2.2 foram prejudicadas pela incompatibilidade dos componentes de tempo de execução do GCC com a licença BSD. Posteriormente, na versão GCC 4.4 esta incompatibilidade foi eliminado, mas a adição de componentes licenciados pela GPLv3 ao sistema base do FreeBSD foi achado impossível devido a contradições com objetivos do projeto FreeBSD e relutância em impor restrições adicionais aos usuários, como banir tivoização.

O processo de eliminação do GCC no sistema básico será dividido em várias etapas e durará 9 meses, o que dará aos desenvolvedores de arquiteturas vinculadas ao GCC (powerpc, mips, mips64 e sparc64) tempo para migrar para o Clang ou passar a usar ferramentas externas. A primeira etapa começará em 31 de agosto e levará à exclusão do gcc 4.2.1 da construção do sistema de integração contínua, bem como ao encerramento do sinalizador “-Werror” para plataformas vinculadas ao GCC e à desativação das compilações do GCC por padrão ao executar “make universo”.

Em 31 de dezembro de 2019, a compilação do GCC será desabilitada por padrão, mas ainda poderá ser revertida especificando determinados sinalizadores. 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 são cobertas por integração contínua, não suportam LLVM ou não foram convertidas para usar ferramentas de construção externas serão removidas do SVN . Em 31 de julho de 2020, será realizada a remoção final do SVN de todas as plataformas restantes que requerem o uso de ferramentas externas, mas não são suportadas em scripts de geração de release.

Fonte: opennet.ru

Adicionar um comentário