commit:     0db830d65adfc2627be610e237da6f40df58b44c
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sun Oct  2 15:24:51 2016 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Oct  2 15:26:39 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0db830d6

dev-libs/log4cplus: Make dtors conditionally noexcept(false)

Gentoo-bug: 595424

Package-Manager: portage-2.3.1

 .../files/log4cplus-1.2.0-fix-c++14.patch          | 31 ++++++++++++++++++++++
 dev-libs/log4cplus/log4cplus-1.2.0.ebuild          |  2 ++
 2 files changed, 33 insertions(+)

diff --git a/dev-libs/log4cplus/files/log4cplus-1.2.0-fix-c++14.patch 
b/dev-libs/log4cplus/files/log4cplus-1.2.0-fix-c++14.patch
new file mode 100644
index 00000000..ccd6e1a
--- /dev/null
+++ b/dev-libs/log4cplus/files/log4cplus-1.2.0-fix-c++14.patch
@@ -0,0 +1,31 @@
+Make dtors noexcept(false) when compiling in C++11 and above. This avoids
+silent breakage due to the semantic changes between C++98 and C++11.
+See also: https://bugs.gentoo.org/show_bug.cgi?id=595424
+
+--- a/include/log4cplus/hierarchylocker.h
++++ b/include/log4cplus/hierarchylocker.h
+@@ -48,7 +48,11 @@
+     public:
+       // ctor & dtor
+         HierarchyLocker(Hierarchy& h);
+-        ~HierarchyLocker();
++        ~HierarchyLocker()
++#if __cplusplus >= 201103L
++        noexcept(false)
++#endif
++        ;
+         
+         /**
+          * Calls the <code>resetConfiguration()</code> method on the locked 
Hierarchy.
+--- a/src/hierarchylocker.cxx
++++ b/src/hierarchylocker.cxx
+@@ -62,6 +62,9 @@
+  
+ 
+ HierarchyLocker::~HierarchyLocker()
++#if __cplusplus >= 201103L
++    noexcept(false)
++#endif
+ {
+     try {
+         for(LoggerList::iterator it=loggerList.begin(); it!=loggerList.end(); 
++it) {

diff --git a/dev-libs/log4cplus/log4cplus-1.2.0.ebuild 
b/dev-libs/log4cplus/log4cplus-1.2.0.ebuild
index 8ad20f8..4dfaa42 100644
--- a/dev-libs/log4cplus/log4cplus-1.2.0.ebuild
+++ b/dev-libs/log4cplus/log4cplus-1.2.0.ebuild
@@ -19,6 +19,8 @@ RDEPEND="iconv? ( virtual/libiconv )
 DEPEND="virtual/pkgconfig
        ${RDEPEND}"
 
+PATCHES=( "${FILESDIR}/${PN}-1.2.0-fix-c++14.patch" )
+
 src_configure() {
        econf \
                --disable-static \

Reply via email to