COMBINE-lab / pufferfish

An efficient index for the colored, compacted, de Bruijn graph
GNU General Public License v3.0
107 stars 19 forks source link

Fails to compile on IBM Power architecture (ppc64le) #47

Open jblachly opened 10 months ago

jblachly commented 10 months ago

While trying to compile https://github.com/COMBINE-lab/salmon on an IBM Power system, compilation fails during the pufferfish build phase because of SSE flags passed to the compiler for constituent ksw2pp:

236.4 Scanning dependencies of target ksw2pp_sse4
236.4 [ 40%] Building C object external/pufferfish/src/CMakeFiles/ksw2pp_sse4.dir/ksw2pp/ksw2_extd2_sse.c.o
236.4 cc: error: unrecognized command line option '-msse'
236.4 cc: error: unrecognized command line option '-msse2'
236.4 cc: error: unrecognized command line option '-msse3'
236.4 cc: error: unrecognized command line option '-mssse3'
236.4 cc: error: unrecognized command line option '-msse4'
236.4 cc: error: unrecognized command line option '-msse4.1'
236.4 make[2]: *** [external/pufferfish/src/CMakeFiles/ksw2pp_sse4.dir/build.make:63: external/pufferfish/src/CMakeFiles/ksw2pp_sse4.dir/ksw2pp/ksw2_extd2_sse.c.o] Error 1
236.4 make[1]: *** [CMakeFiles/Makefile2:484: external/pufferfish/src/CMakeFiles/ksw2pp_sse4.dir/all] Error 2
236.4 make: *** [Makefile:163: all] Error 2

Obviously, -msse flags are not meaningful on non-AMD architectures (I don't have an ARM platform handy to test whether gcc pukes on this arch as well but presumably it does). I'm not sure whether -march=native is important here or not.

I see that Pufferish can be built for both amd64 and arm64 architectures, so presumably there should be a way around this, but I am not seeing it. Please let me know if you have ideas and if successful, I"ll try to submit a PR to broaden support if I can get it working. Normally I would troubleshoot this myself, but the use heavy use of intrinsics in this library has me stumped.

Kind regards