编译kernel版本的时候有时候会多一个+号,例如4.9.0.rc3+,为什么会多一个+号呢?

编译kernel版本的时候有时候会多一个+号,例如4.9.0.rc3+,为什么会多一个+号呢?
根目录下makefile 会定义一些伪目标
PHONY += prepare archprepare prepare0 prepare1 prepare2 prepare3
重点看一下prepare3
prepare3: include/config/kernel.release
根目录下makefile下会定义include/config/kernel.release 目标
include/config/kernel.release: include/config/auto.conf FORCE
    $(call filechk,kernel.release)
根目录下makefile会定义filechk_kernel.release
define filechk_kernel.release
    echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))"
endef
继续看看scripts/setlocalversion中是如增加+号的
重点代码如下,我们的情况看else情况
# scm version string if not at a tagged commit
if test "$CONFIG_LOCALVERSION_AUTO" = "y"; then
    # full scm version string
    res="$res$(scm_version)"
else
    # append a plus sign if the repository is not in a clean
    # annotated or signed tagged state (as git describe only
    # looks at signed or annotated tags - git tag -a/-s) and
    # LOCALVERSION= is not specified
    if test "${LOCALVERSION+set}" != "set"; then
        scm=$(scm_version --short)
        res="$res${scm:++}"
    fi
fi

可见如果定义了LOCALVERSION的话,就会在版本号后面增加+,即执行res="$res${scm:++}",所以如果不想增加+号,就不要要定义LOCALVERSION。或者直接改code为res="$res${scm:}",我就是这么做的,嘿嘿

或者直接将CONFIG_LOCALVERSION_AUTO定义成y也可以避免这种情况


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值