[Debian-med-packaging] Bug#972004: Assembly code not working for mips64el and ppc64el (Was: Bug#972004: bowtie ftbfs on several release architectures)
Andreas Tille
tille at debian.org
Mon Oct 12 16:56:38 BST 2020
Control: reopen -a
Control: tags -1 help
On Mon, Oct 12, 2020 at 02:50:41PM +0500, Andrey Rahmatullin wrote:
> > while I've fixed the issue for arm64 the new version of bowtie seems to
> > have some new assembly code where mips64el, ppc64el and others are
> > stumbling upon [1]:
> The reason it works on arm64 is
>
> ifeq (aarch64,$(shell uname -m))
> POPCNT_CAPABILITY=0
> endif
>
> in Makefile. It's clearly not supposed to run on anything else non-Intel
> but you can try patching this to also disable popcnt on other non-Intel.
My patch [1] worked for ppc64el and s390x. However for arm64 (and others)
a new build error occures:
...
In file included from ebwt_build.cpp:8:
ds.h: In function ‘void mkeyQSortSuf2(const T&, size_t, TIndexOffU*, size_t, TIndexOffU*, int, size_t, size_t, size_t, size_t, EList<long unsigned int>*) [with T = S2bDnaString]’:
ds.h:497:3: warning: ‘tmp2’ may be used uninitialized in this function [-Wmaybe-uninitialized]
497 | list_[cur_++] = el;
| ^~~~~
ds.h:497:3: warning: ‘tmp3’ may be used uninitialized in this function [-Wmaybe-uninitialized]
497 | list_[cur_++] = el;
| ^~~~~
ds.h:497:3: warning: ‘tmp4’ may be used uninitialized in this function [-Wmaybe-uninitialized]
497 | list_[cur_++] = el;
| ^~~~~
In file included from processor_support.h:17,
from ebwt.h:41,
from ebwt_build.cpp:10:
third_party/cpuid.h: In constructor ‘Ebwt::Ebwt(TStr, bool, int32_t, int32_t, int32_t, int32_t, int32_t, int, const string&, bool, bool, TIndexOffU, TIndexOffU, TIndexOffU, int, EList<FileBuf*>&, EList<RefRecord>&, EList<unsigned int>&, TIndexOffU, const RefReadInParams&, uint32_t, int32_t, int32_t, bool, bool, bool, bool) [with TStr = S2bDnaString]’:
third_party/cpuid.h:103:3: error: impossible constraint in ‘asm’
103 | __asm__ ("cpuid\n\t" \
| ^~~~~~~
third_party/cpuid.h:162:3: note: in expansion of macro ‘__cpuid’
162 | __cpuid (__ext, __eax, __ebx, __ecx, __edx);
| ^~~~~~~
third_party/cpuid.h:103:3: error: impossible constraint in ‘asm’
103 | __asm__ ("cpuid\n\t" \
| ^~~~~~~
third_party/cpuid.h:185:3: note: in expansion of macro ‘__cpuid’
185 | __cpuid (__level, *__eax, *__ebx, *__ecx, *__edx);
| ^~~~~~~
In file included from ebwt_build.cpp:8:
...
Any idea how to deal with this?
Kind regards
Andreas.
[1] https://salsa.debian.org/med-team/bowtie/-/blob/master/debian/patches/popcnt_capability.patch
--
http://fam-tille.de
More information about the Debian-med-packaging
mailing list