Hi, Mark. I saw that 1.70 had been released and put it on my TODO list to test with Dyninst, so thanks for checking that off for me! The underlying issue is that the Breakpoint class has marked boost::checked_delete as a friend which is weird because it doesn't access any members of the passed object. I guessing that just marking the friend declaration BOOST_NOEXCEPT will probably fix the issue.
Thanks. - Tim On Mon, Apr 15, 2019 at 1:43 PM Mark W. Krentel <[email protected]> wrote: > This is mostly an early heads up, I'm not blocked or anything. But at > some point, you'll need to adapt to some new boost usage. > > I'll leave it to you to decide if this is needed for 10.1. Before > 10.1 would be a bit easier for spack users, so that when 10.1 comes > out, then the latest release of dyninst works with the latest release > of boost. Otherwise, I'd have to add a constraint so that 10.1 > requires boost <= 1.69, or else add a patch to 10.1. > > Anyway, boost 1.70.0 was released April 12 and was added to spack > yesterday. 1.70 changed some usage in checked_delete which breaks > dyninst master. > > Boost 1.70 added BOOST_NOEXCEPT to the signature to the checked_delete > templates. For example, diff from 1.69 to 1.70 includes: > > --- boost_1_69_0/boost/core/checked_delete.hpp 2018-12-05 > 13:58:16.000000000 -0600 > +++ boost_1_70_0/boost/core/checked_delete.hpp 2019-04-09 > 14:35:30.000000000 -0500 > ... > -template<class T> inline void checked_delete(T * x) > +template<class T> inline void checked_delete(T * x) BOOST_NOEXCEPT > > The dyninst build dies in some proccontrol files as: > > In file included from > /home/krentel/dyninst/dyninst/proccontrol/src/int_process.h:34:0, > from > /home/krentel/dyninst/dyninst/proccontrol/src/event.C:33: > /home/krentel/dyninst/dyninst/proccontrol/h/PCProcess.h:106:16: error: > declaration of 'void boost::checked_delete(T*) [with T = > Dyninst::ProcControlAPI::Breakpoint]' has a different exception specifier > friend void boost::checked_delete<Breakpoint>(Breakpoint *); > ^~~~~ > In file included from > > /home/krentel/dyninst/install/linux-fedora26-x86_64/gcc-7.3.1/boost-1.70.0-77l6mbqsezvvqrg2ngewbxkggd6mlht5/include/boost/checked_delete.hpp:15:0, > from > > /home/krentel/dyninst/install/linux-fedora26-x86_64/gcc-7.3.1/boost-1.70.0-77l6mbqsezvvqrg2ngewbxkggd6mlht5/include/boost/smart_ptr/shared_ptr.hpp:26, > from > > /home/krentel/dyninst/install/linux-fedora26-x86_64/gcc-7.3.1/boost-1.70.0-77l6mbqsezvvqrg2ngewbxkggd6mlht5/include/boost/shared_ptr.hpp:17, > from > /home/krentel/dyninst/dyninst/common/h/dyn_regs.h:36, > from > /home/krentel/dyninst/dyninst/common/h/dyntypes.h:183, > from > /home/krentel/dyninst/dyninst/proccontrol/src/event.C:31: > /home/krentel/dyninst/install/linux-fedora26-x86_64/gcc-7.3.1/boost-1.70.0-77l6mbqsezvvqrg2ngewbxkggd6mlht5/include/boost/core/checked_delete.hpp:31:31: > > note: from previous declaration 'void boost::checked_delete(T*) noexcept > [with T = Dyninst::ProcControlAPI::Breakpoint]' > template<class T> inline void checked_delete(T * x) BOOST_NOEXCEPT > > > These things happen, it's what keeps developers employed. A similar > thing happened when 1.69 came out. > > I'll open an issue ... > > --Mark > > > _______________________________________________ > Dyninst-api mailing list > [email protected] > https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api >
_______________________________________________ Dyninst-api mailing list [email protected] https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api
