1. 程式人生 > >Linux內核配置

Linux內核配置

fig def make efi you config文件 系統 lin lag

1.autoconf.h文件

老版本的Linux內核中,執行make menuconfig後,編譯系統會把所有的配置信息保存到源碼頂層目錄下的.config文件中,
然後將.config中的內容轉換為C語言能識別的宏定義更新到include/generated目錄下的autoconf.h文件中。
比如會將CONFIG_XXX =y的定義轉換為#define CONFIG_XXX 1的模式寫到autoconf.h文件當中。autoconf.h文件是被自動包含
不需要C代碼文件中顯式包含。在內核源碼的根目錄下的Makefile中實現了自動包含,頂層Makefile中相關的內容如下:

# Use LINUXINCLUDE when you must reference the include/ directory.
# Needed to be compatible with the O= option
LINUXINCLUDE := -I$(srctree)/arch/$(hdr-arch)/include -Iarch/$(hdr-arch)/include/generated -Iinclude $(if $(KBUILD_SRC), -I$(srctree)/include) -include include/generated/autoconf.h
......
export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE

OBJCOPYFLAGS LDFLAGS

在LINUXINCLUDE賦值的最後一行包含了autoconf.h文件,然後通過export導出給其它的Makefile文件使用。

新內核中(4.14)中$(Q)test -e include/generated/autoconf.h

Linux內核配置