Por que o FreeBSD usa o GCC licenciado pela GPL?

11

Por que o FreeBSD usa o GCC como seu compilador padrão?

Estou com a impressão de que um dos pilares da filosofia do FreeBSD é não usar nenhum software GNU e, em particular, o código GPL.

No entanto, o GCC, que é GNU e GPL, vem com o FreeBSD.

Por quê?

JasonH
fonte

Respostas:

13

O FreeBSD 10 usará o compilador Clang licenciado pelo BSD em vez do GCC para sistemas Intel x86 de 32 e 64 bits. A única coisa que impede uma troca por atacado em todas as plataformas de CPU que o FreeBSD lança é o tempo e o interesse do desenvolvedor.

Quanto ao FreeBSD 9 - que estava prestes a ser lançado quando essa pergunta foi colocada pela primeira vez - houve uma discussão sobre tornar o Clang o compilador padrão, mas houve problemas suficientes com o que decidiram enviar o Clang ao lado do GCC e deixar o GCC como padrão. para esta versão.

Quanto ao motivo pelo qual o FreeBSD não tentou mudar para um compilador não-GPL anos antes, ou talvez nem mesmo criou o seu, o motivo é simples: é difícil.

Qualquer estudante de graduação em CS pode escrever um compilador - pode até ser um requisito do curso - mas escrever um bom compilador é difícil. Escrever um bom compilador é ainda mais difícil quando é necessário para uma linguagem como C ou C ++. A tarefa se torna ainda mais difícil quando você toma a decisão razoável de que o novo compilador precisa pelo menos abordar o desempenho e a capacidade do GCC, que possui algumas décadas de desenvolvimento por trás.

Por isso, o GCC 4.2 ainda é o compilador padrão no FreeBSD 9.

O GCC 3.4, 4.4, 4.6, 4.7 e 4.8 estão na árvore do FreeBSD 9 Ports, a propósito, e é provável que alguma versão do GCC permaneça no Ports por muitos anos. Existem muitos pacotes de software por aí - muitos dos quais estão no FreeBSD Ports - que são construídos apenas com o GCC.

Warren Young
fonte
1
O compilador deve não apenas estar próximo ao desempenho, mas também as extensões de idioma devem ser suportadas. Desenvolvedores frequentemente usam os por algum motivo (ou nenhum ;-))
Johannes
8

Provavelmente é por necessidade. Até recentemente, os compiladores C licenciados pelo BSD eram provavelmente poucos ou não chegavam perto da paridade de recursos gcc.

Dos Objetivos do Projeto FreeBSD :

Esse código em nossa árvore de origem que se enquadra na GNU General Public License (GPL) ou Library General Public License (LGPL) vem com um pouco mais de seqüências anexadas, embora pelo menos no lado do acesso imposto e não no oposto usual. Devido às complexidades adicionais que podem evoluir no uso comercial do software GPL, preferimos, no entanto, o software submetido sob os direitos autorais BSD, mais relaxados, quando é uma opção razoável.

Brian Cain
fonte