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