I have modified mORMot to compile on this target.
I can run mormot.core.base and mormot.core.os and retrieve some system information:
admin@ARM64-WIN C:\Users\Admin\Documents>winarm
Run mORMot 2.3.8892 with Free Pascal 3.3.1 64 bit
OSVersionText=Windows 11 24H2 (10.0.26100.2314)
CpuInfoText=4 x Apple Silicon [12MB] (aarch64)
CpuCacheText=L1=4*128KB L2=12MB
BiosInfoText=Parallels International GmbH. Parallels ARM Virtual Machine 0.1
ToTextOS=Windows 11 26100
ahcAES
ahcCRC32
ahcSHA1
But when mormot.core.unicode initializes, then there is a "try..finally" block with an "exit" which does not call the "finally" block.
So execution can't go any further.
And when I include all mormot units, then I have a linking issue:
(9015) Linking /home/ab/dev/lib2/test/bin/fpc-aarch64-win64/mormot2tests.exe
Error: (9221) Undefined symbol: MORMOT.DB.RAW.SQLITE3$_$TSQLREQUEST_$_EXECUTE$h4ds6BRYEByO_$$_fin$00000282 (first seen in mormot.db.raw.sqlite3.o)
Fatal: (10026) There were 1 errors compiling module, stopping
It seems related to a missing "finally" block label.
Perhaps somewhat related to the previous bug.
Anyway, running mormot2tests with fpc is a good way to validate a target, especially about multi-threading abilities.
The good news is that the Windows Arm64 is moving on FPC/Lazarus. We have pressure from some of our clients to compile some services to this system.
Note that the French company I work for (TranquilIT) can also offer a bounty for any FPC core dev working on aarch64-win64 compatibility. You can ask me in a private message.