Hi Quentin, On Mon, 11 Nov 2024 at 05:55, Quentin Schulz <quentin.sch...@cherry.de> wrote: > > Hi Simon, > > On 11/11/24 1:41 PM, Simon Glass wrote: > > Hi Quentin, > > > > On Mon, 11 Nov 2024 at 03:03, Quentin Schulz <quentin.sch...@cherry.de> > > wrote: > >> > >> Hi Simon, > >> > >> On 11/7/24 10:31 PM, Simon Glass wrote: > >>> When the --native flag is given, pretend to be running the host > >>> architecture rather than sandbox. > >>> > >>> Allow the same control for PXE too. > >>> > >> > >> Commit 7506c1566998 ("sandbox: Report host default-filename in native > >> mode") breaks building jaguar-rk3588_defconfig, I believe it's this patch? > >> > >> Reverting it makes the build pass again. > >> > >> HOST_ARCH is empty in include/generated/version_autogenerated.h for some > >> reason. Though it was also empty before. > >> > >> The error is: > >> > >> """ > >> lib/efi_loader/efi_helper.c:26:15: error: operator '==' has no left operand > >> 26 | #if HOST_ARCH == HOST_ARCH_X86_64 > >> | ^~ > >> lib/efi_loader/efi_helper.c:29:17: error: operator '==' has no left operand > >> 29 | #elif HOST_ARCH == HOST_ARCH_X86 > >> | ^~ > >> lib/efi_loader/efi_helper.c:32:17: error: operator '==' has no left operand > >> 32 | #elif HOST_ARCH == HOST_ARCH_AARCH64 > >> | ^~ > >> lib/efi_loader/efi_helper.c:35:17: error: operator '==' has no left operand > >> 35 | #elif HOST_ARCH == HOST_ARCH_ARM > >> | ^~ > >> lib/efi_loader/efi_helper.c:38:17: error: operator '==' has no left operand > >> 38 | #elif HOST_ARCH == HOST_ARCH_RISCV32 > >> | ^~ > >> lib/efi_loader/efi_helper.c:41:17: error: operator '==' has no left operand > >> 41 | #elif HOST_ARCH == HOST_ARCH_RISCV64 > >> | ^~ > >> lib/efi_loader/efi_helper.c:45:2: error: #error Unsupported Host > >> architecture > >> 45 | #error Unsupported Host architecture > >> | ^~~~~ > >> lib/efi_loader/efi_helper.c: In function ‘efi_get_basename’: > >> lib/efi_loader/efi_helper.c:73:38: error: ‘HOST_BOOTEFI_NAME’ undeclared > >> (first use in this function); did you mean ‘BOOTEFI_NAME’? > >> 73 | return efi_use_host_arch() ? HOST_BOOTEFI_NAME : > >> BOOTEFI_NAME; > >> | ^~~~~~~~~~~~~~~~~ > >> | BOOTEFI_NAME > >> lib/efi_loader/efi_helper.c:73:38: note: each undeclared identifier is > >> reported only once for each function it appears in > >> lib/efi_loader/efi_helper.c: In function ‘efi_get_pxe_arch’: > >> lib/efi_loader/efi_helper.c:79:24: error: ‘HOST_PXE_ARCH’ undeclared > >> (first use in this function); did you mean ‘HOST_ARCH’? > >> 79 | return HOST_PXE_ARCH; > >> | ^~~~~~~~~~~~~ > >> | HOST_ARCH > >> lib/efi_loader/efi_helper.c: In function ‘efi_get_basename’: > >> lib/efi_loader/efi_helper.c:74:1: warning: control reaches end of > >> non-void function [-Wreturn-type] > >> 74 | } > >> | ^ > >> make[2]: *** [scripts/Makefile.build:256: lib/efi_loader/efi_helper.o] > >> Error 1 > >> make[1]: *** [scripts/Makefile.build:398: lib/efi_loader] Error 2 > >> make: *** [Makefile:1914: lib] Error 2 > >> make: *** Waiting for unfinished jobs.... > >> """ > >> > >> The build host for me is Fedora 41. > > > > Which cross-toolchain are you using? That variable is set at the top > > of Makefile so it would be worth seeing what MK_ARCH is returning. > > > > Ahah! I had forgotten I use ccache so my CROSS_COMPILE is "ccache > aarch64-linux-gnu-", without "ccache" in there it works. > > I can suggest: > """ > diff --git a/Makefile b/Makefile > index 7275a02f24c..2aa115f2097 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 $(CROSS_COMPILE) | sed -n 's/^\(ccache > \)\?[[:space:]]*\([^\/]*\/\)*\([^-]*\)-[^[:space:]]*/\3/p'}" > endif > unexport HOST_ARCH > ifeq ("x86_64", $(MK_ARCH)) > """ > > an opinion on this or do I just send this as a patch and it can be > discussed on the ML? > > This works for me both with and without ccache in CROSS_COMILE.
Yes, please send as a patch, looks OK to me. I often wonder if we could have tests for the Makefile logic... Regards, Simon