Android 编译系统 defconfig文件的确定

Android 编译系统 defconfig文件的确定,第1张

概述Android编译系统defconfig文件的确定背景经常在驱动改动的时候,同时改动2个文件,才知道他们分别对应不同的编译结果。路径对应版本kernel/msm-4.4/arch/arm64/configs/sdm660_defconfigdebug版本kernel/msm-4.4/arch/arm64/configs/sdm660-perf_defconfiguser AndroID 编译系统 defconfig文件的确定背景

经常在驱动改动的时候,同时改动2个文件,才知道他们分别对应不同的编译结果。

路径对应版本
kernel/msm-4.4/arch/arm64/configs/sdm660_defconfigdeBUG版本
kernel/msm-4.4/arch/arm64/configs/sdm660-perf_defconfig user 版本
解析

1)命令执行追溯

source build/envsetup.sh

执行envsetup.sh脚本,把(TARGET_DEVICE)/BoardConfig.mk包含了进来:

function gettop () {	local topfile=build/core/envsetup.mk	# ...}build/core/envsetup.mk:board_config_mk := \    $(strip $(sort $(wildcard \    $(SRC_TARGET_DIR)/board/$(TARGET_DEVICE)/BoardConfig.mk \    $(shell test -d device && find -L device -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \    $(shell test -d vendor && find -L vendor -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \)))

BoardConfig.mk中有如下内容:

ifeq ($(KERNEL_DEFCONfig),) # 如果make命令中未指定KERNEL_DEFCONfig的值,则在此处指定它的值	ifeq ($(TARGET_BUILD_VARIANT),user)		KERNEL_DEFCONfig := msm8909-1gb-perf_defconfig	else		KERNEL_DEFCONfig := msm8909-1gb_defconfig	endifendifinclude kernel/AndroIDKernel.mk

2)查看Kernel/AndroIDKernel.mk

KERNEL_header_DEFCONfig := $(strip$(KERNEL_header_DEFCONfig))ifeq ($(KERNEL_header_DEFCONfig),)	KERNEL_header_DEFCONfig:= $(KERNEL_DEFCONfig)endifKERNEL_OUT :=$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJKERNEL_CONfig :=$(KERNEL_OUT)/.config       #----目标文件$(KERNEL_CONfig): $(KERNEL_OUT)$(MAKE) -C kernel O=../$(KERNEL_OUT)ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONfig)$(hIDe) if [ ! -z"$(KERNEL_CONfig_OVERRIDE)" ]; then /echo "OverrIDingkernel config with '$(KERNEL_CONfig_OVERRIDE)'"; /echo$(KERNEL_CONfig_OVERRIDE) >> $(KERNEL_OUT)/.config; /$(MAKE) -C kernelO=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE)oldconfig; fi

3)kernel/scripts/kconfig/Makefile

%_defconfig: $(obj)/conf	$(Q)$< --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)

在编译内核时执行上述命令生成.config文件,该命令展开后如下所示:

scripts/kconfig/conf --defconfig=arch/arm64/configs/.msmxxx_defconfig Kconfig

其中.msmxxx_defconfig的值就是KERNEL_DEFCONfig的值

总结

以上是内存溢出为你收集整理的Android 编译系统 defconfig文件的确定全部内容,希望文章能够帮你解决Android 编译系统 defconfig文件的确定所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1055997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存