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-12-07 15:06:37 +0000
commitfb5a8ed05e8bb1aa3a73b192a6e761f706ed31c0 (patch)
treef34fcac2f1cbe17c88f176b51997ea6cea97fac5
parentf7ecae8d15885038d7a9dac79b53c0f804ded032 (diff)
downloadpoky-fb5a8ed05e8bb1aa3a73b192a6e761f706ed31c0.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: e44f0cda8176186d42a752631810c1cb5f1971eb) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> (cherry picked from commit 1b68c2d2d385013a1c535ef81172494302a36d74) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/kernel.bbclass8
1 files changed, 8 insertions, 0 deletions
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index a965e187e4..8b89360991 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -321,6 +321,10 @@ kernel_do_compile() {
321 export KBUILD_BUILD_TIMESTAMP="$ts" 321 export KBUILD_BUILD_TIMESTAMP="$ts"
322 export KCONFIG_NOTIMESTAMP=1 322 export KCONFIG_NOTIMESTAMP=1
323 bbnote "KBUILD_BUILD_TIMESTAMP: $ts" 323 bbnote "KBUILD_BUILD_TIMESTAMP: $ts"
324 else
325 ts=`LC_ALL=C date`
326 export KBUILD_BUILD_TIMESTAMP="$ts"
327 bbnote "KBUILD_BUILD_TIMESTAMP: $ts"
324 fi 328 fi
325 # The $use_alternate_initrd is only set from 329 # The $use_alternate_initrd is only set from
326 # do_bundle_initramfs() This variable is specifically for the 330 # do_bundle_initramfs() This variable is specifically for the
@@ -367,6 +371,10 @@ do_compile_kernelmodules() {
367 export KBUILD_BUILD_TIMESTAMP="$ts" 371 export KBUILD_BUILD_TIMESTAMP="$ts"
368 export KCONFIG_NOTIMESTAMP=1 372 export KCONFIG_NOTIMESTAMP=1
369 bbnote "KBUILD_BUILD_TIMESTAMP: $ts" 373 bbnote "KBUILD_BUILD_TIMESTAMP: $ts"
374 else
375 ts=`LC_ALL=C date`
376 export KBUILD_BUILD_TIMESTAMP="$ts"
377 bbnote "KBUILD_BUILD_TIMESTAMP: $ts"
370 fi 378 fi
371 if (grep -q -i -e '^CONFIG_MODULES=y$' ${B}/.config); then 379 if (grep -q -i -e '^CONFIG_MODULES=y$' ${B}/.config); then
372 cc_extra=$(get_cc_option) 380 cc_extra=$(get_cc_option)