Source: diamond-aligner Version: 2.1.11-1 Severity: serious Tags: FTBFS, patch User: debian-ri...@lists.debian.org Usertags: riscv64 X-Debbugs-Cc: debian-ri...@lists.debian.org
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. Gui-Yue Best Regards
fix_diamond-aligner_missing_cstring.patch
Description: Binary data