commit:     3900cc924001db0c7b6e9618fa8c5792b3d1bb72
Author:     Alon Bar-Lev <alonbl <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 21 10:00:46 2017 +0000
Commit:     Alon Bar-Lev <alonbl <AT> gentoo <DOT> org>
CommitDate: Tue Mar 21 10:01:21 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3900cc92

dev-libs/botan: fix c++11 build issue

Bug: 597712

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 dev-libs/botan/botan-1.10.15-r1.ebuild         |  4 +++
 dev-libs/botan/files/botan-1.10.15-c++11.patch | 36 ++++++++++++++++++++++++++
 2 files changed, 40 insertions(+)

diff --git a/dev-libs/botan/botan-1.10.15-r1.ebuild 
b/dev-libs/botan/botan-1.10.15-r1.ebuild
index 00add8ce318..0fe8c0507d5 100644
--- a/dev-libs/botan/botan-1.10.15-r1.ebuild
+++ b/dev-libs/botan/botan-1.10.15-r1.ebuild
@@ -30,6 +30,10 @@ RDEPEND="bzip2? ( >=app-arch/bzip2-1.0.5 )
 DEPEND="${RDEPEND}
        doc? ( dev-python/sphinx )"
 
+PATCHES=(
+       "${FILESDIR}/${P}-c++11.patch"
+)
+
 src_prepare() {
        default
 

diff --git a/dev-libs/botan/files/botan-1.10.15-c++11.patch 
b/dev-libs/botan/files/botan-1.10.15-c++11.patch
new file mode 100644
index 00000000000..e47b56600fe
--- /dev/null
+++ b/dev-libs/botan/files/botan-1.10.15-c++11.patch
@@ -0,0 +1,36 @@
+From dc2834f708a6d857b1a7f9587d5a28af271103e5 Mon Sep 17 00:00:00 2001
+From: Peter-Levine <[email protected]>
+Date: Mon, 20 Mar 2017 22:13:21 -0400
+Subject: [PATCH] Allow destructor to throw when building with >=C++11
+
+After C++11, destructors default to `noexcept(true)`.  Thus, any throw 
statements in destructors become calls to `std::terminate()`.  To enable the 
intended throw statement, the destructor must be explicitly marked 
`noexcept(false)`.
+---
+ src/alloc/alloc_mmap/mmap_mem.cpp | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/alloc/alloc_mmap/mmap_mem.cpp 
b/src/alloc/alloc_mmap/mmap_mem.cpp
+index 17c189e..2637533 100644
+--- a/src/alloc/alloc_mmap/mmap_mem.cpp
++++ b/src/alloc/alloc_mmap/mmap_mem.cpp
+@@ -21,6 +21,12 @@
+    #define MAP_FAILED -1
+ #endif
+ 
++#if __cplusplus >= 201103L
++#define NOEXCEPT noexcept(false)
++#else
++#define NOEXCEPT
++#endif
++
+ namespace Botan {
+ 
+ namespace {
+@@ -66,7 +72,7 @@ void* MemoryMapping_Allocator::alloc_block(size_t n)
+                throw MemoryMapping_Failed("Could not unlink temporary file");
+             }
+ 
+-         ~TemporaryFile()
++         ~TemporaryFile() NOEXCEPT
+             {
+             /*
+             * We can safely close here, because post-mmap the file

Reply via email to