Linux内核中的dm-crypt模块的异步IO改造---blog7

本文详细解析了Linux内核根Makefile中的关键变量和编译选项,包括KBUILD_VERBOSE、KBUILD_MODULES、KBUILD_BUILTIN等,以及如何通过make参数如V、C、M影响编译过程。通过对这些概念的理解,有助于更好地掌握Linux内核的编译和调试。
摘要由CSDN通过智能技术生成

2021SC@SUDSC

Linux内核的根Makefile的导出变量解析

根Makefile也就是Kernel Makefile,其位于Linux内核源代码的顶层目录,主要用于指定编译Linux kernel目标文件和模块的路径。它是根据.config 文件来决定哪些文件被编译进内核。

VERSION = 5
PATCHLEVEL = 14
SUBLEVEL = 11
EXTRAVERSION =
NAME = Opossums on Parade

Kernel Makefile从这额变量的定义开始,这些变量说明了当前内核的版本,并使用于很多地方。比如赋值给KERNELVERSION:

KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION

其中export是将这些变量传给子目录下的Makefile文件。

接下来就会出现很多ifeq的条件判断语句,主要是检查传递给make 的参数。Kernel Makefile提供了一个特殊的编译选项make help,这个选项会生成可用目标和一些能在命令行传给make的参数。比如:

  make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build
  make V=2   [targets] 2 => give reason for rebuild of target
  make O=dir [targets] Locate all output files in "dir", including .config
  make C=1   [targets] Check re-compiled c source with $CHECK
                       (sparse by default)
  make C=2   [targets] Force check of all c source with $CHECK
  make RECORDMCOUNT_WARN=1 [targets] Warn about ignored mcount sections
  make W=n   [targets] Enable extra build checks, n=1,2,3 where
		1: warnings which may be relevant and do not occur too often
		2: warnings which occur quite often but may still be relevant
		3: more obscure warnings, can most likely be ignored
		Multiple levels can be combined with W=12 or W=123

举个简单的例子就是&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值