Hello Gui-Yue, On Sat, 2025-03-08 at 23:54 +0800, Yue Gui wrote: > Dear diamond-aligner maintainer, > The package diamond-aligner build failed on riscv64.The crucial buildd log > below: > ``` > /build/reproducible-path/diamond-aligner-2.1.11/src/search/finger_print.h: In > constructor ‘Byte_finger_print_48::Byte_finger_print_48(const Letter*)’: > /build/reproducible-path/diamond-aligner-2.1.11/src/search/finger_print.h:138:17: > error: ‘memcpy’ was not declared in this scope > 138 | memcpy(r, q - 16, 48); > | ^~~~~~ > /build/reproducible-path/diamond-aligner-2.1.11/src/search/finger_print.h:26:1: > note: ‘memcpy’ is defined in header ‘<cstring>’; this is probably fixable by > adding ‘#include <cstring>’ > 25 | #include "basic/value.h" > +++ |+#include <cstring> > 26 | > At global scope: > cc1plus: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ > may have been intended to silence earlier diagnostics > make[3]: *** [CMakeFiles/arch_generic.dir/build.make:96: > CMakeFiles/arch_generic.dir/src/search/stage1_2.cpp.o] Error 1 > make[3]: *** Waiting for unfinished jobs.... > In file included from /usr/include/c++/14/list:62, > from > /build/reproducible-path/diamond-aligner-2.1.11/src/dp/swipe/swipe_wrapper.cpp:22: > In function ‘typename __gnu_cxx::__enable_if<std::__is_scalar<_Tp>::__value, > void>::__type std::__fill_a1(_ForwardIterator, _ForwardIterator, const _Tp&) > [with _ForwardIterator = int*; _Tp = int]’, > inlined from ‘void std::__fill_a(_FIte, _FIte, const _Tp&) [with _FIte = > int*; _Tp = int]’ at /usr/include/c++/14/bits/stl_algobase.h:998:21, > inlined from ‘void std::fill(_ForwardIterator, _ForwardIterator, const > _Tp&) [with _ForwardIterator = int*; _Tp = int]’ at > /usr/include/c++/14/bits/stl_algobase.h:1029:20, > inlined from ‘DP::Swipe::ARCH_GENERIC::Matrix<Sv>::Matrix(int, int) [with > Sv = int]’ at > /build/reproducible-path/diamond-aligner-2.1.11/src/dp/swipe/full_matrix.h:66:12: > /usr/include/c++/14/bits/stl_algobase.h:952:18: warning: ‘void* > __builtin_memset(void*, int, long unsigned int)’ specified bound > 18446744073709551612 exceeds maximum object size 9223372036854775807 > [-Wstringop-overflow=] > 952 | *__first = __tmp; > | ~~~~~~~~~^~~~~~~ > At global scope: > cc1plus: note: unrecognized command-line option ‘-Wno-unknown-warning-option’ > may have been intended to silence earlier diagnostics > make[3]: Leaving directory > '/build/reproducible-path/diamond-aligner-2.1.11/obj-riscv64-linux-gnu' > make[2]: *** [CMakeFiles/Makefile2:93: CMakeFiles/arch_generic.dir/all] Error > 2 > make[2]: Leaving directory > '/build/reproducible-path/diamond-aligner-2.1.11/obj-riscv64-linux-gnu' > make[1]: *** [Makefile:149: all] Error 2 > make[1]: Leaving directory > '/build/reproducible-path/diamond-aligner-2.1.11/obj-riscv64-linux-gnu' > dh_auto_build: error: cd obj-riscv64-linux-gnu && make -j4 "INSTALL=install > --strip-program=true" VERBOSE=1 returned exit code 2 > make: *** [debian/rules:16: binary-arch] Error 25 > dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit > status 2 > ``` > The full buildd log is here: > https://buildd.debian.org/status/fetch.php?pkg=diamond-aligner&arch=riscv64&ver=2.1.11-1&stamp=1741409747&raw=0 > My solution to this issue: > This issue occurs because the memcpy function is defined in the <cstring> > header file, but the code does not include this header. Therefore, it can be > resolved by adding #include <cstring>.I have tested this locally,and it works > well.The debpatch is in the attachment.Please let me know whether this > solution can be accepted.
This should probably be upstreamed and doesn't look like a riscv64-exclusive bug. See: https://github.com/bbuchfink/diamond Can you repor the issue upstream? Thanks, Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913