summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChen Qi <Qi.Chen@windriver.com>2022-11-17 12:11:55 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-11-20 08:29:08 +0000
commit2143dfd9ad443e33929b18098a188ea0514e4488 (patch)
treee3ce85b7045f9531cbb2005e9a5bef1e9c99825a
parent93707ae156e59b835c4ae0c6d301ed5a8f4a603b (diff)
downloadpoky-2143dfd9ad443e33929b18098a188ea0514e4488.tar.gz
kernel.bbclass: make KERNEL_DEBUG_TIMESTAMPS work at rebuild
Currently, the KERNEL_DEBUG_TIMESTAMPS is not working as expected at rebuild. That is, even if we set it to "1", the kernel build time is not changed. The problem could be reproduced by the following steps. 1. bitbake core-image-minimal; start image and check `uname -a` output. 2. set in local.conf: KERNEL_DEBUG_TIMESTAMPS = "1" 3. bitbake core-image-minimal; start image and check `uname -a` output. It's expected that after enabling KERNEL_DEBUG_TIMESTAMPS, the kernel build time will be set to current date. But it's not. This is because the compile.h was not re-generated when do_compile task was re-executed. In mkcompile_h, we have: """ # Only replace the real compile.h if the new one is different, # in order to preserve the timestamp and avoid unnecessary # recompilations. # We don't consider the file changed if only the date/time changed, # unless KBUILD_BUILD_TIMESTAMP was explicitly set (e.g. for # reproducible builds with that value referring to a commit timestamp). # A kernel config change will increase the generation number, thus # causing compile.h to be updated (including date/time) due to the # changed comment in the # first line. """ It has made it very clear that it will not be re-generated unless we have KBUILD_BUILD_TIMESTAMP set explicitly. So we set this variable explicitly in do_compile to fix this issue. (From OE-Core rev: 1b68c2d2d385013a1c535ef81172494302a36d74) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes-recipe/kernel.bbclass8
1 files changed, 8 insertions, 0 deletions
diff --git a/meta/classes-recipe/kernel.bbclass b/meta/classes-recipe/kernel.bbclass
index 3834a42fb9..3f6b40907f 100644
--- a/meta/classes-recipe/kernel.bbclass
+++ b/meta/classes-recipe/kernel.bbclass
@@ -367,6 +367,10 @@ kernel_do_compile() {
367 export KBUILD_BUILD_TIMESTAMP="$ts" 367 export KBUILD_BUILD_TIMESTAMP="$ts"
368 export KCONFIG_NOTIMESTAMP=1 368 export KCONFIG_NOTIMESTAMP=1
369 bbnote "KBUILD_BUILD_TIMESTAMP: $ts" 369 bbnote "KBUILD_BUILD_TIMESTAMP: $ts"
370 else
371 ts=`LC_ALL=C date`
372 export KBUILD_BUILD_TIMESTAMP="$ts"
373 bbnote "KBUILD_BUILD_TIMESTAMP: $ts"
370 fi 374 fi
371 # The $use_alternate_initrd is only set from 375 # The $use_alternate_initrd is only set from
372 # do_bundle_initramfs() This variable is specifically for the 376 # do_bundle_initramfs() This variable is specifically for the
@@ -412,6 +416,10 @@ do_compile_kernelmodules() {
412 export KBUILD_BUILD_TIMESTAMP="$ts" 416 export KBUILD_BUILD_TIMESTAMP="$ts"
413 export KCONFIG_NOTIMESTAMP=1 417 export KCONFIG_NOTIMESTAMP=1
414 bbnote "KBUILD_BUILD_TIMESTAMP: $ts" 418 bbnote "KBUILD_BUILD_TIMESTAMP: $ts"
419 else
420 ts=`LC_ALL=C date`
421 export KBUILD_BUILD_TIMESTAMP="$ts"
422 bbnote "KBUILD_BUILD_TIMESTAMP: $ts"
415 fi 423 fi
416 if (grep -q -i -e '^CONFIG_MODULES=y$' ${B}/.config); then 424 if (grep -q -i -e '^CONFIG_MODULES=y$' ${B}/.config); then
417 oe_runmake -C ${B} ${PARALLEL_MAKE} modules ${KERNEL_EXTRA_ARGS} 425 oe_runmake -C ${B} ${PARALLEL_MAKE} modules ${KERNEL_EXTRA_ARGS}