Patch use of boost::bind for boost 1.58.

This commit is contained in:
Josh Stone 2015-07-23 16:02:22 -07:00
parent 85520eee84
commit f04d638cd4
2 changed files with 51 additions and 1 deletions

View File

@ -0,0 +1,42 @@
commit 28f52285af957fd464485cc706b4b9eba65912cf
Author: Josh Stone <jistone@redhat.com>
Date: Thu Jul 23 15:28:56 2015 -0700
dataflowAPI: use boost::bind() instead of bind<void>()
With boost 1.58, the boost::bind<void>() 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<void>(&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;
}

View File

@ -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 <jistone@redhat.com> - 8.2.1-7
- Patch use of boost::bind for boost 1.58.
* Wed Jul 22 2015 David Tardon <dtardon@redhat.com> - 8.2.1-6
- rebuild for Boost 1.58