Installation on Linux arm64

Hey everyone,

Currently trying to install on Linux arm64, the mode to build a Docker container natively on Ampere CPUs or most importantly the Apple M-series CPUs, as there is no wheel directly available for manylinux + arm64. Following the source installation instructions for Linux, I am able to get cmake to configure, but then once I get to make a number of roadblocks get hit, which seem to come down to x86-specific intrinsics being used:

In file included from /home/firedrake/ngsuite/ngsolve-src/external_dependencies/netgen/libsrc/general/myadt.hpp:49,
                 from /home/firedrake/ngsuite/ngsolve-src/external_dependencies/netgen/libsrc/general/mystring.cpp:19:
/home/firedrake/ngsuite/ngsolve-src/external_dependencies/netgen/libsrc/general/ngsimd.hpp:9:10: fatal error: immintrin.h: No such file or directory
    9 | #include <immintrin.h>
In file included from /home/firedrake/ngsuite/ngsolve-src/external_dependencies/netgen/libsrc/visualization/../general/myadt.hpp:49,
                 from /home/firedrake/ngsuite/ngsolve-src/external_dependencies/netgen/libsrc/include/myadt.hpp:1,
                 from /home/firedrake/ngsuite/ngsolve-src/external_dependencies/netgen/libsrc/visualization/vsfieldlines.cpp:7:
/home/firedrake/ngsuite/ngsolve-src/external_dependencies/netgen/libsrc/visualization/../general/ngsimd.hpp:9:10: fatal error: immintrin.h: No such file or directory
    9 | #include <immintrin.h>
In file included from /home/firedrake/ngsuite/ngsolve-src/external_dependencies/netgen/libsrc/linalg/../general/myadt.hpp:49,
                 from /home/firedrake/ngsuite/ngsolve-src/external_dependencies/netgen/libsrc/include/myadt.hpp:1,
                 from /home/firedrake/ngsuite/ngsolve-src/external_dependencies/netgen/libsrc/linalg/bfgs.cpp:12:
/home/firedrake/ngsuite/ngsolve-src/external_dependencies/netgen/libsrc/linalg/../general/ngsimd.hpp:9:10: fatal error: immintrin.h: No such file or directory
    9 | #include <immintrin.h>

When googling for the error I hit upon a set of issues, which seem to boil down to x86 intrinsics not being implemented in arm64 as previously alluded to.

Has anyone been able to compile on arm64, or has an idea how to fix this compilation issue?

from your error messages it looks like you are not using the latest sources (which are available from github)

Apple M-series CPUs are natively supported

Joachim