summaryrefslogtreecommitdiffstats
path: root/meta/classes/kernel.bbclass
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@gmail.com>2024-02-22 11:35:45 +0100
committerSteve Sakoman <steve@sakoman.com>2024-03-01 05:19:54 -1000
commit26f23535eef1f3314c42cd00cda0c6da7cdaf9af (patch)
tree23dbb577e2732eafb663b553fd95484b09386e62 /meta/classes/kernel.bbclass
parent2b7c113459a602c91badaa7543d02811feac0151 (diff)
downloadpoky-26f23535eef1f3314c42cd00cda0c6da7cdaf9af.tar.gz
kernel: make LOCALVERSION consistent between recipes
The initial fix for localversion setting in 6.3+ broke older recipes and also broke recipes setting localversion in a kernel recipe, as make-mod-scripts (and other locations) can trigger a regeneration of files and don't have access to the variable. Moving the setting of this variable to the global namespace doesn't make sense, so we follow the example of the kernel-abiversion and save a kernel-localversion to the build artifacts. Recipes that may regenerate scripts/dynamic files, must depend on the do_shared_workedir of the kernel and use the helper function to read the file storing the localversion. (From OE-Core rev: cca0971a7d92d823cc0c2b16cf14a7b2ed8ecb61) Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> cherry-picked from master b378eec156998eea55ba61e59103cb34fab0d07c Signed-off-by: Andreas Helbech Kleist <andreaskleist@gmail.com> Acked-by: Ryan Eatmon <reatmon@ti.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
Diffstat (limited to 'meta/classes/kernel.bbclass')
-rw-r--r--meta/classes/kernel.bbclass14
1 files changed, 14 insertions, 0 deletions
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 940f1a3cf4..96e41b5192 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -541,6 +541,7 @@ do_shared_workdir () {
541 # 541 #
542 542
543 echo "${KERNEL_VERSION}" > $kerneldir/${KERNEL_PACKAGE_NAME}-abiversion 543 echo "${KERNEL_VERSION}" > $kerneldir/${KERNEL_PACKAGE_NAME}-abiversion
544 echo "${KERNEL_LOCALVERSION}" > $kerneldir/${KERNEL_PACKAGE_NAME}-localversion
544 545
545 # Copy files required for module builds 546 # Copy files required for module builds
546 cp System.map $kerneldir/System.map-${KERNEL_VERSION} 547 cp System.map $kerneldir/System.map-${KERNEL_VERSION}
@@ -630,6 +631,19 @@ python check_oldest_kernel() {
630check_oldest_kernel[vardepsexclude] += "OLDEST_KERNEL KERNEL_VERSION" 631check_oldest_kernel[vardepsexclude] += "OLDEST_KERNEL KERNEL_VERSION"
631do_configure[prefuncs] += "check_oldest_kernel" 632do_configure[prefuncs] += "check_oldest_kernel"
632 633
634KERNEL_LOCALVERSION ??= ""
635
636# 6.3+ requires the variable LOCALVERSION to be set to not get a "+" in
637# the local version. Having it empty means nothing will be added, and any
638# value will be appended to the local kernel version. This replaces the
639# use of .scmversion file for setting a localversion without using
640# the CONFIG_LOCALVERSION option.
641#
642# Note: This class saves the value of localversion to a file
643# so other recipes like make-mod-scripts can restore it via the
644# helper function get_kernellocalversion_file
645export LOCALVERSION="${KERNEL_LOCALVERSION}"
646
633kernel_do_configure() { 647kernel_do_configure() {
634 # fixes extra + in /lib/modules/2.6.37+ 648 # fixes extra + in /lib/modules/2.6.37+
635 # $ scripts/setlocalversion . => + 649 # $ scripts/setlocalversion . => +