This prevents the use of the symbol "__cpu_model", which doesn't work correctly, for "numpy" purposes, as of LLVM 8. --- numpy-1.16.4.old/numpy/core/setup_common.py +++ numpy-1.16.4/numpy/core/setup_common.py @@ -135,8 +135,8 @@ ("__builtin_expect", '5, 0'), ("__builtin_mul_overflow", '5, 5, (int*)5'), # broken on OSX 10.11, make sure its not optimized away - ("volatile int r = __builtin_cpu_supports", '"sse"', - "stdio.h", "__BUILTIN_CPU_SUPPORTS"), +# ("volatile int r = __builtin_cpu_supports", '"sse"', +# "stdio.h", "__BUILTIN_CPU_SUPPORTS"), # MMX only needed for icc, but some clangs don't have it ("_m_from_int64", '0', "emmintrin.h"), ("_mm_load_ps", '(float*)0', "xmmintrin.h"), # SSE