[Debian-med-packaging] Bug#1012893: [Help] anfo: ftbfs with GCC-12

Étienne Mollier emollier at emlwks999.eu
Thu Sep 29 14:38:23 BST 2022


Hi all,

Andreas Tille, on 2022-09-29:
> Am Wed, Sep 28, 2022 at 04:06:23PM -0400 schrieb Aaron M. Ucko:
> > Per GCC's hint, please try formally substituting unique_ptr for
> > auto_ptr.  I haven't tested that approach for this package, but it's
> > typically a safe drop-in replacement, and generally yields compilation
> > errors in the rare cases where its usage would be problematic.

I believe in the case of anfo, that warnings about auto_ptr /
unique_ptr are red herrings.  If I search for "error:"s, then I
get some errors about no match for operator<:

In file included from /usr/include/c++/12/bits/refwrap.h:39,
                 from /usr/include/c++/12/deque:65,
                 from util.h:23:
/usr/include/c++/12/bits/stl_function.h: In instantiation of ‘constexpr bool std::less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = config::Policy]’:
/usr/include/c++/12/bits/stl_tree.h:2533:33:   required from ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::find(const _Key&) [with _Key = config::Policy; _Val = config::Policy; _KeyOfValue = std::_Identity<config::Policy>; _Compare = std::less<config::Policy>; _Alloc = std::allocator<config::Policy>; iterator = std::_Rb_tree<config::Policy, config::Policy, std::_Identity<config::Policy>, std::less<config::Policy>, std::allocator<config::Policy> >::iterator]’
/usr/include/c++/12/bits/stl_set.h:795:25:   required from ‘std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::find(const key_type&) [with _Key = config::Policy; _Compare = std::less<config::Policy>; _Alloc = std::allocator<config::Policy>; iterator = std::_Rb_tree<config::Policy, config::Policy, std::_Identity<config::Policy>, std::less<config::Policy>, std::allocator<config::Policy> >::const_iterator; key_type = config::Policy]’
stream.cc:479:13:   required from ‘void streams::nub(google::protobuf::RepeatedPtrField<Element>&) [with E = config::Policy]’
stream.cc:531:5:   required from here
/usr/include/c++/12/bits/stl_function.h:408:20: error: no match for ‘operator<’ (operand types are ‘const config::Policy’ and ‘const config::Policy’)

I've had a similar instance of this on #1012990, on which I have
been banging my head until I unraveled the similar case #1012911
which has been fixed following a breadcrumb of patches stemming
from a case described in clang documentation[1].  My current fix
/ workaround looks like [2] (keep in mind I studied C before
C++, which is not a good thing for the quality of my C++).

[1]: https://clang.llvm.org/compatibility.html#dep_lookup
[2]: https://salsa.debian.org/med-team/librostlab-blast/-/blob/debian/1.0.1-13/debian/patches/gcc-12.patch

Have a nice day,  :)
-- 
Étienne Mollier <emollier at emlwks999.eu>
Fingerprint:  8f91 b227 c7d6 f2b1 948c  8236 793c f67e 8f0d 11da
Sent from /dev/pts/2, please excuse my verbosity.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/debian-med-packaging/attachments/20220929/8dd17701/attachment-0001.sig>


More information about the Debian-med-packaging mailing list