Your message dated Sun, 11 Dec 2016 15:48:21 +0000
with message-id <[email protected]>
and subject line Bug#847574: fixed in abyss 2.0.2-2
has caused the Debian Bug report #847574,
regarding abyss: FTBFS on mips and other big-endian architectures
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
847574: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=847574
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: abyss
Version: 2.0.2-1
Severity: important
Tags: sid + patch
Justification: FTBFS
User: [email protected]
Usertags: mips-patch
Forwarded: https://github.com/bcgsc/abyss/pull/139
Hi,
Package abyss FTBFS on mips and other big-endian architectures with followind
error:
> Kmer.cpp: In function 'Seq load(const uint8_t*)':
> Kmer.cpp:193:14: error: 'SEQ_WORDS' was not declared in this scope
> copy(s, s + SEQ_WORDS, reverse_iterator<uint64_t*>(d));
> ^~~~~~~~~
> Kmer.cpp: In function 'void storeReverse(uint8_t*, Seq)':
> Kmer.cpp:239:14: error: 'SEQ_WORDS' was not declared in this scope
> copy(s, s + SEQ_WORDS,
^~~~~~~~~
build log:
https://buildd.debian.org/status/fetch.php?pkg=abyss&arch=mips&ver=2.0.2-1&stamp=1478005755
After adding the missing SEQ_WORDS define for big-endian the build passed,
but the following tests failed:
> FAIL: common_kmer
> FAIL: BloomFilter
> FAIL: Konnector_DBGBloomAlgorithms
> FAIL: Konnector_konnector
> FAIL: PairedDBG_LoadAlgorithm
> FAIL: PairedDBG_KmerPair
Comparison of values returned by load and storeReverse methods between mipsel
and mips showed that the data contained in variable seq (type of std::bitset) is
in wrong byte order.
Conversion of arrays bigger than architecture's word size into bitset is working
by going sequentially through memory and converting the values into binary word
by word. It does not care about endianness.
So, on 32bit big-endian architectures the conversion must be done in 32bit
chunks and every chunk must be copied in reverse byte order.
The existing code in load and storeReverse methods was suitable for 64bit
big-endian architectures, it copies 64bit chunks of the array in reverse order.
The attached patch fixes the conversion of array to bitset (and vice versa) by
changing the uint64_t type to size_t in load and storeReverse methods.
This enables to use the same code on 32 and 64 bit architectures.
With this patch I was able to build abyss successfully on mips. This patch was
successfully tested on 64bit big-endian mips too.
Thanks,
Daniel
--- abyss-2.0.2.orig/Common/Kmer.cpp
+++ abyss-2.0.2/Common/Kmer.cpp
@@ -188,9 +188,9 @@ static Seq load(const uint8_t *src)
Seq seq;
#if MAX_KMER > 96
# if WORDS_BIGENDIAN
- const uint64_t *s = reinterpret_cast<const uint64_t*>(src);
- uint64_t *d = reinterpret_cast<uint64_t*>(&seq + 1);
- copy(s, s + SEQ_WORDS, reverse_iterator<uint64_t*>(d));
+ const size_t *s = reinterpret_cast<const size_t*>(src);
+ size_t *d = reinterpret_cast<size_t*>(&seq + 1);
+ copy(s, s + Kmer::NUM_BYTES/sizeof(size_t), reverse_iterator<size_t*>(d));
# else
uint8_t *d = reinterpret_cast<uint8_t*>(&seq);
memcpy(d, src, sizeof seq);
@@ -234,10 +234,10 @@ static void storeReverse(uint8_t *dest,
{
#if MAX_KMER > 96
# if WORDS_BIGENDIAN
- const uint64_t *s = reinterpret_cast<const uint64_t*>(&seq);
- uint64_t *d = reinterpret_cast<uint64_t*>(dest);
- copy(s, s + SEQ_WORDS,
- reverse_iterator<uint64_t*>(d + SEQ_WORDS));
+ const size_t *s = reinterpret_cast<const size_t*>(&seq);
+ size_t *d = reinterpret_cast<size_t*>(dest);
+ copy(s, s + Kmer::NUM_BYTES/sizeof(size_t),
+ reverse_iterator<size_t*>(d + Kmer::NUM_BYTES/sizeof(size_t)));
reverse(dest, dest + Kmer::NUM_BYTES);
# else
memcpy(dest, &seq, Kmer::NUM_BYTES);
--- End Message ---
--- Begin Message ---
Source: abyss
Source-Version: 2.0.2-2
We believe that the bug you reported is fixed in the latest version of
abyss, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Andreas Tille <[email protected]> (supplier of updated abyss package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.8
Date: Sun, 11 Dec 2016 14:24:34 +0100
Source: abyss
Binary: abyss
Architecture: source
Version: 2.0.2-2
Distribution: unstable
Urgency: medium
Maintainer: Debian Med Packaging Team
<[email protected]>
Changed-By: Andreas Tille <[email protected]>
Description:
abyss - de novo, parallel, sequence assembler for short reads
Closes: 847574
Changes:
abyss (2.0.2-2) unstable; urgency=medium
.
* FTBFS on mips and other big-endian architectures (Thanks for the patch
to Daniel Knezevic <[email protected]>)
Closes: #847574
* debhelper 10
* d/watch: version=4
Checksums-Sha1:
9aa24f0d4eb04aad199a983a2e8734f18c79d50c 2083 abyss_2.0.2-2.dsc
7f36ff820a073d29190f8baeb66113a7e8a8aad6 8448 abyss_2.0.2-2.debian.tar.xz
Checksums-Sha256:
ca3ccc765f140f54b0c86e9ec99718eb5cf090f76de05f70dabb21fa3f8f63cf 2083
abyss_2.0.2-2.dsc
f71b9560867e85bee557d756f1baef7da00dacfa2e0b28c38b86b9e041e1ab0a 8448
abyss_2.0.2-2.debian.tar.xz
Files:
45ccd25d97422ae9a6db7bd8ac5f4f26 2083 science optional abyss_2.0.2-2.dsc
a51de01380b1162c74831fc00fa96e87 8448 science optional
abyss_2.0.2-2.debian.tar.xz
-----BEGIN PGP SIGNATURE-----
iQJFBAEBCAAvFiEE8fAHMgoDVUHwpmPKV4oElNHGRtEFAlhNb2wRHHRpbGxlQGRl
Ymlhbi5vcmcACgkQV4oElNHGRtGVsw//TkxaDRpG1vEN/rILif22HEVByKsJTwpG
WmC9hHWwPRdi3iwGUYREPFnoHecAXncbJ513q4hI9SA9egHkNG38iaejMUtP+Ta6
wRBtHSXeHUX4nkoVONOj+IC5kpVCsY0S+ga4MDgTYZy6oUGPPWOvyATH6ixRxUdi
psSOBHkyr6FfNoV21aAiJD0WM04GaHbvxWHcox4Lc5tLvCcA8rnGHD0Fx844c2cs
5CfHG7RsSUmtl2uYiEJZIxnQxE7fT0Ux821zTykPe45dcGgrrOPGFdkGIwigsVkA
ozwVF1oFq3ALd5CdoFTy3VosKT/l+t9aFNsc8JcYo6MY8uWnZ7W08V+0SS6Y5j/d
nEU+axirnr86x4Hq7ciNkbFiQ9lVpGCoubC8RKobh83Ooi+8X1IW4DTEh6ng6OE/
nx02i1izveIkFc23WTImfyKLqtQQ8y1hj5RGyjlihFRCo2+s9IGnCuvJ3bmO6/H4
1mbyVMcKh2Z/TZydUQjj+TCb9UAv5ipG/PF+saGf0XjxbGsQA7GxH6PCPkgKdGWH
Oo4yv04Tr9E7e91w6juh7G7ylXFk19L4iXeKzRmQ52qFiYF2tV1Vr/WlZT8vc2zk
MmzTQpRT1QKhjAYk69Larp3GWYOQKj4TviJAj+eY7zWGPa2eY6vVFZgTR4Cowz85
/QrAn4498Wo=
=6djq
-----END PGP SIGNATURE-----
--- End Message ---