Mengapa 'bc' diperlukan untuk membangun kernel Linux?

66

Persyaratan minimum pembangunan kernel Linux menentukan bahwa kalkulator bcdiperlukan untuk membangun kernel v4.10, versi minimal dari alat ini 1.06.95.

Penggunaan apa yang dibuat bcdalam konteks ini, dan mengapa bahasa C tidak langsung digunakan alih-alih bcuntuk operasi ini?

Ikaros
sumber
10
Apa maksud Anda dengan menggunakan C secara langsung ? Saya tidak berpikir bahwa menggunakan C sebagai "bahasa scripting" selama build itu langsung atau berguna.
cubuspl42
4
@ cubuspl42 Anda bisa menulis operasi di sumbernya, dan biarkan kompiler menghitungnya menjadi konstanta. Pada kenyataannya, untuk apa itu digunakan agak terlalu rumit untuk itu.
Stop Harming Monica

Jawaban:

83

bcdigunakan selama kernel build untuk menghasilkan konstanta waktu dalam file header. Anda dapat melihatnya dipanggil , diKbuild mana ia diproses kernel/time/timeconst.bcuntuk menghasilkan timeconst.h.

Ini dapat diimplementasikan sebagai program C yang dibangun dan dijalankan selama pembangunan, tetapi lebih mudah digunakan bc(yang kecil dan umum; pada kenyataannya itu adalah bagian dari set alat yang wajib pada sistem POSIX - kernel memang mengharapkan GNU bc).

bcdigunakan di sini, bukan Perl . Pesan komit menunjukkan bahwa bctelah digunakan sebelumnya, tetapi saya tidak dapat menemukan jejaknya; Perl telah digunakan sejak 2008 (banyak orang kecewa , meskipun set patch itu tidak pernah digabungkan).

Stephen Kitt
sumber