Visite também: Currículo ·  Efetividade BR-Mac

O que é LinuxDownload LinuxApostila LinuxEnviar notícia


FreeBSD substituindo o GCC? Novidades no suporte Clang/LLVM

Enviado por Luiz Gustavo S. Costa (luizgustavoΘmundounix·com·br):

“Um grupo de desenvolvedores está trabalhando na substituição, no sistema base do FreeBSD, do GCC pelo clang/LLVM. Tanto clang quanto llvm são mantidos sob licença BSD, diferente do GCC que usa licença GPL.

Roman Divacky fez uma atualização sobre o status do projeto; essa é a situação do projeto no final de Setembro:

* i386 – kernel dá boot, o ambiente world precisa de algumas alterações/hacks, mas funciona
* amd64 – compila o kernel mas não inicializa (boot), ainda precisa de algumas alterações hacks
* ppc – Não funciona por causa de um bug desconhecido no RTLD

Todas as outras plataformas não foram testadas. Isso é uma regressão em relação à situação do projeto no inicio da primavera, quando a plataforma AMD64 efetuava boot …

Muita coisa aconteceu durante a primavera e o verão – amd64 agora tem suporte apropriado mcmodel=suporte kernel, o compiler-rt foi introduzido no projeto (no caminho para substituir a libgcc), nós construimos dois ports experimentais para ver o comportamento do clang neles, o suporte C++ agora tem a habilidade de processar o devd.cc sem erros, Fizemos o kernel trabalhar com -O2, estamos promovendo o projeto para o FreeBSD suportar oficialmente a plataforma LLVM, etc… etc….

Os desenvolvedores podem fazer um pouco mais pelo trabalho com a ajuda de vocês. Você pode ajudar ?

