Pourquoi «bc» est-il nécessaire pour construire le noyau Linux?

66

Labc configuration minimale requise pour la construction du noyau Linux indique que la calculatrice est requise pour créer la version 4.10 du noyau, la version minimale de l'outil étant 1.06.95.

Quelle utilisation est faite bcdans ce contexte et pourquoi le langage C n’est-il pas utilisé directement au lieu de bcces opérations?

Ikaros
la source
10
Qu'entendez-vous par utiliser directement C ? Je ne pense pas que l'utilisation de C en tant que "langage de script" lors de la construction soit directe ou pratique.
Cubuspl42
4
@ cubuspl42 vous pouvez simplement écrire les opérations dans le source et laisser le compilateur le calculer en constantes. En réalité, son utilisation est un peu trop compliquée pour cela.
Cessez de nuire à Monica le

Réponses:

83

bcest utilisé lors de la construction du noyau pour générer des constantes de temps dans les fichiers d’en-tête. Vous pouvez le voir invoqué dansKbuild , où il traite kernel/time/timeconst.bcpour générer timeconst.h.

Cela pourrait être implémenté en tant que programme C construit et exécuté lors de la construction, mais plus facile à utiliser bc(petit et commun; en fait, il fait partie de la série d’outils obligatoires sur les systèmes POSIX - le noyau ne l’attend pas. GNU bccependant).

bcest utilisé ici à la place de Perl . Le message commit indique que cela bcavait déjà été utilisé, mais je ne trouve aucune trace de cela. Perl est utilisé depuis 2008 (au grand dam de certaines personnes , bien que cet ensemble de correctifs n'ait jamais été fusionné).

Stephen Kitt
la source