From f04d638cd4722f78f2fe28400b231cd31845bee6 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Jul 23 2015 23:02:22 +0000 Subject: Patch use of boost::bind for boost 1.58. --- diff --git a/dyninst-8.2.1-boost-bind.patch b/dyninst-8.2.1-boost-bind.patch new file mode 100644 index 0000000..ce15094 --- /dev/null +++ b/dyninst-8.2.1-boost-bind.patch @@ -0,0 +1,42 @@ +commit 28f52285af957fd464485cc706b4b9eba65912cf +Author: Josh Stone +Date: Thu Jul 23 15:28:56 2015 -0700 + + dataflowAPI: use boost::bind() instead of bind() + + With boost 1.58, the boost::bind() in Slicer::getPredecessors() + gave an "error: call of overloaded 'bind[...]' is ambiguous". + + Every other bind in dyninst uses plain boost::bind(), which does its own + inspection of return type. That works well in this case too, even with + older boost versions. + +diff --git a/dataflowAPI/src/slicing.C b/dataflowAPI/src/slicing.C +index 8f36d8dc3cd6..436961549a9f 100644 +--- a/dataflowAPI/src/slicing.C ++++ b/dataflowAPI/src/slicing.C +@@ -722,15 +722,15 @@ Slicer::getPredecessors( + const Block::edgelist & sources = cand.loc.block->sources(); + std::for_each(boost::make_filter_iterator(epred, sources.begin(), sources.end()), + boost::make_filter_iterator(epred, sources.end(), sources.end()), +- boost::bind(&Slicer::handlePredecessorEdge, +- this, +- _1, +- boost::ref(p), +- boost::ref(cand), +- boost::ref(newCands), +- boost::ref(err), +- boost::ref(nf) +- )); ++ boost::bind(&Slicer::handlePredecessorEdge, ++ this, ++ _1, ++ boost::ref(p), ++ boost::ref(cand), ++ boost::ref(newCands), ++ boost::ref(err), ++ boost::ref(nf) ++ )); + + return !err; + } diff --git a/dyninst.spec b/dyninst.spec index 22c7534..eaff188 100644 --- a/dyninst.spec +++ b/dyninst.spec @@ -2,7 +2,7 @@ Summary: An API for Run-time Code Generation License: LGPLv2+ Name: dyninst Group: Development/Libraries -Release: 6%{?dist} +Release: 7%{?dist} URL: http://www.dyninst.org Version: 8.2.1 Exclusiveos: linux @@ -24,6 +24,7 @@ ExclusiveArch: %{ix86} x86_64 ppc ppc64 Source0: dyninst-8.2.1.tar.gz Source1: dyninst-docs-8.2.0.1.tar.gz Source2: dyninst-testsuite-8.2.0.1.tar.gz +Patch1: dyninst-8.2.1-boost-bind.patch BuildRequires: libdwarf-devel >= 20111030 BuildRequires: elfutils-libelf-devel BuildRequires: boost-devel @@ -91,6 +92,10 @@ making sure that dyninst works properly. %setup -q -T -D -a 1 %setup -q -T -D -a 2 +pushd dyninst +%patch1 -p1 -b .bind +popd + %build cd dyninst @@ -181,6 +186,9 @@ chmod 644 %{buildroot}%{_libdir}/dyninst/testsuite/* %attr(755,root,root) %{_libdir}/dyninst/testsuite/* %changelog +* Thu Jul 23 2015 Josh Stone - 8.2.1-7 +- Patch use of boost::bind for boost 1.58. + * Wed Jul 22 2015 David Tardon - 8.2.1-6 - rebuild for Boost 1.58