From 2997c245b069f26aedf7ed60676acb69f2b3bbc0 Mon Sep 17 00:00:00 2001 From: Alon Bar-Lev Date: Tue, 21 Mar 2017 12:41:24 +0200 Subject: app-crypt/qca: fix c++11 build Bug: 612238 Package-Manager: Portage-2.3.3, Repoman-2.3.1 --- app-crypt/qca/files/qca-2.1.3-c++11.patch | 97 +++++++++++++++++++++++++++++++ app-crypt/qca/qca-2.1.3.ebuild | 1 + 2 files changed, 98 insertions(+) create mode 100644 app-crypt/qca/files/qca-2.1.3-c++11.patch (limited to 'app-crypt/qca') 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 00000000000..a12f96bfcf4 --- /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 +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 +--- + 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 + 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 fc600e04fb7..4b9e9bf3429 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() { -- cgit v1.2.1