[PATCH 1/1] sandbox: allow cross-compiling sandbox

Heinrich Schuchardt xypron.glpk at gmx.de
Tue Feb 9 07:26:40 CET 2021


Am 9. Februar 2021 05:29:43 MEZ schrieb Simon Glass <sjg at chromium.org>:
>Hi Heinrich,
>
>On Mon, 8 Feb 2021 at 15:06, Heinrich Schuchardt <xypron.glpk at 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?

It is the architecture that the binary can be run on



>
>>
>>     make sandbox_defconfig NO_SDL=1
>>     CROSS_COMPILE=aarch64-linux-gnu- NO_SDL=1 MK_ARCH=aarch64 make
>>
>> Signed-off-by: Heinrich Schuchardt <xypron.glpk at 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.

See above.

>
>Does MK mean make?

What name do you suggest?

Best regards

Heinrich

>
>> +
>> +.. 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



More information about the U-Boot mailing list