commit:     20247e5bb4a1d133a17eac3f57ac56defe3f656c
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 14 22:23:01 2017 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Mar 14 23:01:25 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=20247e5b

dev-libs/libFuzzer: fix x86 builds #612656

 dev-libs/libFuzzer/files/libFuzzer-3.9.1-32-bit.patch | 16 ++++++++++++++++
 dev-libs/libFuzzer/libFuzzer-3.9.1.ebuild             |  4 ++++
 2 files changed, 20 insertions(+)

diff --git a/dev-libs/libFuzzer/files/libFuzzer-3.9.1-32-bit.patch 
b/dev-libs/libFuzzer/files/libFuzzer-3.9.1-32-bit.patch
new file mode 100644
index 00000000000..1257686d1c3
--- /dev/null
+++ b/dev-libs/libFuzzer/files/libFuzzer-3.9.1-32-bit.patch
@@ -0,0 +1,16 @@
+this code has been rewritten in newer versions so this patch can be thrown
+away when we upgrade.
+
+https://bugs.gentoo.org/612656
+
+--- a/FuzzerLoop.cpp
++++ b/FuzzerLoop.cpp
+@@ -366,7 +366,7 @@
+   double Lambda = 2.0 * log(2.0) / static_cast<double>(MaxCorpusLen);
+   std::exponential_distribution<> Dist(Lambda);
+   std::vector<double> Sizes;
+-  size_t TruncatePoints = std::max(1ul, TruncateMaxRuns / Corpus.size());
++  size_t TruncatePoints = std::max((size_t)1, TruncateMaxRuns / 
Corpus.size());
+   Sizes.reserve(TruncatePoints);
+   for (size_t I = 0; I < TruncatePoints; ++I) {
+     Sizes.push_back(Dist(MD.GetRand().Get_mt19937()) + 1);

diff --git a/dev-libs/libFuzzer/libFuzzer-3.9.1.ebuild 
b/dev-libs/libFuzzer/libFuzzer-3.9.1.ebuild
index d9e77c26a7a..43b99e894a9 100644
--- a/dev-libs/libFuzzer/libFuzzer-3.9.1.ebuild
+++ b/dev-libs/libFuzzer/libFuzzer-3.9.1.ebuild
@@ -19,6 +19,10 @@ IUSE=""
 S_ROOT="${WORKDIR}/${MY_P}.src"
 S="${S_ROOT}/lib/Fuzzer"
 
+PATCHES=(
+       "${FILESDIR}"/${P}-32-bit.patch #612656
+)
+
 src_prepare() {
        cmake-utils_src_prepare
        sed -i '/CMAKE_CXX_FLAGS/d' CMakeLists.txt || die

Reply via email to