Bug#934619: libmaus2 FTBFS (mostly 32bit): error: no matching function for call

2020-07-28 Thread Andreas Beckmann
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

2019-12-01 Thread Andreas Tille
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

2019-08-12 Thread Helmut Grohne
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 =