[PATCH v1] setlocalversion: use ${objtree}/include/config/auto.conf

From: HONG Yifan
Date: Tue Mar 11 2025 - 22:12:32 EST


setlocalversion reads include/config/auto.conf, which is located below
$(objtree) with commit 214c0eea43b2 ("kbuild: add $(objtree)/ prefix to
some in-kernel build artifacts").

Hence, the setlocalversion script needs to use
$(objtree)/include/config/auto.conf as well.

Note that $(objtree) is not necessarily `.` when O (aka KBUILD_OUTPUT)
is set, because of commit 13b25489b6f8 ("kbuild: change working
directory to external module directory with M=").

Signed-off-by: HONG Yifan <elsk@xxxxxxxxxx>
---
Implementation note: Should I test -z ${objtree} before using it? Otherwise it
looks at /include/config/auto.conf which is wrong.
Or should I fall back to `.` if objtree is not found in the environment
variables?
I could also `exit 1` if $objtree is not set. Please let me know what you think.

scripts/setlocalversion | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/setlocalversion b/scripts/setlocalversion
index 28169d7e143b..88f54eb5a7c2 100755
--- a/scripts/setlocalversion
+++ b/scripts/setlocalversion
@@ -186,7 +186,7 @@ if ${no_local}; then
exit 0
fi

-if ! test -e include/config/auto.conf; then
+if ! test -e ${objtree}/include/config/auto.conf; then
echo "Error: kernelrelease not valid - run 'make prepare' to update it" >&2
exit 1
fi
--
2.49.0.rc0.332.g42c0ae87b1-goog