Files
WizzardSK b322057689 ci: add Android builds
jni/ has been in this tree the whole time, and it is a considered file - it
picks a dynarec per ABI and explains why x86 does not get one. There has never
been a job to run it, so nothing has been building for Android.

Three things had to change before all four ABIs would build:

Application.mk asked for NDK_TOOLCHAIN_VERSION := 4.9. GCC left the NDK years
ago, and it listed only the two ARM ABIs while Android.mk has always handled
all four.

jit_allocator.cpp names a helper PAGE_SIZE(). bionic still defines PAGE_SIZE
as a macro for the 32-bit ABIs - NDK r27 only dropped it for the 64-bit ones,
for the 16 KB page work - so armeabi-v7a and x86 saw "int 4096()":

  jit_allocator.cpp:15:19: error: expected unqualified-id

Renamed to page_size(), which is what the rest of the file's helpers look like
anyway.

x86_64 asked for the x86_64 dynarec, and both of that architecture's backends
(ari64 and hacktarux) keep their entry points in nasm sources. ndk-build has
no assembler for those, so the link ended in

  ld.lld: error: undefined symbol: new_dyna_start
  ld.lld: error: undefined symbol: dyna_start

It now takes the interpreters, the same call Android.mk already makes for x86
and for the same kind of reason, with the reason written down this time.

Built for all four ABIs with ndk-build, the command and layout the android-jni
template uses.
2026-09-02 23:58:47 +02:00

6 lines
149 B
Makefile

APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
APP_STL := c++_static
APP_PLATFORM := android-24
LOCAL_SHORT_COMMANDS := true
APP_SHORT_COMMANDS := true