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