Compilar o kernel Linux com LLVM Clang fica mais simples

Compilar o kernel Linux com LLVM Clang fica mais simples
Compilar o kernel Linux com LLVM Clang fica mais simples

Nos últimos anos, tornou-se possível compilar o kernel Linux principal com LLVM/Clang em comparação com a dependência antiga do uso do compilador GCC. Embora tenha sido possível por mais de 3 anos usar o kernel Linux principal e o Clang principal para criar um kernel x86_64 e AArch64 funcional, o processo e o suporte continuam a amadurecer. Portanto, compilar o kernel Linux com LLVM Clang fica mais simples.

Nathan Chancellor, que mantém o esforço “ClangBuiltLinux” graças ao financiamento da The Linux Foundation e do Google, escreveu um resumo de 2022 das realizações feitas no ano passado.

Compilando o kernel Linux com LLVM Clang

O trabalho de Nathan Chancellor no esforço “ClangBuiltLinux” em 2022 incluiu abordar muitos avisos do compilador no kernel, alterações relacionadas à integridade do fluxo de controle (CFI), tornando o manuseio da variável de ambiente LLVM mais flexível, melhorias nas ferramentas e outros trabalhos. Além de muitos testes para garantir que nada interrompa o código Git do kernel Linux mais recente, bem como o código do compilador LLVM/Clang mais recente e garantir que os sinalizadores apropriados sejam mantidos etc.

Compilar o kernel Linux com LLVM Clang fica mais simples

Os interessados ??em aprender mais sobre os avanços feitos no ano passado na compilação do kernel do Linux com o Clang podem aprender mais em nathachance.dev. De forma mais geral, o status de compilação mais recente e outras informações do projeto ClangBuiltLinux podem ser encontrados no GitHub.

LLVM oferece suporte para Emerald Rapids da Intel

O suporte para os processadores Xeon Scalable “Emerald Rapids” da Intel de próxima geração com -march=emeraldrapids agora ganharam suporte para a pilha do compilador LLVM 16.

Esse suporte LLVM para Intel Emerald Rapids segue imediatamente a empresa que adicionou o suporte Emerald Rapids ao GCC 13.

Tal como acontece com o patch GCC, o suporte LLVM está seguindo o conjunto de recursos existente do Sapphire Rapids. O patch simplesmente adiciona a nova opção de segmentação “emeraldrapids” e, em seguida, segue os caminhos do Sapphire Rapids, além de adicionar suporte à detecção com base no modelo Intel 0xcf. Pelo menos até agora não parece haver nenhuma adição de ISA com Emerald Rapids sobre Xeon Scalable 4th Gen Sapphire Rapids.

Assim como o GCC, o LLVM já oferece suporte ao Granite Rapids, que é o sucessor do Emerald Rapids. Juntamente com o suporte Granite Rapids e Emerald Rapids, o LLVM 16 também adiciona suporte para processadores cliente Meteor Lake, Sierra Forest e CPUs Grand Ridge.

O suporte -march=emeraldrapids foi mesclado por meio deste commit para LLVM 16 antes do lançamento estável provavelmente no período de ~ março.