New comment by Sturmflut on void-packages repository https://github.com/void-linux/void-packages/issues/21105#issuecomment-1229026639 Comment: Funnily I came across my own post in this issue one and a half years later when trying to build darktable on a Raspberry Pi. It looks like this problem still exists with GCC 10.2.1 and the current darktable master (I just tried commit ab7e374330a9e50abad0f2784bda4b319e770239, a bunch of commits after the 4.0 release). An example for code that raises this error is: ``` // Kahan summation algorithm #ifdef _OPENMP #pragma omp declare simd aligned(c) #endif static inline float Kahan_sum(const float m, float *const __restrict__ c, const float add) { const float t1 = add - (*c); const float t2 = m + t1; *c = (t2 - m) - t1; return t2; } ``` The two `const float` are 32 bit, the `float *const` should be 64 bit on AArch64. The limitation that all types must be of the same length for OpenMD SIMD only exists for AArch64 in GCC, and this is still the case in the latest GCC 12.2.0. So it's basically possible to use all parts of OpenMP except SIMD. Theoretically this should be accomplished with CFLAGS="-fopenmp -fno-openmp-simd". But it isn't. There is also no GCC macro to check for OpenMP SIMD support or something like that (see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80502), so apart from changing the code I don't see an other option than to completely disable OpenMP when building on AArch64.