Re: [PATCH] kbuild: install-extmod-build: Fix build when specifying KBUILD_OUTPUT

From: Masahiro Yamada
Date: Wed Mar 05 2025 - 07:41:45 EST


On Sun, Feb 23, 2025 at 10:20 AM Inochi Amaoto <inochiama@xxxxxxxxx> wrote:
>
> Since commit 5f73e7d0386d ("kbuild: refactor cross-compiling
> linux-headers package"), the linux-headers pacman package fails
> to build when "O=" is set. The build system complains:
>
> /mnt/chroot/linux/scripts/Makefile.build:41: mnt/chroots/linux-mainline/pacman/linux-upstream/pkg/linux-upstream-headers/usr//lib/modules/6.14.0-rc3-00350-g771dba31fffc/build/scripts/Makefile: No such file or directory
>
> This is because the "srcroot" variable is set to "." and the
> "build" variable is set to the absolute path. This makes the
> "src" variables point to wrong directory.
>
> Change the "build" variable to a relative path to "." to
> fix build.
>
> Fixes: 5f73e7d0386d ("kbuild: refactor cross-compiling linux-headers package")
> Signed-off-by: Inochi Amaoto <inochiama@xxxxxxxxx>
> ---
> scripts/package/install-extmod-build | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/package/install-extmod-build b/scripts/package/install-extmod-build
> index 2966473b4660..c0357ba2ff72 100755
> --- a/scripts/package/install-extmod-build
> +++ b/scripts/package/install-extmod-build
> @@ -63,7 +63,7 @@ if [ "${CC}" != "${HOSTCC}" ]; then
> # Clear VPATH and srcroot because the source files reside in the output
> # directory.
> # shellcheck disable=SC2016 # $(MAKE) and $(build) will be expanded by Make
> - "${MAKE}" run-command KBUILD_RUN_COMMAND='+$(MAKE) HOSTCC='"${CC}"' VPATH= srcroot=. $(build)='"${destdir}"/scripts
> + "${MAKE}" run-command KBUILD_RUN_COMMAND='+$(MAKE) HOSTCC='"${CC}"' VPATH= srcroot=. $(build)='"$(realpath --relative-base=. ${destdir})"/scripts


Looks good to me, but a nit.

This will introduce a new shellcheck warning:

C2086 (info): Double quote to prevent globbing and word splitting.

Please keep the double-quotes around ${destdir}

"$(realpath --relative-base=. "${destdir}")"


> rm -f "${destdir}/scripts/Kbuild"
> fi
> --
> 2.48.1
>


--
Best Regards
Masahiro Yamada