From: Nathan Chancellor <nathan@kernel.org>
To: Abel Vesa <abel.vesa@linaro.org>
Cc: Nicolas Schier <nsc@kernel.org>,
Masahiro Yamada <masahiroy@kernel.org>,
Jeff Johnson <jeff.johnson@oss.qualcomm.com>,
linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] kbuild: install-extmod-build: Properly fix CC expansion when ccache is used
Date: Sun, 9 Nov 2025 16:41:24 -0700 [thread overview]
Message-ID: <20251109234124.GC2977577@ax162> (raw)
In-Reply-To: <20251110-kbuild-install-extmod-build-fix-cc-expand-third-try-v1-1-5c0ddb1c67a8@linaro.org>
On Mon, Nov 10, 2025 at 12:26:31AM +0200, Abel Vesa wrote:
> Currently, when cross-compiling and ccache is used, the expanding of CC
> turns out to be without any quotes, leading to the following error:
>
> make[4]: *** No rule to make target 'aarch64-linux-gnu-gcc'. Stop.
> make[3]: *** [Makefile:2164: run-command] Error 2
>
> And it makes sense, because after expansion it ends up like this:
>
> make run-command KBUILD_RUN_COMMAND=+$(MAKE) \
> HOSTCC=ccache aarch64-linux-gnu-gcc VPATH= srcroot=. $(build)= ...
Yup, good old shell quoting... :(
> So add another set of double quotes, this time escaped, to make sure the
> aarch64-linux-gnu-gcc isn't expanded to something that looks like an
> entirely separate target.
>
> Fixes: 140332b6ed72 ("kbuild: fix linux-headers package build when $(CC) cannot link userspace")
> Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
> ---
> 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 054fdf45cc37a8717444b8094daf3e1150a8ccf5..6cce5c41552d520bf069487352fd26417b0b3899 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)='"$(realpath --relative-to=. "${destdir}")"/scripts
> + "${MAKE}" run-command KBUILD_RUN_COMMAND='+$(MAKE) HOSTCC='\""${CC}"\"' VPATH= srcroot=. $(build)='"$(realpath --relative-to=. "${destdir}")"/scripts
Can we avoid the need for escaping the " by just moving it to the other
side of the '?
"${MAKE}" run-command KBUILD_RUN_COMMAND='+$(MAKE) HOSTCC="'"${CC}"'" VPATH= srcroot=. $(build)='"$(realpath --relative-to=. "${destdir}")"/scripts
This whole command is really hard to read but I don't really see an
obvious way to simplify it.
>
> rm -f "${destdir}/scripts/Kbuild"
> fi
>
> ---
> base-commit: 9c0826a5d9aa4d52206dd89976858457a2a8a7ed
> change-id: 20251109-kbuild-install-extmod-build-fix-cc-expand-third-try-2cb1540cadbf
>
> Best regards,
> --
> Abel Vesa <abel.vesa@linaro.org>
>
next prev parent reply other threads:[~2025-11-09 23:41 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-09 22:26 [PATCH] kbuild: install-extmod-build: Properly fix CC expansion when ccache is used Abel Vesa
2025-11-09 23:41 ` Nathan Chancellor [this message]
2025-11-10 8:28 ` Abel Vesa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251109234124.GC2977577@ax162 \
--to=nathan@kernel.org \
--cc=abel.vesa@linaro.org \
--cc=jeff.johnson@oss.qualcomm.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=nsc@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.