• Masahiro Yamada's avatar
    kbuild: remove the owner check in mkcompile_h · f84fdf8d
    Masahiro Yamada authored
    This reverts a very old commit, which dates back to the pre-git era:
    
    |commit 5d1cfb5b
    |Author: Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
    |Date:   Sat Jul 27 02:53:19 2002 -0500
    |
    |    kbuild: Fix compiling/installing as different users
    |
    |    "make bzImage && sudo make install" had the problem that during
    |    the "sudo make install" the build system would notice that the information
    |    in include/linux/compile.h is not accurate (it says "compiled by <user>",
    |    but we are root), thus causing compile.h to be updated and leading to
    |    some recompiles.
    |
    |    We now only update "compile.h" if the current user is the owner of
    |    include/linux/autoconf.h, i.e. the user who did the "make *config". So the
    |    above sequence will correctly state "compiled by <user>".
    |
    |diff --git a/scripts/mkcompile_h b/scripts/mkcompile_h
    |index 6313db96172..cd956380978 100755
    |--- a/scripts/mkcompile_h
    |+++ b/scripts/mkcompile_h
    |@@ -3,6 +3,17 @@ ARCH=$2
    | SMP=$3
    | CC=$4
    |
    |+# If compile.h exists already and we don't own autoconf.h
    |+# (i.e. we're not the same user who did make *config), don't
    |+# modify compile.h
    |+# So "sudo make install" won't change the "compiled by <user>"
    |+# do "compiled by root"
    |+
    |+if [ -r $TARGET -a ! -O ../include/linux/autoconf.h ]; then
    |+  echo ' (not modified)'
    |+  exit 0
    |+fi
    |+
    | if [ -r ../.version ]; then
    |   VERSION=`cat ../.version`
    | else
    
    The 'make bzImage && sudo make install' problem no longer happens
    because commit 1648e4f8 ("x86, kbuild: make "make install" not
    depend on vmlinux") fixed the root cause.
    
    Commit 19514fc6 ("arm, kbuild: make "make install" not depend on
    vmlinux") fixed the similar issue on ARM, with detailed explanation.
    
    So, the rule is that the installation targets should never trigger
    the builds of any build artifact. By following it, this check is
    unneeded.
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    f84fdf8d
mkcompile_h 2.18 KB