The kernel_do_configure() function creates empty .scmversion files within both the source & build directories. The presence of these files causes the scm_version function within the kernel's scripts/setlocalversion to always output the empty string, breaking the kernel's CONFIG_LOCALVERSION_AUTO=y functionality which appends that string to the kernel version. Rather than appending the git commit hash or another SCM revision to the kernel version, the empty string is appended causing CONFIG_LOCALVERSION_AUTO to do nothing.
This behavior was introduced for the build directory by commit c73e50a91e02 ("kernel.bbclass: fix extra + in kernelrelease") and extended to the source directory by commit cafb94f57123 ("kernel.bbclass: touch .scmversion also in ${S}"). The motive isn't entirely clear since these commits contain no meaningful descriptions and the former links to a mailing list archive that is no longer online, but the '+' character referenced would be appended if the kernel were built from a dirty working tree. This in itself is useful information; hiding that fact can only serve to muddy a user's understanding of what kernel they're actually running. I have verified that building a kernel from a clean working tree does not result in a spurious '+' character. Remove the creation of the empty .scmversion files in order to restore the kernel's CONFIG_LOCALVERSION_AUTO functionality. This allows users of kernels built from non-tagged source & configured with CONFIG_LOCALVERSION_AUTO=y to better determine what kernel they're actually running. Signed-off-by: Paul Burton <paulbur...@google.com> --- meta/classes/kernel.bbclass | 6 ------ 1 file changed, 6 deletions(-) diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index a724645466..46e24a19e2 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass @@ -521,12 +521,6 @@ check_oldest_kernel[vardepsexclude] += "OLDEST_KERNEL KERNEL_VERSION" do_configure[prefuncs] += "check_oldest_kernel" kernel_do_configure() { - # fixes extra + in /lib/modules/2.6.37+ - # $ scripts/setlocalversion . => + - # $ make kernelversion => 2.6.37 - # $ make kernelrelease => 2.6.37+ - touch ${B}/.scmversion ${S}/.scmversion - if [ "${S}" != "${B}" ] && [ -f "${S}/.config" ] && [ ! -f "${B}/.config" ]; then mv "${S}/.config" "${B}/.config" fi -- 2.26.0.rc2.310.g2932bb562d-goog
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#136906): https://lists.openembedded.org/g/openembedded-core/message/136906 Mute This Topic: https://lists.openembedded.org/mt/72690129/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-