[PATCH v3 01/16] Makefile: detect HOST_ARCH properly when CROSS_COMPILE is multi-word

Simon Glass sjg at chromium.org
Thu Sep 12 03:00:00 CEST 2024


Hi Jerome,

On Wed, 11 Sept 2024 at 03:44, Jerome Forissier
<jerome.forissier at linaro.org> wrote:
>
> Hi Simon,
>
> TL;DR: I am dropping this patch in v4.
>
> On 9/10/24 20:44, Simon Glass wrote:
> > Hi Jerome,
> >
> > On Fri, 6 Sept 2024 at 09:10, Jerome Forissier
> > <jerome.forissier at linaro.org> wrote:
> >>
> >> Hello Simon,
> >>
> >> On 9/6/24 17:02, Simon Glass wrote:
> >>> Hi Jerome,
> >>>
> >>> On Tue, 3 Sept 2024 at 02:38, Jerome Forissier
> >>> <jerome.forissier at linaro.org> wrote:
> >>>>
> >>>> When CROSS_COMPILE contains multiple words, HOST_ARCH is not properly
> >>>> detected and the sandbox build fail. It typically happens when using
> >>>> ccache. For example:
> >>>>
> >>>>  $ make sandbox_defconfig
> >>>>  $ make CROSS_COMPILE="ccache x86_64-linux-gnu-" \
> >>>>         CC="ccache x86_64-linux-gnu-gcc"
> >>>>  [...]
> >>>>  In file included from boot/bootmeth_efi.c:16:
> >>>>  include/efi_default_filename.h:33:2: error: #error Unsupported UEFI architecture
> >>>>     33 | #error Unsupported UEFI architecture
> >>>>        |  ^~~~~
>
> As you mentioned in your reply to this patch in v2 [1], this is not
> a valid use case (CROSS_COMPILE should not be set for sandbox).
>
> [1] http://patchwork.ozlabs.org/project/uboot/patch/e2f0809aa4b9d81cf1709a6b82d803a21ea1fac7.1725012294.git.jerome.forissier@linaro.org/#3377679
>
> >>>>
> >>>> A similar error occurs when the build is done via buildman and
> >>>> ~/.buildman contains:
> >>>>
> >>>>   [toolchain-wrapper]
> >>>>   wrapper = ccache
>
>
> This problem is still present in -next though (which does have your
> patch "buildman: Support building within a Python venv" [2]).
>
> It is my patch "buildman/toolchain.py: do not set CROSS_COMPILE for
> sandbox" [3] that solves the problem.
>
> [2] https://patchwork.ozlabs.org/project/uboot/patch/20240815195746.749042-2-sjg@chromium.org/
> [3] http://patchwork.ozlabs.org/project/uboot/patch/f4defe07f87f6c9761b401d435da03460b3b0947.1725351676.git.jerome.forissier@linaro.org/
>
> So all in all this patch is not needed.

OK, thank you for digging into this.

>
> Regards,
> --
> Jerome
>
> >>>> Fix the issue by considering only the last word in $(CROSS_COMPILE).
> >>>>
> >>>> Signed-off-by: Jerome Forissier <jerome.forissier at linaro.org>
> >>>> Reviewed-by: Peter Robinson <pbrobinson at gmail.com>
> >>>> Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> >>>> Reviewed-by: Peter Robinson <pbrobinson at gmail.com>
> >>>> ---
> >>>>  Makefile | 2 +-
> >>>>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>>>
> >>>> diff --git a/Makefile b/Makefile
> >>>> index f90e48f58a5..dc7bdd79420 100644
> >>>> --- a/Makefile
> >>>> +++ b/Makefile
> >>>> @@ -21,7 +21,7 @@ include include/host_arch.h
> >>>>  ifeq ("", "$(CROSS_COMPILE)")
> >>>>    MK_ARCH="${shell uname -m}"
> >>>>  else
> >>>> -  MK_ARCH="${shell echo $(CROSS_COMPILE) | sed -n 's/^[[:space:]]*\([^\/]*\/\)*\([^-]*\)-[^[:space:]]*/\2/p'}"
> >>>> +  MK_ARCH="${shell echo ${lastword $(CROSS_COMPILE)} | sed -n 's/^[[:space:]]*\([^\/]*\/\)*\([^-]*\)-[^[:space:]]*/\2/p'}"
> >>>>  endif
> >>>>  unexport HOST_ARCH
> >>>>  ifeq ("x86_64", $(MK_ARCH))
> >>>> --
> >>>> 2.40.1
> >>>>
> >>>
> >>> I've lost track of this, but did you pull in [1] first?
> >>
> >> Oops! No I didn't :-/ In fact I could not find the reference to the patch
> >> in your initial email, then I forgot about it.
> >> Would you like me to resend the whole series as v4 with your patch included?
> >
> > I just want to know that there is still a problem, with my patch. So
> > yes please try it and update the commit messages as needed for the two
> > affected patches.
> >
> > Regards,
> > Simon
> >
> >
> >>
> >>>
> >>> Regards,
> >>> Simon
> >>>
> >>> [1] https://patchwork.ozlabs.org/project/uboot/patch/20240815195746.749042-2-sjg@chromium.org/
> >>
> >> Thanks,
> >> --
> >> Jerome

Regards,
Simon


More information about the U-Boot mailing list