[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