Nós temos alguns problemas: estamos sem pessoal (recursos humanos) para testar na plataforma amd64 (porque parou de inicializar) e desenvolvedores para integrar os outros itens no FreeBSD (manutenção de ports, etc…). Se você tem interesse em nos ajudar, por favor, me contate ou participe de nosso canal no IRC (#freebsd-clang) no servidor irc.oftc.net. Nós estamos precisando de pessoas que possam testar o projeto em plataforma amd64 (por causa do bug no kernel amd64) e pessoas de outras plataformas como arm/mips/sparc para ver como o clang/llvm se comporta nelas e poder efetuar melhorias nelas.

Mais informações você pode encontrar nesse email ou na página wiki do projeto FreeBSD. * Esse post é uma tradução direta do post enviado para o blog: FreeBSD – the unknown Giant” [referência: luizgustavo.pro.br]


• Publicado por Augusto Campos em 2009-10-19

Comentários dos leitores

Os comentários são responsabilidade de seus autores, e não são analisados ou aprovados pelo BR-Linux. Leia os Termos de uso do BR-Linux.

    luiz (usuário não registrado) em 19/10/2009 às 9:39 am

    Isso se dá apenas pelo fato da licensa do GCC ser GPL ou teria outro fator mais relevante?

    Bremm (usuário não registrado) em 19/10/2009 às 9:57 am

    @ Luiz

    Livrar-se do Stallman. :)

    Antônio Pessoa (usuário não registrado) em 19/10/2009 às 10:08 am

    O problema é a licença que o GCC adotou: a GPLv3. A FreeBSD Foundation contratou uma equipe de advogados para fazer uma analise do impacto da nova licença no projeto FreeBSD e eles recomendaram a retirada de qualquer código GPLv3 de dentro do src. Nesse caso as novas versões do GCC teriam que ser instaladas a partir do ports, mas não pode existir uma depência do sistema base dentro do ports. Como o último GCC GPLv2 é o 4.2.1, ou o projeto fica com o desatualizado ou migra para um novo com licença compatível.

    O llvm/clang foi desenvolvido pela Apple e é utilizado para compilar grande parte, senão todo, o Mac OSX. O código dele foi liberado e agora está sendo portado para o FreeBSD. Ele é bem maduro e tem algumas características especiais para desenvolvimento de software para utilização de vários núcleos.

    Para maiores informações você pode consultar o histórico da FUG-BR, que foi de lá que tirei essas que lhe dei. Consulte esta thread que você vai ter uma idéia melhor.

    Danilo (usuário não registrado) em 19/10/2009 às 10:08 am

    Isso se dá ao fato de o GCC ter mudado sua licença para GPLv3, e esta é incompativel com a licença BSD. Agora graças a nossos amigos do projeto GNU o FreeBSD não pode ter as versões novas do GCC.

    Antônio Pessoa (usuário não registrado) em 19/10/2009 às 10:12 am

    Mas há males que vem para o bem, acredito que o FreeBSD vai se beneficiar muito desta mudança. Já li analises do GCC que reportam alguns problemas com ele, com relação a performance, entre outros. Principalmente comparado com outros compiladores como o que a Intel desenvolveu.

    Acho que no final das contas o llvm/clang vai ser a melhor escolha para o projeto. E o detalhe é que o Linux e outros sistemas podem se beneficiar disso também, até o próprio GCC.

    Interesante a notícia. Vamos ver o que o “bom Doutor” terá a dizer sobre isso.

    Rafael A. de Almeida (usuário não registrado) em 19/10/2009 às 10:38 am

    Isso é realmente necessário? Reenventar a roda?

    Se o licenciamento existente não satisfaz, e a possibilidade de um fork da última versão com o licenciamento anterior não for viável, creio que seria necessário aos insatisfeitos sim.

    Acho até que uma motivação bem similar levou à “reinvenção da roda” quando o gcc foi criado.

    Mas não parece ser o caso do FreeBSD: o clang e o llvm já estão aí, firmes, fortes, livres e cumprindo seu papel há algum tempo. O pessoal do FreeBSD só está portando, adotando e adaptando aos seus propósitos (suporte a mais arquiteturas, etc.). A roda em si já está inventada.

    Robson Cardoso dos Santos (usuário não registrado) em 19/10/2009 às 11:43 am

    Talvez isso explique algumas coisas também, atentem para o comentário do Juvenal.

    supporter (usuário não registrado) em 19/10/2009 às 11:46 am

    Parabéns ao projeto FreeBSD pela coragem. Depois que eles adotarem, tenho certeza que outros SOs livres também vão adotar llvm/clang, tais como outros BSDs e Haiku.

    Carlos (usuário não registrado) em 19/10/2009 às 12:01 pm

    Stallman está dividindo e não conquistando….

    rpm (usuário não registrado) em 19/10/2009 às 12:50 pm

    Uma coisa que eu não entendo é como a GPLv3 vai prejudicar o FreeBSD se ele é basicamente usado para gerar binários a partir de códigos-fonte e estes podem estar licenciados sob qualquer tipo de licença, inclusive software proprietário. O gcc é usado para compilar o Apache p.ex. e nem por isso ele precisa virar GPLv3.

    Se uma empresa pode usar o gcc para gerar executáveis de um software proprietário e não precisa abrir o código do seu programa só porque usou o gcc, por que o uso dele iria “contaminar” o código do FreeBSD e seus utilitários ?

    rpm (usuário não registrado) em 19/10/2009 às 12:55 pm

    Se o FreeBSD continuar a usar o gcc a única coisa que vejo de restrição é que uma empresa não vai mais poder criar um produto ou derivado do FreeBSD que inclua modificações proprietárias no gcc, mas isso para mim é uma restrição bem fraca porque quase sempre as modificações são feitas no kernel ou em outros componentes do sistema, não no compilador que será usado para compilar o código.

    supporter (usuário não registrado) em 19/10/2009 às 12:56 pm

    rpm, Leia novamente o que o Antônio disse:

    “Nesse caso as novas versões do GCC teriam que ser instaladas a partir do ports, mas não pode existir uma depência do sistema base dentro do ports.”

    O FreeBSD exige que todos programas necessários para compilar o sistema base sejam incluídos no próprio sistema base.

    Parece existir uma preocupação de que a GPLv3 “contamine” o sistema base por ele ser distribuído em conjunto (dentro de um mesmo tarball) com um software GPLv3.

    Essa preocupação não existia quando o software era GPLv2, pois a licença já era bem compreendida e não apresentava esse risco.

    Fabiano (usuário não registrado) em 19/10/2009 às 1:02 pm

    O llvm/clang foi desenvolvido pela Apple (…)

    Não, não foi. O LLVM foi desenvolvido na University of Illinois, o projeto iniciou no ano 2000, e apenas em 2005 a Apple contratou um dos principais desenvolvedores do LLVM. É importante notar que Apple não “desenvolve” ou é dona do LLVM, mas sim contribui muito com o projeto pois tem bastante interesse.

    Jack Ripoff (usuário não registrado) em 19/10/2009 às 1:54 pm

    Isso é realmente necessário? Reenventar a roda?

    E desta vez fazer direito, que tal?

    O GCC é um compilador lento, mal documentado e complexo. Ele é difícil de portar e o suporte a outras arquiteturas de hardware está sendo gradualmente abandonado. É difícil de separar o frontend do backend e por isso ele não é modular. E é difícil de trabalhar com o código dele porque o “projeto GNU” não sabe diferenciar C de Lisp.

    O pcc e o clang/LLVM vêm para resolver estes problemas.

    Douglas Augusto (usuário não registrado) em 19/10/2009 às 5:26 pm

    “Antônio Pessoa (usuário não registrado) em 19/10/2009 às 10:08 am

    O problema é a licença que o GCC adotou: a GPLv3. A FreeBSD Foundation contratou uma equipe de advogados para fazer uma analise do impacto da nova licença no projeto FreeBSD e eles recomendaram a retirada de qualquer código GPLv3 de dentro do src. Nesse caso as novas versões do GCC teriam que ser instaladas a partir do ports, mas não pode existir uma depência do sistema base dentro do ports.”

    Desprezar dezenas de milhares de Softwares Livres (só no Google Code meses atrás já eram mais de 56.000 softwares sob a GPLv3 – http://news.cnet.com/8301-13505_3-10294452-16.html) é uma atitude bastante radical e potencialmente danosa ao projeto em termos de adoção. Principalmente se for considerado que a maioria das distribuições GNU/Linux não faz restrições quanto ao tipo de licença livre.

    Welington (usuário não registrado) em 19/10/2009 às 6:04 pm

    O doutor RS prega tanto a liberdade mas acabou criando uma licença viral que limita a liberdade de quem quer ter o direito a não abrir mão do seu código. O BSD faz bem ao decidir limpar os seus repositórios.

    Tércio Martins (usuário não registrado) em 19/10/2009 às 6:16 pm

    @Welington:

    Há dois tipos de liberdade defendidos pela trupe do BSD e da FSF: os primeiros defendem a liberdade de uso do código-fonte por qualquer um e os últimos, a liberdade do código-fonte a fim de que ele não seja oculto por interesses maiores.

    Muitas empresas (as que geralmente utilizam programas com a licença do BSD) tendem a apoiar esta licença; no caso de empresas que pegam seu software proprietário e tornam o código dele livre, a preferência é pelo GPL, visto que impede outras empresas de venderem softwares de código fechado a partir do código original.

    As duas licenças são muito boas para o uso empresarial. Cabe a cada empresa definir a sua estratégia para com o software livre que deseja manter.

    Chrys (usuário não registrado) em 19/10/2009 às 8:42 pm

    Gosto mais da idéia do LLVM que do GCC, o nível de otimização do LLVM é assustador.

    Antônio Pessoa (usuário não registrado) em 20/10/2009 às 1:04 am

    A questão não é ideológica do ponto de vista da FreeBSD Fundation, mas sim de licença, ela não vai deixar de usar o GCC por não concordar com a GPLv3. E nem por quê a licença BSD ou o próprio FreeBSD impeça isso, o problemas é que a GPLv3 impõe uma série de restrições sobre como o código regido por ela deve ser distribuído e neste caso ele estaria dentro de um sistema praticamente todo regido sob a licença BSD (algumas partes sob a GPLv2).

    Os advogados recomendaram a retirada de qualquer código sob a GPLv3 do sistema base, não foi uma decisão de alguns desenvolvedores. A FreeBSD Fundation está tentando apenas respeitar a licença.

    @Fabiano, obrigado pela correção.

    rpm (usuário não registrado) em 20/10/2009 às 9:00 am

    Empresas do estilo da Apple e Microsoft, que adoram “chupar” código BSD para inserir nos seus sistemas proprietários.

    Já a GPL é melhora para empresas que querem cooperar entre si em forma de consórcios para o desenvolvimento de plataformas de software comuns. A GPL garante que nenhuma delas vai pegar a parte boa do código compartilhado feito por todo mundo, incorporar modificações proprietárias suas e fechar o produto.

    gustgr (usuário não registrado) em 20/10/2009 às 9:09 am

    @rpm

    A questao nao eh qual licenca eh mais justa ou nao, isso depende do ponto de vista de cada um. A FreeBSD Foundation quer usar licenca BSD e do ponto de vista deles GPL nao eh compativel com o objetivo que eles almejam. Soh isso.

    Sobre MS e Apple usarem codigo BSD, elas podem fazer contanto que mantenham as notas de Copyright. Se nao mantiverem estao infringindo a licenca, e se fazem isso com a licenca BSD entao nada impede eles de fazerem o mesmo com a GPL.

    @Douglas Augusto

    Os objetivos da FreeBSD Foundation sao completamente diferentes daqueles adotados por empresas que suportam o (GNU/)Linux.

Este post é antigo (2009-10-19) e foi arquivado. O envio de novos comentários a este post já expirou.