After following the install instructions and running make, I get the following:
(base) josesho@joses-mac-mini build % make
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/josesho/git-repos/tachyon/build
Consolidate compiler generated dependencies of target Utils
[ 4%] Building CXX object CMakeFiles/Utils.dir/Utils/Source/FastaFileUtils.cpp.o
clang: error: the clang compiler does not support '-march=native'
make[2]: *** [CMakeFiles/Utils.dir/Utils/Source/FastaFileUtils.cpp.o] Error 1
make[1]: *** [CMakeFiles/Utils.dir/all] Error 2
make: *** [all] Error 2
Removing the line -march=native from CMakeLists.txt produces the following instead:
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/josesho/git-repos/tachyon/build
Consolidate compiler generated dependencies of target Utils
[ 4%] Building CXX object CMakeFiles/Utils.dir/Utils/Source/FastaFileUtils.cpp.o
[ 8%] Building CXX object CMakeFiles/Utils.dir/Utils/Source/Logger.cpp.o
[ 12%] Building CXX object CMakeFiles/Utils.dir/Utils/Source/StringStream.cpp.o
[ 16%] Building CXX object CMakeFiles/Utils.dir/Utils/Source/Seg.cpp.o
[ 20%] Building CXX object CMakeFiles/Utils.dir/Utils/Source/Timer.cpp.o
[ 25%] Building CXX object CMakeFiles/Utils.dir/Utils/Source/BinaryStream.cpp.o
[ 29%] Building CXX object CMakeFiles/Utils.dir/Utils/Source/DNATranslator.cpp.o
[ 33%] Linking CXX static library libUtils.a
[ 33%] Built target Utils
Consolidate compiler generated dependencies of target Aligner
[ 37%] Building CXX object CMakeFiles/Aligner.dir/Aligner/Source/Aligner.cpp.o
[ 41%] Building CXX object CMakeFiles/Aligner.dir/Aligner/Source/EValue.cpp.o
[ 45%] Building CXX object CMakeFiles/Aligner.dir/Aligner/Source/Opal/opal.cpp.o
In file included from /Users/josesho/git-repos/tachyon/Aligner/Source/Opal/opal.cpp:9:
In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/immintrin.h:15:
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:33:5: error: use of undeclared identifier '__builtin_ia32_emms'; did you mean '__builtin_isless'?
__builtin_ia32_emms();
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:33:5: note: '__builtin_isless' declared here
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:33:25: error: too few arguments to function call, expected 2, have 0
__builtin_ia32_emms();
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:50:19: error: use of undeclared identifier '__builtin_ia32_vec_init_v2si'
return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:67:12: error: use of undeclared identifier '__builtin_ia32_vec_ext_v2si'
return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:129:19: error: use of undeclared identifier '__builtin_ia32_packsswb'
return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:159:19: error: use of undeclared identifier '__builtin_ia32_packssdw'
return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:189:19: error: use of undeclared identifier '__builtin_ia32_packuswb'
return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:216:19: error: use of undeclared identifier '__builtin_ia32_punpckhbw'
return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:239:19: error: use of undeclared identifier '__builtin_ia32_punpckhwd'
return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:260:19: error: use of undeclared identifier '__builtin_ia32_punpckhdq'
return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:287:19: error: use of undeclared identifier '__builtin_ia32_punpcklbw'
return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:310:19: error: use of undeclared identifier '__builtin_ia32_punpcklwd'
return (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:331:19: error: use of undeclared identifier '__builtin_ia32_punpckldq'
return (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:352:19: error: use of undeclared identifier '__builtin_ia32_paddb'; did you mean '__builtin_arm_addg'?
return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:352:19: note: '__builtin_arm_addg' declared here
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:352:19: error: first argument of MTE builtin function must be a pointer ('__v8qi' (vector of 8 'char' values) invalid)
return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2);
^ ~~~~~~~~~~~~
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:373:19: error: use of undeclared identifier '__builtin_ia32_paddw'; did you mean '__builtin_arm_addg'?
return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:352:19: note: '__builtin_arm_addg' declared here
return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:373:19: error: first argument of MTE builtin function must be a pointer ('__v4hi' (vector of 4 'short' values) invalid)
return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2);
^ ~~~~~~~~~~~~
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:394:19: error: use of undeclared identifier '__builtin_ia32_paddd'; did you mean '__builtin_arm_addg'?
return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:352:19: note: '__builtin_arm_addg' declared here
return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2);
^
/Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:394:19: error: first argument of MTE builtin function must be a pointer ('__v2si' (vector of 2 'int' values) invalid)
return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2);
^ ~~~~~~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
The issue is exactly the same if I switch from an arm64 architecture to Intel with
env /usr/bin/arch -x86_64 /bin/zsh --login
Hi,
many thanks for your report.
Opal library is used for SW alignment in Tachyon and it uses Intel SIMD vectorization. That's why you can't compile on your ARM-based M1 Mac mini.
I will try to fix it as soon as possible.
Hi,
I am running a 2020 M1 Mac Mini.
After following the install instructions and running
make
, I get the following:Removing the line
-march=native
fromCMakeLists.txt
produces the following instead:The issue is exactly the same if I switch from an arm64 architecture to Intel with
env /usr/bin/arch -x86_64 /bin/zsh --login
Any help is appreciated!
Joses