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

Inochi Amaoto posted 1 patch 11 months, 1 week ago
scripts/package/install-extmod-build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v2] kbuild: install-extmod-build: Fix build when specifying KBUILD_OUTPUT
Posted by Inochi Amaoto 11 months, 1 week ago
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>
---
Changed from v1:
- https://lore.kernel.org/all/20250223011944.902904-1-inochiama@gmail.com/
1. fix shellcheck warning C2086
---
 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..b96538787f3d 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
--
2.48.1
Re: [PATCH v2] kbuild: install-extmod-build: Fix build when specifying KBUILD_OUTPUT
Posted by Masahiro Yamada 11 months, 1 week ago
On Thu, Mar 6, 2025 at 3:40 PM 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>
> ---
> Changed from v1:
> - https://lore.kernel.org/all/20250223011944.902904-1-inochiama@gmail.com/
> 1. fix shellcheck warning C2086


Applied to linux-kbuild/fixes.
Thanks.


> ---
>  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..b96538787f3d 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
> --
> 2.48.1
>


-- 
Best Regards
Masahiro Yamada