Hello all, I am currently exploring various ways of using NEON instructions in kernel mode. One of the ways of doing so is using NEON intrinsics, which we would like to support in the kernel, but unfortunately, at the moment we can't because the support header arm_neon.h assumes C99 conformance and includes <stdint.h>. The kernel does not supply that header.
As far as I can tell, the only dependency arm_neon.h has on the contents of that header are the [u]int[8|16|32|64]_t typedefs. The kernel does define those, only in a different header. I would like to propose the following way to address this issue: as arm_neon.h is coupled very tightly with GCC's internals (__builtin_neon_* types and functions), could we not modify arm_neon.h to - drop the #include <stdint.h> - replace every instance of [u]intxx_t with the builtin macro __[U]INTxx_TYPE__ (as we are already dependent on specific versions of GCC, this should not introduce any additional limitations) In this way, it is much easier to support NEON intrinsics in environments that we care about (like the kernel) but do not conform to the standards. Kind regards, Ard.