On Tue, Feb 09, 2021 at 07:40:23AM +0100, Heinrich Schuchardt wrote: > Am 9. Februar 2021 06:30:31 MEZ schrieb AKASHI Takahiro > <takahiro.aka...@linaro.org>: > >On Mon, Feb 08, 2021 at 09:29:43PM -0700, Simon Glass wrote: > >> Hi Heinrich, > >> > >> On Mon, 8 Feb 2021 at 15:06, Heinrich Schuchardt <xypron.g...@gmx.de> > >wrote: > >> > > >> > UEFI test files like helloworld.efi require an architecture > >specific > >> > PE-COFF header. > >> > >> architecture-specific > >> > >> > > >> > For non-sandbox the PE-COFF header is chosen by the target > >architecture. > >> > For the sandbox we use the host architecture. This is not helpful > >for cross > >> > compiling. Allow specifying the target architecture of the sandbox > >via > >> > environment variable MK_ARCH, e.g. > >> > >> What exactly is the target arch? Is the the one that sandbox is > >> running on, or something else? > >> > >> > > >> > make sandbox_defconfig NO_SDL=1 > >> > CROSS_COMPILE=aarch64-linux-gnu- NO_SDL=1 MK_ARCH=aarch64 make > >> > > >> > Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de> > >> > --- > >> > Makefile | 2 +- > >> > doc/arch/sandbox.rst | 14 ++++++++++++++ > >> > 2 files changed, 15 insertions(+), 1 deletion(-) > >> > > >> > diff --git a/Makefile b/Makefile > >> > index 23dd11f723..286e5148ae 100644 > >> > --- a/Makefile > >> > +++ b/Makefile > >> > @@ -19,7 +19,7 @@ MAKEFLAGS += -rR --include-dir=$(CURDIR) > >> > > >> > # Determine host architecture > >> > include include/host_arch.h > >> > -MK_ARCH="${shell uname -m}" > >> > +MK_ARCH?="${shell uname -m}" > >> > unexport HOST_ARCH > >> > ifeq ("x86_64", $(MK_ARCH)) > >> > export HOST_ARCH=$(HOST_ARCH_X86_64) > >> > diff --git a/doc/arch/sandbox.rst b/doc/arch/sandbox.rst > >> > index 60ee1e0741..0dd9edc8cb 100644 > >> > --- a/doc/arch/sandbox.rst > >> > +++ b/doc/arch/sandbox.rst > >> > @@ -33,6 +33,20 @@ integers can only be built on 64-bit hosts. > >> > > >> > Note that standalone/API support is not available at present. > >> > > >> > +Cross compiling > >> > +--------------- > >> > + > >> > +When cross compiling the U-Boot sandbox with CONFIG_EFI_LOADER=y > >the target > >> > +architecture must be specified using the MK_ARCH environment > >variable using one > >> > +of the values aarch64, armv7l, i386, riscv32, riscv64, x86_64, > >e.g. > >> > >> OK, but what is the target architecture? I'm just not sure from your > >> comments what this actually means. > > > >I'm not quite sure if it is very useful to be able to cross-compile > >the sandbox application. But any way, it is not very convenient > > Building the sandbox on ARMv7 is broken due to patch introduced in 2020. We > get loads of warnings when building for 32bit.
Are you using "cross-compiling" sandbox on armv7 machine? For what target architecture? > We should integrate building the sandbox for different architectures into > Gitlab CI. > > >to always enforce users to explicitly specify "target" architecture. > >How about trying the following first? > >$(CC) -v | grep "Target: " | sed -e 's/-*$//' > > > >It will give us a hint about the architecture. > >("--print-multiarch" shows a similar triple, but this option won't > >work for some pre-built gcc, like aarch64 gcc from Arm.) > > Did you check clang? I don't know, but we must specify "--target" option explicitly in clang case, and according to U-Boot's Makefile, it will be uniquely determined from "CROSS_COMPILE". -Takahiro Akashi > Is the output format specified? Will this be stable for compiler versions to > come? Given the --print-multiarch failure probably not. > > When compiling Linux you also have to supply CROSS_COMPILER and ARCH. > > For me it is anyway a Gitlab CI thing. Nothing a user would typically use. > > Best regards > > Heinrich > > > > > >> Does MK mean make? > > > >I prefer another name for clarity. > > > >-Takahiro Akashi > > > >> > >> > + > >> > +.. code-block:: bash > >> > + > >> > + NO_SDL=1 make sandbox_defconfig > >> > + CROSS_COMPILE=aarch64-linux-gnu- MK_ARCH=aarch64 NO_SDL=1 make > >> > + > >> > +NO_SDL=1 was chosen in the example to remove the dependency on the > >SDL library. > >> > +The graphical console will not be available. > >> > > >> > Prerequisites > >> > ------------- > >> > -- > >> > 2.30.0 > >> > > >> > >> Regards, > >> Simon >