Bug#934619: libmaus2 FTBFS (mostly 32bit): error: no matching function for call
Followup-For: Bug #934619 Control: severity -1 normal The outdated 32-bit binaries have been removed from the archive, so this is no longer a regression. Andreas
Bug#934619: libmaus2 FTBFS (mostly 32bit): error: no matching function for call
Control: tags -1 help Control: tags -1 upstream Control: forwarded -1 https://gitlab.com/german.tischler/libmaus2/issues/30 Hi, I've tried to build the latest upstream version but it also has issues for 32bit architectures: g++ -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wdate-time -D_FORTIFY_SOURCE=2 -W -Wall -Wnon-virtual-dtor -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -O3 -std=gnu++0x -pthread -fopenmp -c -o test/testmapperm-testmapperm.o `test -f 'test/testmapperm.cpp' || echo './'`test/testmapperm.cpp In file included from test/testparallelbamblocksort.cpp:19: ./libmaus2/bambam/parallel/BlockMergeControl.hpp: In instantiation of ‘void libmaus2::bambam::parallel::BlockMergeControl<_heap_element_type>::enqueHeader() [with _heap_element_type = libmaus2::bambam::parallel::GenericInputControlMergeHeapEntryQueryName]’: ./libmaus2/bambam/parallel/BlockMergeControl.hpp:571:6: required from ‘libmaus2::bambam::parallel::BlockMergeControl<_heap_element_type>::BlockMergeControl(libmaus2::parallel::SimpleThreadPool&, std::ostream&, libmaus2::autoarray::AutoArray&, const std::vector&, libmaus2::bitio::BitVector*, int, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, const string&, const string&, libmaus2::digest::DigestInterface*, libmaus2::bambam::parallel::BlockMergeControlTypeBase::block_merge_output_format_t, bool, bool, bool, uint64_t) [with _heap_element_type = libmaus2::bambam::parallel::GenericInputControlMergeHeapEntryQueryName; std::ostream = std::basic_ostream; libmaus2::bitio::BitVector = libmaus2::bitio::BitVectorTemplate; uint64_t = long long unsigned int; std::string = std::__cxx11::basic_string]’ test/testparallelbamblocksort.cpp:216:68: required from ‘int parallelbamblocksort(const libmaus2::util::ArgInfo&, bool, bool, const string&, bool) [with order_type = libmaus2::bambam::parallel::FragmentAlignmentBufferQueryNameComparator; heap_element_type = libmaus2::bambam::parallel::GenericInputControlMergeHeapEntryQueryName; bool create_dup_mark_info = false; std::string = std::__cxx11::basic_string]’ test/testparallelbamblocksort.cpp:259:4: required from here ./libmaus2/bambam/parallel/BlockMergeControl.hpp:346:92: error: cannot convert ‘’ to ‘cram_data_write_function_t’ {aka ‘void (*)(void*, int, unsigned int, const char*, unsigned int, _cram_data_write_block_type)’} 346 |samsupport.context = sam_allocate_encoder(this,ptext.first,ptext.second-ptext.first,sam_data_write_function); | ^~~ | | | ./libmaus2/bambam/parallel/BlockMergeControl.hpp:1264:33: note: initializing argument 4 of ‘static void* libmaus2::bambam::parallel::BlockMergeControl<_heap_element_type>::sam_allocate_encoder(void*, const char*, size_t, cram_data_write_function_t) [with _heap_element_type = libmaus2::bambam::parallel::GenericInputControlMergeHeapEntryQueryName; size_t = unsigned int; cram_data_write_function_t = void (*)(void*, int, unsigned int, const char*, unsigned int, _cram_data_write_block_type); ssize_t = int; cram_data_write_block_type = _cram_data_write_block_type]’ 1264 | cram_data_write_function_t write_func | ~~~^~ ./libmaus2/bambam/parallel/BlockMergeControl.hpp:364:94: error: cannot convert ‘’ to ‘cram_data_write_function_t’ {aka ‘void (*)(void*, int, unsigned int, const char*, unsigned int, _cram_data_write_block_type)’} 364 |cramsupport.context = cram_allocate_encoder(this,ptext.first,ptext.second-ptext.first,sam_data_write_function); | ^~~ | | | ./libmaus2/bambam/parallel/BlockMergeControl.hpp:428:124: note: initializing argument 4 of ‘void* libmaus2::bambam::parallel::BlockMergeControl<_heap_element_type>::cram_allocate_encoder(void*, const char*, size_t, cram_data_write_function_t) [with _heap_element_type = libmaus2::bambam::parallel::GenericInputControlMergeHeapEntryQueryName; size_t = unsigned int; cram_data_write_function_t = void (*)(void*, int, unsigned int, const char*, unsigned int, _cram_data_write_block_type); ssize_t = int; cram_data_write_block_type = _cram_data_write_block_type]’ 428 | void * cram_allocate_encoder(void *userdata, char const *header, size_t const headerlength, cram_data_write_function_t writefunc) |
Bug#934619: libmaus2 FTBFS (mostly 32bit): error: no matching function for call
Source: libmaus2 Version: 2.0.611-1 Severity: serious Tags: ftbfs libmaus2 fails to build from source on the buildds for most 32bit architectures. For instance: | g++ -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wdate-time -D_FORTIFY_SOURCE=2 -W -Wall -Wnon-virtual-dtor -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -O3 -pthread -std=gnu++0x -pthread -fopenmp -c -o test/testmapperm-testmapperm.o `test -f 'test/testmapperm.cpp' || echo './'`test/testmapperm.cpp | In file included from /usr/include/c++/8/map:61, | from ./libmaus2/serialize/Serialize.hpp:25, | from ./libmaus2/autoarray/AutoArray.hpp:27, | from ./libmaus2/bambam/BamAuxSortingBuffer.hpp:23, | from ./libmaus2/bambam/BamAlignmentDecoderBase.hpp:23, | from ./libmaus2/bambam/BamAlignment.hpp:24, | from ./libmaus2/bambam/parallel/PushBackSpace.hpp:22, | from ./libmaus2/bambam/parallel/AlignmentBuffer.hpp:22, | from ./libmaus2/bambam/parallel/FragmentAlignmentBufferRewriteUpdateInterval.hpp:22, | from test/testparallelbamrewrite.cpp:20: | /usr/include/c++/8/bits/stl_map.h: In member function ‘void libmaus2::bambam::parallel::RewriteControl::checkValidatedRewritePending()’: | /usr/include/c++/8/bits/stl_map.h:499:8: note: parameter passing for argument of type ‘std::_Rb_tree >, std::_Select1st > >, std::less, std::allocator > > >::const_iterator’ {aka ‘std::_Rb_tree_const_iterator > >’} changed in GCC 7.1 | __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct, | In file included from test/testparallelbamblocksort.cpp:19: | ./libmaus2/bambam/parallel/BlockMergeControl.hpp: In instantiation of ‘void libmaus2::bambam::parallel::BlockMergeControl<_heap_element_type>::enqueHeader() [with _heap_element_type = libmaus2::bambam::parallel::GenericInputControlMergeHeapEntryQueryName]’: | ./libmaus2/bambam/parallel/BlockMergeControl.hpp:571:6: required from ‘libmaus2::bambam::parallel::BlockMergeControl<_heap_element_type>::BlockMergeControl(libmaus2::parallel::SimpleThreadPool&, std::ostream&, libmaus2::autoarray::AutoArray&, const std::vector&, libmaus2::bitio::BitVector*, int, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, const string&, const string&, libmaus2::digest::DigestInterface*, libmaus2::bambam::parallel::BlockMergeControlTypeBase::block_merge_output_format_t, bool, bool, bool, uint64_t) [with _heap_element_type = libmaus2::bambam::parallel::GenericInputControlMergeHeapEntryQueryName; std::ostream = std::basic_ostream; libmaus2::bitio::BitVector = libmaus2::bitio::BitVectorTemplate; uint64_t = long long unsigned int; std::__cxx11::string = std::__cxx11::basic_string]’ | test/testparallelbamblocksort.cpp:223:68: required from ‘int parallelbamblocksort(const libmaus2::util::ArgInfo&, bool, bool, const string&, bool) [with order_type = libmaus2::bambam::parallel::FragmentAlignmentBufferQueryNameComparator; heap_element_type = libmaus2::bambam::parallel::GenericInputControlMergeHeapEntryQueryName; bool create_dup_mark_info = false; std::__cxx11::string = std::__cxx11::basic_string]’ | test/testparallelbamblocksort.cpp:273:4: required from here | ./libmaus2/bambam/parallel/BlockMergeControl.hpp:346:49: error: no matching function for call to ‘libmaus2::bambam::parallel::BlockMergeControl::sam_allocate_encoder(libmaus2::bambam::parallel::BlockMergeControl*, const char*&, int, )’ | samsupport.context = sam_allocate_encoder(this,ptext.first,ptext.second-ptext.first,sam_data_write_function); | ^~~ | ./libmaus2/bambam/parallel/BlockMergeControl.hpp:1260:18: note: candidate: ‘static void* libmaus2::bambam::parallel::BlockMergeControl<_heap_element_type>::sam_allocate_encoder(void*, const char*, size_t, cram_data_write_function_t) [with _heap_element_type = libmaus2::bambam::parallel::GenericInputControlMergeHeapEntryQueryName; size_t = unsigned int; cram_data_write_function_t = void (*)(void*, int, unsigned int, const char*, unsigned int, _cram_data_write_block_type); ssize_t = int; cram_data_write_block_type = _cram_data_write_block_type]’ | static void *sam_allocate_encoder( | ^~~~ | ./libmaus2/bambam/parallel/BlockMergeControl.hpp:1260:18: note: no known conversion for argument 4 from ‘’ to ‘cram_data_write_function_t’ {aka ‘void (*)(void*, int, unsigned int, const char*, unsigned int, _cram_data_write_block_type)’} | ./libmaus2/bambam/parallel/BlockMergeControl.hpp:364:28: error: no matching function for call to ‘libmaus2::bambam::parallel::BlockMergeControl::cram_allocate_encoder(libmaus2::bambam::parallel::BlockMergeControl*, const char*&, int, )’ | cramsupport.context =