diff --git a/package/batocera/libraries/batocera-luajit/Config.in b/package/batocera/libraries/batocera-luajit/Config.in index 13f2e24a34d..7e09010d306 100644 --- a/package/batocera/libraries/batocera-luajit/Config.in +++ b/package/batocera/libraries/batocera-luajit/Config.in @@ -20,7 +20,7 @@ config BR2_PACKAGE_BATOCERA_LUAJIT # luajit.mk uses the "-m32" compiler option to build 32bit # binaries, so check if that option is supported. See # luajit.mk for details. - select BR2_HOSTARCH_NEEDS_IA32_COMPILER if !BR2_ARCH_IS_64 + select BR2_HOSTARCH_NEEDS_IA32_COMPILER if !BR2_ARCH_IS_64 && BR2_HOSTARCH != "aarch64" help LuaJIT implements the full set of language features defined by Lua 5.1. The virtual machine (VM) is API- and diff --git a/package/batocera/libraries/batocera-luajit/batocera-luajit.mk b/package/batocera/libraries/batocera-luajit/batocera-luajit.mk index cd189ac9d41..f19ac5e16fb 100644 --- a/package/batocera/libraries/batocera-luajit/batocera-luajit.mk +++ b/package/batocera/libraries/batocera-luajit/batocera-luajit.mk @@ -28,7 +28,18 @@ ifeq ($(BR2_ARCH_IS_64),y) BATOCERA_LUAJIT_HOST_CC = $(HOSTCC) # There is no LUAJIT_ENABLE_GC64 option. else +# On aarch64 hosts, there is no -m32 equivalent. Instead, use Buildroot's own +# cross-compiler to build the host tools (minilua, buildvm) as static arm32 +# binaries, which run natively via the kernel's 32-bit compat mode (CONFIG_COMPAT). +ifeq ($(HOSTARCH),aarch64) +BATOCERA_LUAJIT_HOST_CC = $(TARGET_CC) -static +BATOCERA_LUAJIT_HOST_CFLAGS = $(TARGET_CFLAGS) +BATOCERA_LUAJIT_HOST_LDFLAGS = $(TARGET_LDFLAGS) +else BATOCERA_LUAJIT_HOST_CC = $(HOSTCC) -m32 +BATOCERA_LUAJIT_HOST_CFLAGS = $(HOST_CFLAGS) +BATOCERA_LUAJIT_HOST_LDFLAGS = $(HOST_LDFLAGS) +endif BATOCERA_LUAJIT_XCFLAGS += -DLUAJIT_DISABLE_GC64 endif @@ -44,8 +55,8 @@ define BATOCERA_LUAJIT_BUILD_CMDS TARGET_CFLAGS="$(TARGET_CFLAGS)" \ TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \ HOST_CC="$(BATOCERA_LUAJIT_HOST_CC)" \ - HOST_CFLAGS="$(HOST_CFLAGS)" \ - HOST_LDFLAGS="$(HOST_LDFLAGS)" \ + HOST_CFLAGS="$(BATOCERA_LUAJIT_HOST_CFLAGS)" \ + HOST_LDFLAGS="$(BATOCERA_LUAJIT_HOST_LDFLAGS)" \ BUILDMODE=dynamic \ XCFLAGS="$(BATOCERA_LUAJIT_XCFLAGS)" \ -C $(@D) amalg