quick fix for hyperthreading detection: current ARM64/M1 machines don't seem to have it
when using newer cmake versions (3.12+), find_package( OpenMP ) now actually works. New best practice to the use openmp is to use the new alias notation (target_link_libraries (genesis_lib_shared PUBLIC OpenMP::OpenMP_CXX))
added missing includes to limits and cstddef (defining size_t) that made the non-unity (release) build fail
Known issues:
In my environment (Appleclang 13.0.0 + homebrew libomp), the compile causes a segfault in clang. I narrowed it down to the use of #pragma omp critical in rf.cpp. It seems to be a known issue: https://github.com/llvm/llvm-project/issues/52714
I made sure to check that homebrew's libomp is compatible with ARM64, which appears to be the case:
Changes:
find_package( OpenMP )
now actually works. New best practice to the use openmp is to use the new alias notation (target_link_libraries (genesis_lib_shared PUBLIC OpenMP::OpenMP_CXX)
)limits
andcstddef
(definingsize_t
) that made the non-unity (release) build failKnown issues: In my environment (Appleclang 13.0.0 + homebrew libomp), the compile causes a segfault in clang. I narrowed it down to the use of
#pragma omp critical
inrf.cpp
. It seems to be a known issue: https://github.com/llvm/llvm-project/issues/52714 I made sure to check that homebrew's libomp is compatible with ARM64, which appears to be the case:In fact it's the omp lib from llvm themselves, and the version suggests its the correct one for the clang version.
Everything compiles fine under GCC/G++