From: Matt Clarkson Date: Thu, 6 Apr 2017 13:12:15 +0000 (+0100) Subject: build-sys: correct ARM32 GNU EFI boot binary build X-Git-Tag: v234~320^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cf8e2953b56281e7008a8757340801d427c994e9;p=thirdparty%2Fsystemd.git build-sys: correct ARM32 GNU EFI boot binary build Due to ARM not having an EFI capable objcopy we need to use the binary output argument. This is correctly set up for AArch64 but is missed when building for ARM32. This patch adds the ARCH_ARM automake define which can then be used in the makefile to determine if to use the correct linker flags. The addition of the ARM32 flags is a copy and paste from the AArch64 to create a logical OR for the ARCH_AARCH64 and ARCH_ARM variables. I couldn't figure out a better way to create the conditional with basic Make language constructs. --- diff --git a/Makefile.am b/Makefile.am index 2a5610740ee..5cd38d991bb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2978,10 +2978,15 @@ if ARCH_AARCH64 efi_ldflags += --defsym=EFI_SUBSYSTEM=0xa EFI_FORMAT = -O binary else +if ARCH_ARM +efi_ldflags += --defsym=EFI_SUBSYSTEM=0xa +EFI_FORMAT = -O binary +else EFI_FORMAT = --target=efi-app-$(EFI_ARCH) endif endif endif +endif # ------------------------------------------------------------------------------ systemd_boot_headers = \ diff --git a/configure.ac b/configure.ac index a95e9843750..b5868f4be78 100644 --- a/configure.ac +++ b/configure.ac @@ -57,6 +57,7 @@ AS_IF([test "x$enable_largefile" = "xno"], [AC_MSG_ERROR([--disable-largefile is SET_ARCH(X86_64, x86_64*) SET_ARCH(IA32, i*86*) SET_ARCH(MIPS, mips*) +SET_ARCH(ARM, arm*) SET_ARCH(AARCH64, aarch64*) # i18n stuff for the PolicyKit policy files, heck whether intltool can be found, disable NLS otherwise @@ -1297,6 +1298,9 @@ AM_COND_IF(ARCH_IA32, [ AM_COND_IF(ARCH_X86_64, [ EFI_MACHINE_TYPE_NAME=x64]) +AM_COND_IF(ARCH_ARM, [ + EFI_MACHINE_TYPE_NAME=arm]) + AM_COND_IF(ARCH_AARCH64, [ EFI_MACHINE_TYPE_NAME=aa64])