Existe uma distribuição Linux compilada com clang / llvm ? Parece que no final de 2010 o kernel estava funcionando. Caso contrário, seria mais provável que fosse um problema técnico ou de licenciamento?
Existe uma distribuição Linux compilada com clang / llvm ? Parece que no final de 2010 o kernel estava funcionando. Caso contrário, seria mais provável que fosse um problema técnico ou de licenciamento?
Respostas:
Como resposta tardia a esta pergunta, o que o @jmtd disse é exatamente o que acontece periodicamente no arquivo Debian.
Os pacotes são recompilados com novas cadeias de ferramentas (compiladores, vinculadores etc.) e, quando a recompilação falha, os bugs dos pacotes que não foram compilados são arquivados com a indicação do FTBFS ("falha ao compilar a partir do código-fonte").
Esses erros geralmente são uma indicação de algo ruim acontecendo e geralmente são classificados com alta gravidade e recebem o status de erros de "liberação crítica", o que significa que uma nova versão não pode ser feita com esses erros não resolvidos.
Em particular, Lucas Nussbaum vem recompilando todo o arquivo do Projeto Debian em uma grade como meio de alguma Avaliação de Qualidade.
Recentemente, porém, Sylvestre Ledru e alguns outros desenvolvedores Debian têm orientou os alunos em Summer of Code of 2012 do Google para permitir a substituição de ambos GCC por Clang e libstdc++
(biblioteca de suporte do GCC para C ++) pelo libc++
(homólogo do Clang / LLVM).
Existe um site onde os resultados da compilação de toda a coleção de pacotes Debian foram publicados e outros relatórios foram documentados pelo LWN e o programa para desacoplar o processo de compilação Debian do GCC foi concluído com sucesso .
Portanto, em breve poderemos ver uma amostra do Debian compilada com o clang / llvm, dependendo de quanto suporte esses resultados bem-sucedidos possam obter.
Existe, a partir desta atualização (16/08/2016), uma nova versão de uma distribuição tradicional do Linux compilada com clang e llvm, o OpenMandriva Lx 3.0 , agora em sua versão final. De acordo com suas anotações, ele é compilado, tanto quanto possível, não apenas com clang e llvm, mas também com altos níveis de otimização "regulares" e também com LTO (Otimização de Tempo de Link) .
Embora o assunto principal da pergunta e desta resposta seja llvm / clang, para ser justo, deve-se notar que o GCC também apresenta LTO (mais informações sobre LTO ).
Em teoria, o LTO, como visto em clang / llvm e GCC mais recentes, tem o potencial de tornar não apenas os binários resultantes mais rápidos, mas também ter requisitos de memória menores para a seção de texto dos programas (e o kernel do Linux é um potencial beneficiador) do LTO ).
Não li o quanto o OpenMandriva Lx 3.0 usa o LTO em todos os programas, mas estou animado por usar clang / llvm + LTO e adoraria ver pessoas fazendo vários benchmarks independentes comparando e contrastando o GCC "regular", distribuições não otimizadas para LTO para o OpenMandriva Lx 3.0.
Ainda não. De acordo com este relatório de erro atualmente aberto , parece que até o próprio kernel falha ao compilar.
Enquanto os binários do usuário final não são construídos com o clang / llvm, a maior parte do arquivo Debian foi construído (e reconstruído) com o clang / llvm (e binutils-gold e outros bits e partes) por pessoas que desejam expor bugs de portabilidade. o conjunto de software (e os próprios compiladores).
Recentemente, o lançamento do OpenSuse - Tumbleweed deve definir o LTO no gcc9 para suas compilações. http://hubicka.blogspot.com/2019/05/gcc-9-link-time-and-inter-procedural.html