vmliux的生成以及相关依赖

本文详细分析了Linux 3.10.84版本中vmlinux的生成过程,从顶层makefile出发,解释了如何通过链接脚本link-vmlinux.sh以及依赖关系来构建vmlinux。内容涵盖了KBUILD_LDS、KBUILD_VMLINUX_INIT、KBUILD_VMLINUX_MAIN等关键部分,展示了如何将不同目录下的源码编译链接成vmlinux,并介绍了if_changed机制的作用。
摘要由CSDN通过智能技术生成
分析的版本:
linux3.10.84
分析方法:从顶层makefile进行分析,了解一下为了生成vmlinux,makefile都做了什么。
运行一个新的shell:

# SHELL used by kbuild
CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
	  else if [ -x /bin/bash ]; then echo /bin/bash; \
	  else echo sh; fi ; fi)

vmlinux依赖关系中,第一个依赖便是link-vmlinux.sh,这里相当于把第一个依赖加载到shell中,$<便是第一个依赖

# Final link of vmlinux
      cmd_link-vmlinux = $(CONFIG_SHELL) $< $(LD) $(LDFLAGS) $(LDFLAGS_vmlinux)
quiet_cmd_link-vmlinux = LINK    $@

当执行make命令后,默认生成的便是vmlinux
all: vmlinux
vmlinux的依赖关系
vmlinux: scripts/link-vmlinux.sh $(vmlinux-deps) FORCE
                    +$(call if_changed,link-vmlinux)     //根据if_changed的作用࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值