[PATCH] kbuild: add comment about why cmd_shipped uses 'cat'

From: Masahiro Yamada
Date: Sat Apr 24 2021 - 07:56:27 EST


cmd_shipped uses 'cat' instead of 'cp' for copying a file. The reason
is explained in the commit [1], but it was in the pre-git era.

$ touch a
$ chmod -w a
$ cp a b
$ cp a b
cp: cannot create regular file 'b': Permission denied

Add comments so that you can see the reason without looking into
the history.

[1]: https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/commit/?id=a70dba8086160449cc94c5bdaff78419b6b8e3c8

Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
---

scripts/Makefile.lib | 3 +++
1 file changed, 3 insertions(+)

diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index a4fbaf8880b9..1677a7dcd18c 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -240,6 +240,9 @@ quiet_cmd_copy = COPY $@

# Shipped files
# ===========================================================================
+# 'cp' preserves permissions. If you use it to copy a file in read-only srctree,
+# the copy would be read-only as well, leading to an error when executing the
+# rule next time. Use 'cat' instead in order to generate a writable file.

quiet_cmd_shipped = SHIPPED $@
cmd_shipped = cat $< > $@
--
2.27.0