[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