Linux kbuild/kconfig development
 help / color / mirror / Atom feed
* [PATCH] kbuild: install-extmod-build: Fix build when specifying KBUILD_OUTPUT
@ 2025-02-23  1:19 Inochi Amaoto
  2025-03-05 12:40 ` Masahiro Yamada
  0 siblings, 1 reply; 2+ messages in thread
From: Inochi Amaoto @ 2025-02-23  1:19 UTC (permalink / raw)
  To: Masahiro Yamada, Nathan Chancellor, Nicolas Schier
  Cc: Inochi Amaoto, linux-kbuild, linux-kernel, Yixun Lan, Longbin Li

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


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] kbuild: install-extmod-build: Fix build when specifying KBUILD_OUTPUT
  2025-02-23  1:19 [PATCH] kbuild: install-extmod-build: Fix build when specifying KBUILD_OUTPUT Inochi Amaoto
@ 2025-03-05 12:40 ` Masahiro Yamada
  0 siblings, 0 replies; 2+ messages in thread
From: Masahiro Yamada @ 2025-03-05 12:40 UTC (permalink / raw)
  To: Inochi Amaoto
  Cc: Nathan Chancellor, Nicolas Schier, linux-kbuild, linux-kernel,
	Yixun Lan, Longbin Li

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-03-05 12:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-23  1:19 [PATCH] kbuild: install-extmod-build: Fix build when specifying KBUILD_OUTPUT Inochi Amaoto
2025-03-05 12:40 ` Masahiro Yamada

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox