Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Question] Is Linux ARM64 supported ? #60

Open
gancho-ivanov opened this issue Jul 18, 2022 · 4 comments
Open

[Question] Is Linux ARM64 supported ? #60

gancho-ivanov opened this issue Jul 18, 2022 · 4 comments

Comments

@gancho-ivanov
Copy link

Hi,

Is ARM64 architecture supported ? Linux and/or MacOS ?

I am trying to build the project on Ubuntu 20.04 ARM64 but it fails with:

mkdir bin
g++ -fstack-protector-all -Wall -DVERSION=\"v1.7.0-311-g4e8c-dirty\" -std=c++0x -Wno-sign-compare -O3 -Isrc/lib -Isrc/bamtools/include -Isrc/bamtools/src -Isrc/ -Isrc/fastahack -Isrc/Complete-Striped-Smith-Waterman-Library/src/ -fopenmp -lz -lm -c -o src/obj/entropy.o src/lib/entropy.cpp
g++ -fstack-protector-all -Wall -DVERSION=\"v1.7.0-311-g4e8c-dirty\" -std=c++0x -Wno-sign-compare -O3 -Isrc/lib -Isrc/bamtools/include -Isrc/bamtools/src -Isrc/ -Isrc/fastahack -Isrc/Complete-Striped-Smith-Waterman-Library/src/ -fopenmp -lz -lm -c -o src/obj/flag.o src/lib/flag.cpp
g++ -fstack-protector-all -Wall -DVERSION=\"v1.7.0-311-g4e8c-dirty\" -std=c++0x -Wno-sign-compare -O3 -Isrc/lib -Isrc/bamtools/include -Isrc/bamtools/src -Isrc/ -Isrc/fastahack -Isrc/Complete-Striped-Smith-Waterman-Library/src/ -fopenmp -lz -lm -c -o src/obj/read_pileup.o src/lib/read_pileup.cpp
g++ -fstack-protector-all -Wall -DVERSION=\"v1.7.0-311-g4e8c-dirty\" -std=c++0x -Wno-sign-compare -O3 -Isrc/lib -Isrc/bamtools/include -Isrc/bamtools/src -Isrc/ -Isrc/fastahack -Isrc/Complete-Striped-Smith-Waterman-Library/src/ -fopenmp -lz -lm -c -o src/obj/readPileUp.o src/lib/readPileUp.cpp
g++ -fstack-protector-all -Wall -DVERSION=\"v1.7.0-311-g4e8c-dirty\" -std=c++0x -Wno-sign-compare -O3 -Isrc/lib -Isrc/bamtools/include -Isrc/bamtools/src -Isrc/ -Isrc/fastahack -Isrc/Complete-Striped-Smith-Waterman-Library/src/ -fopenmp -lz -lm -c -o src/obj/split.o src/lib/split.cpp
cd src/Complete-Striped-Smith-Waterman-Library/src && make
make[1]: Entering directory '/home/gancho/git/wham/src/Complete-Striped-Smith-Waterman-Library/src'
gcc -c -o ssw.o ssw.c -Wall -O3 -pipe 
ssw.c:38:10: fatal error: emmintrin.h: No such file or directory
 #include <emmintrin.h>
          ^~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:47: ssw.o] Error 1
make[1]: Leaving directory '/home/gancho/git/wham/src/Complete-Striped-Smith-Waterman-Library/src'
make: *** [Makefile:29: src/Complete-Striped-Smith-Waterman-Library/src/ssw_cpp.o] Error 2

emmintrin.h could be used only on x86_64 when SSE is available.

@gancho-ivanov
Copy link
Author

Hm!
mengyao/Complete-Striped-Smith-Waterman-Library@e2c7ccc#diff-ccfb8f3b7607fe494fe5c37a7db56e59cbcef2e76182dc9f8e3e4522e3984c4e added support for SSE2/NEON, but git submodule update checks out commit 8c9933a1685e0ab50c7d8b7926c9068bc0c9d7d2 from https://github.com/mengyao/Complete-Striped-Smith-Waterman-Library which is 7 years old ...

I don't see/understand why it checks out this particular version.

wham/.gitmodules

Lines 7 to 9 in 4e8c9be

[submodule "src/Complete-Striped-Smith-Waterman-Library"]
path = src/Complete-Striped-Smith-Waterman-Library
url = https://github.com/mengyao/Complete-Striped-Smith-Waterman-Library.git
does not specify any revision.

@gancho-ivanov
Copy link
Author

I've updated manually the submodule (cd src/Complete-Striped-Smith-Waterman-Library; git pull --rebase origin master) and now the new problem is:

src/Complete-Striped-Smith-Waterman-Library/src/ssw_cpp.h:156:8: note:   candidate expects 6 arguments, 5 provided
src/bin/wham.cpp:2201:89: error: no matching function for call to ‘StripedSmithWaterman::Aligner::Align(const char*, const char*, std::__cxx11::basic_string<char>::size_type, StripedSmithWaterman::Filter&, StripedSmithWaterman::Alignment*)’
   aligner.Align(altSeq.c_str(), endChunk.c_str(), endChunk.size(), filter, &alignmentEnd);
                                                                                         ^
In file included from src/bin/wham.cpp:11:0:
src/Complete-Striped-Smith-Waterman-Library/src/ssw_cpp.h:139:8: note: candidate: bool StripedSmithWaterman::Aligner::Align(const char*, const StripedSmithWaterman::Filter&, StripedSmithWaterman::Alignment*, int32_t) const
   bool Align(const char* query, const Filter& filter, Alignment* alignment, const int32_t maskLen) const;
        ^~~~~
src/Complete-Striped-Smith-Waterman-Library/src/ssw_cpp.h:139:8: note:   candidate expects 4 arguments, 5 provided
src/Complete-Striped-Smith-Waterman-Library/src/ssw_cpp.h:156:8: note: candidate: bool StripedSmithWaterman::Aligner::Align(const char*, const char*, const int&, const StripedSmithWaterman::Filter&, StripedSmithWaterman::Alignment*, int32_t) const
   bool Align(const char* query, const char* ref, const int& ref_len,
        ^~~~~
src/Complete-Striped-Smith-Waterman-Library/src/ssw_cpp.h:156:8: note:   candidate expects 6 arguments, 5 provided

Any help is welcome!

@julien-faye
Copy link

I could try to add support for Neon (ARM64) if there is interest in the community!
But the project seems abandoned since 2017 and I am not sure whether such contribution would ever be merged and released.

@zeeev
Copy link
Owner

zeeev commented Dec 1, 2022

Hi @julien-faye not completely abandoned; just busy doing other things. AFAIK Whamg is still being used in best-in-class ensemble pipelines.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants