Code generation on Apple's ARM devices is mostly similar to MacOS,
except that they expect a code signature section, which to avoid
wasting too many bytes, are not aligned on page size as with code,
but rather to nearest 16 bytes. In addition, the ARM compiler will
also emit some relative pointer relocation records, which it seems
can be safely ignored as sections aren't rearranged.
This changeset implements those changes on the Mach-O dumper so
that Emacs can be compiled for ARM devices. With the ongoing
convergence between the MacOS and iOS platform, and the increasing
importance of code-signing in later MacOS versions, I think it
could be nice to mainline these changes.
Since these sections do not occur in current MacOS builds -
otherwise they would generate errors for being unknown - the
changes should not impact existing places where Emacs build, and
it would not work on iOS without to begin with.
Hat tip to Aaron Griffith for sharing his knowledge.