FERRAMENTAS LINUX: Mais código do kernel Linux limpo - outro passo rumo à construção com Clang ou ICC

sexta-feira, 2 de novembro de 2018

Mais código do kernel Linux limpo - outro passo rumo à construção com Clang ou ICC




Confira !!


Com o kernel Linux 4.20 ~ 5.0, o kernel é agora livre de VLA como um passo para ser capaz de compilar o código mainline com o compilador LLVM Clang ou outros compiladores não-GCC. Outro passo nessa direção foi mesclado neste ciclo e isso está limpando o código de atributos do compilador.

Para determinar os recursos do C para ativar ou não ao compilar o código, o código do kernel do Linux verificava a versão do GCC do compilador do host para determinar a funcionalidade que pode ser ativada ou não. Com esta atualização de atributos do compilador, o kernel agora está usando o atributo __has_attribute genéricofuncionalidade para suas verificações de recursos de macro. Isso agora torna o compilador / versão agnóstico em vez de estar vinculado à verificação de versão do GCC para, em vez disso, procurar explicitamente se um determinado recurso é suportado por esse compilador.

Isso limpa uma quantidade justa, assim como há outro trabalho para simplificar esses arquivos de cabeçalho de macro de verificação de recursos.

A intenção dessa limpeza é ajudar os esforços para permitir a construção do kernel com o LLVM Clang. Além disso, também ajuda na criação do kernel do Linux com o compilador Intel ICC. Temos visto muito interesse em Clang no kernel, mas não muito no ICC, mas aparentemente há algum interesse. Além de melhorar a portabilidade do compilador, "Uma boa quantidade de documentação e comentários também foram adicionados, esclarecidos ou removidos; e os cabeçalhos agora são mais legíveis, o que deve ajudar os desenvolvedores do kernel em geral. "

Detalhes neste mistur no Git  .

Com todo o trabalho recente, será interessante ver o quão perto o kernel Linux é perto de ser capaz de construir com o Clang. Na frente AArch64 eles já estavam lá ou muito próximos, mas infelizmente em x86_64 esse esforço parece ter parado um pouco junto com o agora extinto projeto LLVMLinux .


Fonte


Até a próxima !

Nenhum comentário:

Postar um comentário