On 02/10/15 00:05, Ludovic Courtès wrote:
Vsearch fails to build on platforms other than x86_64 (see
<http://hydra.gnu.org/build/703292/nixlog/2/raw>):

--8<---------------cut here---------------start------------->8---
In file included from 
/gnu/store/r0p8d0a3n2zlkj1l5a9xv368yhbgc5bh-gcc-4.9.3-lib/lib/gcc/i686-unknown-linux-gnu/4.9.3/include/xmmintrin.h:1258:0,
                  from 
/gnu/store/r0p8d0a3n2zlkj1l5a9xv368yhbgc5bh-gcc-4.9.3-lib/lib/gcc/i686-unknown-linux-gnu/4.9.3/include/x86intrin.h:31,
                  from vsearch.h:69,
                  from align_simd.cc:61:
/gnu/store/r0p8d0a3n2zlkj1l5a9xv368yhbgc5bh-gcc-4.9.3-lib/lib/gcc/i686-unknown-linux-gnu/4.9.3/include/emmintrin.h:686:1:
 error: inlining failed in call to always_inline ‘__m128i 
_mm_load_si128(const __m128i*)’: target specific option mismatch
  _mm_load_si128 (__m128i const *__P)
  ^
align_simd.cc:204:71: error: called from here
        xmm1  = _mm_load_si128((__m128i*)(score_matrix_word + d[1] + i));
--8<---------------cut here---------------end--------------->8---

My impression is that the code unconditionally uses SSE, meaning that it
works only on x86_64.

Could you investigate a bit?  If that is the case, could you send a
patch that adds:

   (supported-platforms '("x86_64-linux"))

with a comment explaining why?
I think you are right, I have attached the patch.

I also noticed that the license definition was changed from the first patch applied, removing the public-domain license i.e. from

+    (license (list license:gpl3 license:bsd-2 license:public-domain))))

to

+    (license (list license:gpl3 license:bsd-2))))

Of course you know what you are doing, I just wanted to check because this changed between the patches I submitted for 1.4.0 and 1.4.1.

Thanks,
ben
>From 28497af997b07a57ce6006b19c50a467a4f3907f Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrust...@gmail.com>
Date: Sat, 3 Oct 2015 11:46:22 +1000
Subject: [PATCH] gnu: vsearch: Restrict supported systems to x86_64-linux

* gnu/packages/bioinformatics.scm (vsearch): Restrict supported systems.
---
 gnu/packages/bioinformatics.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index b04c288..a3619be 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -2766,6 +2766,9 @@ vectorization as well as multiple threads to perform accurate alignments at
 high speed.  VSEARCH uses an optimal global aligner (full dynamic programming
 Needleman-Wunsch).")
     (home-page "https://github.com/torognes/vsearch";)
+    ;; vsearch uses non-portable SSE instrinsics so building fails on other
+    ;; platforms.
+    (supported-systems '("x86_64-linux"))
     ;; Dual licensed; also includes public domain source.
     (license (list license:gpl3 license:bsd-2))))
 
-- 
2.4.3

Reply via email to