Dlaczego „bc” jest wymagany do zbudowania jądra Linux?


66

Minimalne wymagania dotyczące budowy jądra Linux określają, że bcdo zbudowania jądra v4.10 wymagany jest kalkulator , przy czym minimalną wersją tego narzędzia jest 1.06.95.

Jaki jest użytek bcw tym kontekście i dlaczego język C nie jest używany bezpośrednio zamiast bcdo tych operacji?


10
Co masz na myśli, używając bezpośrednio C ? Nie sądzę, aby używanie C jako „języka skryptowego” podczas kompilacji było bezpośrednie lub przydatne.
cubuspl42

4
@ cubuspl42 możesz po prostu zapisać operacje w źródle i pozwolić kompilatorowi przeliczyć je na stałe. W rzeczywistości to, co jest używane, jest nieco zbyt skomplikowane.
OrangeDog

Odpowiedzi:


83

bcjest używany podczas kompilacji jądra do generowania stałych czasowych w plikach nagłówkowych. Widać to powoływać sięKbuild , gdzie przetwarza kernel/time/timeconst.bcsię wygenerować timeconst.h.

To mógłby być realizowany jako program C, który jest zbudowany i zarządzany w trakcie budowy, ale jest łatwiejszy w obsłudze bc(który jest mały i powszechne, w rzeczywistości jest częścią zestawu narzędzi, które są obowiązkowe dla nowych systemów POSIX - jądro nie spodziewa GNU bc).

bcjest używany tutaj zamiast Perla . Komunikat zatwierdzenia sugeruje, że bcbył wcześniej używany, ale nie mogę znaleźć śladu; Perl jest używany od 2008 roku (ku niezadowoleniu niektórych osób , chociaż ten zestaw łatek nigdy nie został scalony).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.