Patch "kbuild: mkcompile_h: consider timestamp if KBUILD_BUILD_TIMESTAMP is set" has been added to the 4.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    kbuild: mkcompile_h: consider timestamp if KBUILD_BUILD_TIMESTAMP is set

to the 4.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     kbuild-mkcompile_h-consider-timestamp-if-kbuild_buil.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit f9979a5bf57cae758918fc836d6482b6688ff266
Author: Matthias Maennich <maennich@xxxxxxxxxx>
Date:   Sat Jun 12 15:18:38 2021 +0100

    kbuild: mkcompile_h: consider timestamp if KBUILD_BUILD_TIMESTAMP is set
    
    [ Upstream commit a979522a1a88556e42a22ce61bccc58e304cb361 ]
    
    To avoid unnecessary recompilations, mkcompile_h does not regenerate
    compile.h if just the timestamp changed.
    Though, if KBUILD_BUILD_TIMESTAMP is set, an explicit timestamp for the
    build was requested, in which case we should not ignore it.
    
    If a user follows the documentation for reproducible builds [1] and
    defines KBUILD_BUILD_TIMESTAMP as the git commit timestamp, a clean
    build will have the correct timestamp. A subsequent cherry-pick (or
    amend) changes the commit timestamp and if an incremental build is done
    with a different KBUILD_BUILD_TIMESTAMP now, that new value is not taken
    into consideration. But it should for reproducibility.
    
    Hence, whenever KBUILD_BUILD_TIMESTAMP is explicitly set, do not ignore
    UTS_VERSION when making a decision about whether the regenerated version
    of compile.h should be moved into place.
    
    [1] https://www.kernel.org/doc/html/latest/kbuild/reproducible-builds.html
    
    Signed-off-by: Matthias Maennich <maennich@xxxxxxxxxx>
    Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/scripts/mkcompile_h b/scripts/mkcompile_h
index 6fdc97ef6023..cb73747002ed 100755
--- a/scripts/mkcompile_h
+++ b/scripts/mkcompile_h
@@ -82,15 +82,23 @@ UTS_TRUNCATE="cut -b -$UTS_LEN"
 # 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.
+# 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.
 
+if [ -z "$KBUILD_BUILD_TIMESTAMP" ]; then
+   IGNORE_PATTERN="UTS_VERSION"
+else
+   IGNORE_PATTERN="NOT_A_PATTERN_TO_BE_MATCHED"
+fi
+
 if [ -r $TARGET ] && \
-      grep -v 'UTS_VERSION' $TARGET > .tmpver.1 && \
-      grep -v 'UTS_VERSION' .tmpcompile > .tmpver.2 && \
+      grep -v $IGNORE_PATTERN $TARGET > .tmpver.1 && \
+      grep -v $IGNORE_PATTERN .tmpcompile > .tmpver.2 && \
       cmp -s .tmpver.1 .tmpver.2; then
    rm -f .tmpcompile
 else



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux