Por que 'bc' é necessário para construir o kernel do Linux?

66

Os requisitos mínimos de construção do kernel Linux especificam que a calculadora bcé necessária para criar o kernel v4.10, sendo a versão mínima da ferramenta 1.06.95.

De que uso é feito bcnesse contexto e por que a linguagem C não é usada diretamente, e não bcpara essas operações?

Ikaros
fonte
10
O que você quer dizer com usar C diretamente ? Eu não acho que usar C como uma "linguagem de script" durante a compilação seja direto ou útil.
precisa saber é o seguinte
4
@ cubuspl42 você pode simplesmente escrever as operações na fonte, e deixar o compilador calculá-las em constantes. Na realidade, o que é usado é um pouco complicado demais para isso.
parar de prejudicar Monica

Respostas:

83

bcé usado durante a construção do kernel para gerar constantes de tempo nos arquivos de cabeçalho. Você pode vê-lo invocado emKbuild , onde se processa kernel/time/timeconst.bca gerar timeconst.h.

Isso pode ser implementado como um programa C que é criado e executado durante a compilação, mas é mais fácil de usar bc(que é pequeno e comum; de fato, faz parte do conjunto de ferramentas obrigatórias em sistemas POSIX - o kernel espera GNU bc).

bcé usado aqui em vez de Perl . A mensagem de confirmação sugere que ela bcfoi usada anteriormente, mas não consigo encontrar um rastro disso; O Perl é usado desde 2008 (para grande desgosto de algumas pessoas , embora esse conjunto de patches nunca tenha sido mesclado).

Stephen Kitt
fonte