summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Bar-Lev <alonbl@gentoo.org>2017-03-21 12:41:24 +0200
committerAlon Bar-Lev <alonbl@gentoo.org>2017-03-21 12:42:16 +0200
commit2997c245b069f26aedf7ed60676acb69f2b3bbc0 (patch)
treee397eba3b79200c8d567eb8dab04e8d0464e84fb /app-crypt/qca
parentsys-auth/elogind: Drop unused local USE description (diff)
downloadgentoo-2997c245b069f26aedf7ed60676acb69f2b3bbc0.tar.gz
gentoo-2997c245b069f26aedf7ed60676acb69f2b3bbc0.tar.bz2
gentoo-2997c245b069f26aedf7ed60676acb69f2b3bbc0.zip
app-crypt/qca: fix c++11 build
Bug: 612238 Package-Manager: Portage-2.3.3, Repoman-2.3.1
Diffstat (limited to 'app-crypt/qca')
-rw-r--r--app-crypt/qca/files/qca-2.1.3-c++11.patch97
-rw-r--r--app-crypt/qca/qca-2.1.3.ebuild1
2 files changed, 98 insertions, 0 deletions
diff --git a/app-crypt/qca/files/qca-2.1.3-c++11.patch b/app-crypt/qca/files/qca-2.1.3-c++11.patch
new file mode 100644
index 000000000000..a12f96bfcf4a
--- /dev/null
+++ b/app-crypt/qca/files/qca-2.1.3-c++11.patch
@@ -0,0 +1,97 @@
+From 5f18ebc705ec98e883aa63cb537e36e6a08b7e34 Mon Sep 17 00:00:00 2001
+From: Alon Bar-Lev <alon.barlev@gmail.com>
+Date: Tue, 21 Mar 2017 12:23:17 +0200
+Subject: [PATCH] build: fix C++11 throwing distructors
+
+For >=C++11, explicitly mark throwing destructors `noexcept(false)`
+
+Thanks: Peter-Levine <plevine457@gmail.com>
+---
+ Doxyfile.in | 2 +-
+ src/botantools/botan/alloc_mmap/mmap_mem.cpp | 2 +-
+ src/botantools/botan/botan/allocate.h | 8 +++++++-
+ src/botantools/botan/botan/mem_pool.h | 2 +-
+ src/botantools/botan/mem_pool.cpp | 2 +-
+ 5 files changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/Doxyfile.in b/Doxyfile.in
+index 59d9afe..844c234 100644
+--- a/Doxyfile.in
++++ b/Doxyfile.in
+@@ -1070,7 +1070,7 @@ PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS \
+ # The macro definition that is found in the sources will be used.
+ # Use the PREDEFINED tag if you want to use a different macro definition.
+
+-EXPAND_AS_DEFINED = QCA_EXPORT
++EXPAND_AS_DEFINED = QCA_EXPORT QCA_NOEXCEPT
+
+ # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+ # doxygen's preprocessor will remove all function-like macros that are alone
+diff --git a/src/botantools/botan/alloc_mmap/mmap_mem.cpp b/src/botantools/botan/alloc_mmap/mmap_mem.cpp
+index 362b688..54f0d23 100644
+--- a/src/botantools/botan/alloc_mmap/mmap_mem.cpp
++++ b/src/botantools/botan/alloc_mmap/mmap_mem.cpp
+@@ -107,7 +107,7 @@ void* MemoryMapping_Allocator::alloc_block(u32bit n)
+ umask(old_umask);
+ }
+
+- ~TemporaryFile()
++ ~TemporaryFile() QCA_NOEXCEPT(false)
+ {
+ delete[] filepath;
+ if(fd != -1 && close(fd) == -1)
+diff --git a/src/botantools/botan/botan/allocate.h b/src/botantools/botan/botan/allocate.h
+index 0ac351e..52bc397 100644
+--- a/src/botantools/botan/botan/allocate.h
++++ b/src/botantools/botan/botan/allocate.h
+@@ -40,6 +40,12 @@ namespace QCA { // WRAPNS_LINE
+ #include <string>
+ namespace QCA { // WRAPNS_LINE
+
++#if __cplusplus >= 201103L
++#define QCA_NOEXCEPT(x) noexcept(x)
++#else
++#define QCA_NOEXCEPT(x)
++#endif
++
+ namespace Botan {
+
+ /*************************************************
+@@ -58,7 +64,7 @@ class Allocator
+ virtual void init() {}
+ virtual void destroy() {}
+
+- virtual ~Allocator() {}
++ virtual ~Allocator() QCA_NOEXCEPT(false) {}
+ };
+
+ /*************************************************
+diff --git a/src/botantools/botan/botan/mem_pool.h b/src/botantools/botan/botan/mem_pool.h
+index 32834b8..1cb903e 100644
+--- a/src/botantools/botan/botan/mem_pool.h
++++ b/src/botantools/botan/botan/mem_pool.h
+@@ -63,7 +63,7 @@ class Pooling_Allocator : public Allocator
+ void destroy();
+
+ Pooling_Allocator(u32bit, bool);
+- ~Pooling_Allocator();
++ ~Pooling_Allocator() QCA_NOEXCEPT(false);
+ private:
+ void get_more_core(u32bit);
+ byte* allocate_blocks(u32bit);
+diff --git a/src/botantools/botan/mem_pool.cpp b/src/botantools/botan/mem_pool.cpp
+index 00280ec..baa47aa 100644
+--- a/src/botantools/botan/mem_pool.cpp
++++ b/src/botantools/botan/mem_pool.cpp
+@@ -171,7 +171,7 @@ Pooling_Allocator::Pooling_Allocator(u32bit p_size, bool) :
+ /*************************************************
+ * Pooling_Allocator Destructor *
+ *************************************************/
+-Pooling_Allocator::~Pooling_Allocator()
++Pooling_Allocator::~Pooling_Allocator() QCA_NOEXCEPT(false)
+ {
+ delete mutex;
+ if(blocks.size())
+--
+2.10.2
+
diff --git a/app-crypt/qca/qca-2.1.3.ebuild b/app-crypt/qca/qca-2.1.3.ebuild
index fc600e04fb75..4b9e9bf34294 100644
--- a/app-crypt/qca/qca-2.1.3.ebuild
+++ b/app-crypt/qca/qca-2.1.3.ebuild
@@ -55,6 +55,7 @@ DOCS=( README TODO )
PATCHES=(
"${FILESDIR}/${PN}-disable-pgp-test.patch"
+ "${FILESDIR}/${P}-c++11.patch"
)
qca_plugin_use() {