Hi Matthias, On Tue, Dec 17, 2019 at 03:45:56PM +0100, Matthias Klumpp wrote: > > I just took a really, really quick look at it (< 5min). Looks like > there are multiple issues to be solved, for example the IntervalTree > template accepts two class types (Value and Scalar) and only one is > provided. That's an upstream bug that upsteam needs to solve, so there > isn't much you can do. I am very certain this build fails in any > circumstance, unless IntervalTree is downgraded, maybe.
Thanks a lot for your attempt to help! > Additionally, in > https://sources.debian.org/src/htslib/1.10-2/cram/cram_io.h/#L511 > (included by this software) implicitly casting void* to something else > is illegal in C++. So either `unsigned char *tmp = realloc(b->data, > len);` has to be changed to `unsigned char *tmp = (unsigned char *) > realloc(b->data, len);` to be valid in both C and C++ (a clean > solution, but possibly impractical), or, the better way in this case, > the C library headers need to be wrapped in a block like this: > ``` > > #ifdef __cplusplus > extern "C" { > #endif > > /* include all C headers here */ > > #ifdef __cplusplus > } > #endif > ``` > > Usually, many C headers already have this, but apparently this one > hasn't. That may fix this and any other issues as well (I haven't > tested that though). If it doesn't, the compiler has to be told that > this instruction is okay to use in the particular header, or the C > code has to be fixed to accomodate for that. @Michael Crusoe: Do you have some contact to htslib authors? May be its the best to forward this upstream. Kind regards Andreas. -- http://fam-tille.de

