All right. So after checking ZExpression.pas more thoughtfully, here's what has already been defined :
2092: {$if defined(android)}
2173: {$elseif defined(cpux64)}
2435: {$elseif defined(cpux86) or defined(CPU32)}
2554: {$if defined(cpuaarch64)} // ARM64
2777: {$ifend}
Since the processor of the console is an ARM64 RK3326, maybe I could simply compile for aarch64 instead of arm?
The problem is that there are no instructions to create the cross-compiler for aarch64:
https://wiki.lazarus.freepascal.org/Cross_compiling
I'll see if I can do it without those
Edit:
And so I simply replaced arm per aarch64 in:
sudo make crossinstall CPU_TARGET=aarch64 OS_TARGET=linux CROSSBINDIR=/home/ats/fpc/binutils/ OPT=-dFPC_ARMEL INSTALL_PREFIX=/usr/local
But I end up with errors:
make[6]: Entering directory '/home/ats/fpc/rtl/linux'
make[6]: '/home/ats/fpc/rtl/units/aarch64-linux' is up to date.
make[6]: Leaving directory '/home/ats/fpc/rtl/linux'
/home/ats/fpc/binutils//as -o /home/ats/fpc/rtl/units/aarch64-linux/prt0.o aarch64/prt0.as
aarch64/prt0.as: Assembler messages:
aarch64/prt0.as:14: Error: ARM register expected -- `ldr x10,=__dl_fini'
aarch64/prt0.as:15: Error: ARM register expected -- `str x0,[x10]'
aarch64/prt0.as:22: Error: ARM register expected -- `mov x29,#0'
aarch64/prt0.as:25: Error: ARM register expected -- `ldr x1,[sp]'
aarch64/prt0.as:26: Error: ARM register expected -- `add x2,sp,#8'
aarch64/prt0.as:27: Error: ARM register expected -- `add x11,x1,#1'
aarch64/prt0.as:28: Error: ARM register expected -- `add x11,x2,x11,lsl#3'
aarch64/prt0.as:31: Error: ARM register expected -- `ldr x10,=operatingsystem_parameter_argc'
aarch64/prt0.as:32: Error: ARM register expected -- `str x1,[x10]'
aarch64/prt0.as:33: Error: ARM register expected -- `ldr x10,=operatingsystem_parameter_argv'
aarch64/prt0.as:34: Error: ARM register expected -- `str x2,[x10]'
aarch64/prt0.as:35: Error: ARM register expected -- `ldr x10,=operatingsystem_parameter_envp'
aarch64/prt0.as:36: Error: ARM register expected -- `str x11,[x10]'
aarch64/prt0.as:37: Error: ARM register expected -- `ldr x10,=__stkptr'
aarch64/prt0.as:38: Error: ARM register expected -- `mov x6,sp'
aarch64/prt0.as:39: Error: ARM register expected -- `str x6,[x10]'
aarch64/prt0.as:47: Error: ARM register expected -- `ldr x10,=__dl_fini'
aarch64/prt0.as:48: Error: ARM register expected -- `ldr x0,[x10]'
aarch64/prt0.as:49: Error: selected processor does not support `cbz x0,.Lexit' in ARM mode
aarch64/prt0.as:50: Error: bad instruction `blr x0'
aarch64/prt0.as:52: Error: ARM register expected -- `ldr x10,=operatingsystem_result'
aarch64/prt0.as:53: Error: ARM register expected -- `ldr w0,[x10]'
aarch64/prt0.as:54: Error: ARM register expected -- `mov w8,#94'
make[5]: *** [Makefile:4376: prt0.o] Error 1
make[5]: Leaving directory '/home/ats/fpc/rtl/linux'
make[4]: *** [Makefile:3941: fpc_smart] Error 2
make[4]: Leaving directory '/home/ats/fpc/rtl/linux'
make[3]: *** [Makefile:2287: linux_smart] Error 2
make[3]: Leaving directory '/home/ats/fpc/rtl'
make[2]: *** [Makefile:2926: rtl_smart] Error 2
make[2]: Leaving directory '/home/ats/fpc'
make[1]: *** [Makefile:3169: build-stamp.aarch64-linux] Error 2
make[1]: Leaving directory '/home/ats/fpc'
make: *** [Makefile:3223: crossinstall] Error 2
Assembly, again...