Confira !!
Abra o champanhe, pois o kernel Linux 5.12 em desenvolvimento será capaz de suportar otimizações de tempo de link (LTO) em conjunto com o compilador LLVM Clang não apenas no AArch64 (ARM de 64 bits), mas também no x86_64.
Na semana passada, observei que o suporte ao Clang LTO foi enviado, mas na época não estava claro se Linus Torvalds estava disposto a obtê-lo, dados seus comentários anteriores sobre LTO'ing do kernel. Com essa solicitação de pull, também era apenas para AArch64 com o suporte x86_64 ainda não ajustado.
Anos atrás, Linus Torvalds não estava convencido do suporte GCC LTO para o kernele esse código, em última análise, nunca foi alinhado. Com o Clang, os benefícios são praticamente os mesmos em permitir um desempenho potencialmente maior, permitindo que o compilador de código aplique passagens de otimização em tempo de link em todo o kernel, em vez de ser limitado por arquivo de origem. LTO também tem a possibilidade de proporcionar maior economia de espaço. Além disso, no caso do Clang, o LTO para o kernel também é necessário para dar suporte ao Control Flow Integrity (CFI) para o kernel.
O suporte do Clang LTO para o kernel do Linux foi bem testado no modo LTO completo e no ThinLTO do LLVM. O Google, na verdade, tem feito uso do suporte Clang LTO para compilar seus builds de kernel Android de produção há algum tempo e provou ser estável e produzir os benefícios desejados.
Então, ontem com muito entusiasmo foi habilitado o suporte do Clang LTO fundido por Linus Torvalds. Isso incluiu as mudanças principais, além de habilitá-lo para AArch64.
Mas, para tornar as coisas ainda mais interessantes, foram os patches da "parte dois" que implementaram o Clang LTO nas compilações do kernel Linux x86_64. Linus já fundiu isso também.
Resumindo a história, o Linux 5.12 permitirá compilações de kernel otimizadas para Clang LTO para um maior desempenho e habilitação de funcionalidades adicionais, como CFI.
As etapas curtas para habilitar uma compilação do Clang LTO do kernel Linux são:
make LLVM = 1 LLVM_IAS = 1 defconfig
scripts / config -e LTO_CLANG_THIN
make LLVM = 1 LLVM_IAS = 1
Até a próxima !!
Nenhum comentário:
Postar um comentário