diff -Naurp a/backends/Makefile.am b/backends/Makefile.am
--- a/backends/Makefile.am 2019-06-13 12:19:49.078487313 +0000
+++ b/backends/Makefile.am 2019-06-13 12:21:44.137496575 +0000
@@ -58,6 +58,8 @@ static_SRCS = i386_init.c i386_symbol.c
x86_64_retval.c x86_64_regs.c x86_64_syscall.c \
x86_64_initreg.c x86_64_unwind.c x32_corenote.c \
ia64_init.c ia64_symbol.c ia64_regs.c ia64_retval.c \
+ arm_attrs.c arm_auxv.c arm_cfi.c arm_corenote.c arm_init.c \
+ arm_initreg.c arm_regs.c arm_retval.c arm_symbol.c \
aarch64_init.c aarch64_regs.c aarch64_symbol.c \
aarch64_corenote.c aarch64_retval.c aarch64_cfi.c \
aarch64_initreg.c aarch64_unwind.c \
diff -Naurp a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c
--- a/libebl/eblopenbackend.c 2019-06-13 12:19:49.083487139 +0000
+++ b/libebl/eblopenbackend.c 2019-06-13 12:24:04.382632274 +0000
@@ -47,6 +47,7 @@ const char *ppc_init (Elf *elf, GElf_Hal
const char *ppc64_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
const char *ia64_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
const char *s390_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
+const char *arm_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
const char *aarch64_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
const char *bpf_init (Elf *elf, GElf_Half machine, Ebl *eh, size_t ehlen);
@@ -74,7 +75,7 @@ static const struct
{ NULL, "elf_tilegx", "tilegx", 6, EM_TILEGX, ELFCLASS64, ELFDATA2LSB },
// XXX class and machine fields need to be filled in for all archs.
{ NULL, "elf_sh", "sh", 2, EM_SH, 0, 0 },
- { NULL, "ebl_arm", "arm", 3, EM_ARM, 0, 0 },
+ { arm_init, "ebl_arm", "arm", 3, EM_ARM, 0, 0 },
{ NULL, "elf_sparcv9", "sparc", 5, EM_SPARCV9, 0, 0 },
{ NULL, "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 },
{ NULL, "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 },