dev-cpp/commoncpp2: Fix building against GCC 9
authorDavid Seifert <soap@gentoo.org>
Sat, 22 Jun 2019 09:48:30 +0000 (11:48 +0200)
committerDavid Seifert <soap@gentoo.org>
Sat, 22 Jun 2019 09:48:30 +0000 (11:48 +0200)
Closes: https://bugs.gentoo.org/686012
Package-Manager: Portage-2.3.67, Repoman-2.3.15
Signed-off-by: David Seifert <soap@gentoo.org>
dev-cpp/commoncpp2/commoncpp2-1.8.1-r4.ebuild
dev-cpp/commoncpp2/files/1.8.1-fix-gcc9.patch [new file with mode: 0644]

index 0db41ca0b7934b3de1c4c5b3cfa1341f4892f3b3..d8c63727a4e35786e9bdaa4b56ba1bc991c37e0c 100644 (file)
@@ -39,6 +39,7 @@ PATCHES=(
        "${FILESDIR}/1.8.1-fix-c++14.patch"
        "${FILESDIR}/1.8.1-gnutls-3.4.patch"
        "${FILESDIR}/1.8.1-libressl.patch" # bug 674416
+       "${FILESDIR}/1.8.1-fix-gcc9.patch" # bug 686012
 )
 
 src_prepare() {
diff --git a/dev-cpp/commoncpp2/files/1.8.1-fix-gcc9.patch b/dev-cpp/commoncpp2/files/1.8.1-fix-gcc9.patch
new file mode 100644 (file)
index 0000000..795e441
--- /dev/null
@@ -0,0 +1,28 @@
+https://bugs.gentoo.org/686012
+In file included from ../inc/cc++/thread.h:50,
+                 from thread.cpp:41:
+../inc/cc++/string.h:734:35: error: friend declaration of ‘std::istream& getline(std::istream&, ost::String&, char, size_t)’ specifies default arguments and isn’t a definition [-fpermissive]
+  734 |     friend __EXPORT std::istream &getline(std::istream &is, String &str, char delim = '\n', size_t size = 0);
+      |                                   ^~~~~~~
+
+--- a/inc/cc++/string.h
++++ b/inc/cc++/string.h
+@@ -58,6 +58,9 @@
+ class MemPager;
++class String;
++__EXPORT std::istream &getline(std::istream &is, String &str, char delim = '\n', size_t size = 0);
++
+ /**
+  * This is a generic and portable string class.  It uses optimized
+  * memory allocation strategies to efficiently handle smaller string
+@@ -731,7 +734,7 @@
+      * @param delim deliminator to use.
+      * @param size optional size limitor.
+      */
+-    friend __EXPORT std::istream &getline(std::istream &is, String &str, char delim = '\n', size_t size = 0);
++    friend std::istream &getline(std::istream &is, String &str, char delim, size_t size);
+     /**
+      * Stream the content of our string variable directly to a C++