.o文件 linux生成,vmlinux.o 生成

本文详细介绍了Linux内核构建过程中vmlinux.o的生成步骤,涉及Makefile中的规则和命令,包括modpost的使用以及如何处理目标文件的依赖关系,最终生成Module.symvers文件。
摘要由CSDN通过智能技术生成

vmlinux.o Makefile 对应内核版本:2.6.35.13

vmlinux.o 是生成 vmlinux 的依赖之一,在链接出 vmlinux 之前会先链接出 vmlinux.o 。

vmlinux.o 定义在顶层 Makefile 中:

vmlinux.o: $(modpost-init) $(vmlinux-main) FORCE

$(call if_changed_rule,vmlinux-modpost)

上面 $(modpost-init) 定义在顶层 Makefile 中:

modpost-init := $(filter-out init/built-in.o, $(vmlinux-init))

它只是从

$(vmlinux-init)中去掉 init/built-in.o 文件。比如在默认的配置下,$(vmlinux-init) 指代的生成文件为:

arch/x86/kernel/head_32.o arch/x86/kernel/head32.o arch/x86/kernel/head.o arch/x86/kernel/init_task.o init/built-in.o

则 $(modpost-init) 就是:

arch/x86/kernel/head_32.o arch/x86/kernel/head32.o arch/x86/kernel/head.o arch/x86/kernel/init_task.o

在 vmlinux.o 底下的 if_changed_rule 函数和

if_changed 函数类似,它会使构建系统调用 rule_vmlinux-modpost --- 该变量也定义在顶层 Makefile 中:

define rule_vmlinux-modpost<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值