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

Jerome Forissier jerome.forissier at linaro.org
Wed Sep 11 11:44:20 CEST 2024


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.

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


More information about the U-Boot mailing list