This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Compiling BWA on POWER7

Lately I've tried compiling the latest version of bwa on github in CentOS 7.2 on ppc64 but I get stuck on an x86_64 dependency (emmintrin.h). I found that this header file is specific to SSE2 instructions on x86 machines.

Roughly 2 years ago I was able to compile bwa on my PowerMac G5 so I'm not sure what changed since then that made bwa require x86_64.

software error bwa

This is probably something worth asking on the bwa mailing list, possibly combined w/ tagging this report with 'bwa'

Ah yes, didn't realize this pings someone :)

3 answers

It doesn't compile for AArch64 either, but can be made to run by replacing 'emmintrin.h' with another header file 'SSE2NEON.h' (https://github.com/jratcliff63367/sse2neon/blob/master/SSE2NEON.h).

Could you please post the details working with SSE2NEON.h? Thanks.

Perhaps you can try to disable SSE2, but it might not be enough. In the thread linked above I wrote that it solved building on non-AMD64 platforms, but the problem came back some time between version 0.6.2 and 0.7.5a.

Sorry I'm not too familiar with using options with gcc. How exactly would I use the "-D_NO_SSE2" argument?

I think that you can pass this option directly to GCC in the command line. You can also do this by adding the option to the line defining DFLAGS in the Makefile.

Thanks! I gave it a try but it looks like bwa really needs the emmintrin.h header file.

UPDATE:

I found a workaround with from a pull request waiting to get merged. https://github.com/lh3/bwa/pull/71#issuecomment-232170671

The issue appears to be related to the klib dependency for their Smith-Waterman algorithm implementation.

Log in to answer this question.