Perché è richiesto 'bc' per compilare il kernel Linux?


66

I requisiti minimi di costruzione del kernel Linux specificano che il calcolatore bcè necessario per compilare il kernel v4.10, essendo la versione minima dello strumento 1.06.95.

A che cosa serve bcin questo contesto e perché il linguaggio C non viene utilizzato direttamente anziché bcper queste operazioni?


10
Che cosa vuoi dire usando C direttamente ? Non penso che usare C come "linguaggio di scripting" durante la compilazione sia diretto o utile.
cubuspl42,

4
@ cubuspl42 potresti semplicemente scrivere le operazioni nel sorgente e lasciare che il compilatore lo calcoli in costanti. In realtà, a cosa serve è un po 'troppo complicato per quello.
Smetti di fare del male a Monica il

Risposte:


83

bcviene usato durante la compilazione del kernel per generare costanti di tempo nei file di intestazione. Puoi vederlo invocato inKbuild , dove viene elaborato kernel/time/timeconst.bcper generare timeconst.h.

Questo potrebbe essere implementato come un programma C che viene creato ed eseguito durante la compilazione, ma è più facile da usare bc(che è piccolo e comune; in realtà fa parte del set di strumenti che sono obbligatori su un sistema POSIX - il kernel si aspetta GNU bcperò).

bcè usato qui invece di Perl . Il messaggio di commit suggerisce che è bcstato usato in precedenza, ma non riesco a trovare una traccia di ciò; Il Perl è stato usato dal 2008 (con grande disappunto di alcune persone , sebbene quel set di patch non sia mai stato unito).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.