The native image builds for aarch64 are built on a machine where the kernel page size is set to 4096. However, on hosts with larger page sizes (e.g. 16384 on the RPI5) this leads to page misalignment and the native images are unable to run.
The fix is to set the page size of the build explicitly to a least common multiple of both 4096 and 16384 such that the alignment will work on all systems.
This can be done by adding the flag -H:PageSize=16384 or -H:PageSize=65536 to the native image build....or at least this is theorized by the following similar report: https://github.com/coursier/coursier/issues/2636
The native image builds for aarch64 are built on a machine where the kernel page size is set to
4096
. However, on hosts with larger page sizes (e.g.16384
on the RPI5) this leads to page misalignment and the native images are unable to run.The fix is to set the page size of the build explicitly to a least common multiple of both
4096
and16384
such that the alignment will work on all systems.This can be done by adding the flag
-H:PageSize=16384
or-H:PageSize=65536
to the native image build....or at least this is theorized by the following similar report: https://github.com/coursier/coursier/issues/2636More information in https://github.com/nasa/fprime/discussions/2288