dev-libs/log4cplus: Make dtors conditionally noexcept(false)
authorDavid Seifert <soap@gentoo.org>
Sun, 2 Oct 2016 15:24:51 +0000 (17:24 +0200)
committerDavid Seifert <soap@gentoo.org>
Sun, 2 Oct 2016 15:26:39 +0000 (17:26 +0200)
Gentoo-bug: 595424

Package-Manager: portage-2.3.1

dev-libs/log4cplus/files/log4cplus-1.2.0-fix-c++14.patch [new file with mode: 0644]
dev-libs/log4cplus/log4cplus-1.2.0.ebuild

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 (file)
index 0000000..ccd6e1a
--- /dev/null
@@ -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) {
index 8ad20f852616d574439ede5a90a42089149240c6..4dfaa42fbc2843607e7ecabf60ebefbe7b5cd4b7 100644 (file)
@@ -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 \