diff mbox series

kbuild: install-extmod-build: Fix build when specifying KBUILD_OUTPUT

Message ID 20250223011944.902904-1-inochiama@gmail.com (mailing list archive)
State New
Headers show
Series kbuild: install-extmod-build: Fix build when specifying KBUILD_OUTPUT | expand

Commit Message

Inochi Amaoto Feb. 23, 2025, 1:19 a.m. UTC
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@gmail.com>
---
 scripts/package/install-extmod-build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Masahiro Yamada March 5, 2025, 12:40 p.m. UTC | #1
On Sun, Feb 23, 2025 at 10:20 AM Inochi Amaoto <inochiama@gmail.com> 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@gmail.com>
> ---
>  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
diff mbox series

Patch

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
 
 	rm -f "${destdir}/scripts/Kbuild"
 fi