commit:     7783e37a1ece3c5c930fb7ee99c2a15e2a79c2ae
Author:     Hans de Graaff <graaff <AT> gentoo <DOT> org>
AuthorDate: Sat May  8 05:54:07 2021 +0000
Commit:     Hans de Graaff <graaff <AT> gentoo <DOT> org>
CommitDate: Sat May  8 06:11:56 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7783e37a

dev-db/mysql-workbench: fix compilation with gcc 11

Thanks to Ionen Wolkens for providing a patch.

Closes: https://bugs.gentoo.org/788199
Package-Manager: Portage-3.0.18, Repoman-3.0.2
Signed-off-by: Hans de Graaff <graaff <AT> gentoo.org>

 .../files/mysql-workbench-8.0.24-gcc11-fix.patch   | 55 ++++++++++++++++++++++
 .../mysql-workbench/mysql-workbench-8.0.24.ebuild  |  1 +
 2 files changed, 56 insertions(+)

diff --git 
a/dev-db/mysql-workbench/files/mysql-workbench-8.0.24-gcc11-fix.patch 
b/dev-db/mysql-workbench/files/mysql-workbench-8.0.24-gcc11-fix.patch
new file mode 100644
index 00000000000..1ad5b1dafae
--- /dev/null
+++ b/dev-db/mysql-workbench/files/mysql-workbench-8.0.24-gcc11-fix.patch
@@ -0,0 +1,55 @@
+https://bugs.gentoo.org/788199
+
+'volatile gsize' is not accepted by with gcc11 / clang12
+
+"While location has a volatile qualifier, this is a historical
+ artifact and the pointer passed to it should not be volatile"
+https://developer.gnome.org/glib/stable/glib-Threads.html#g-once-init-enter
+
+For Scintilla GTK, see also:
+https://sourceforge.net/p/scintilla/code/ci/790bfd4c0747eb5e0bc4d627a101298207a8421e/
+
+Also adds missing <memory> includes.
+
+Signed-off-by: Ionen Wolkens <sudin...@gmail.com>
+--- a/ext/scintilla/gtk/ScintillaGTKAccessible.cxx
++++ b/ext/scintilla/gtk/ScintillaGTKAccessible.cxx
+@@ -1011,5 +1011,5 @@
+ // @p parent_type is only required on GTK 3.2 to 3.6, and only on the first 
call
+ static GType scintilla_object_accessible_get_type(GType parent_type 
G_GNUC_UNUSED) {
+-      static volatile gsize type_id_result = 0;
++      static gsize type_id_result = 0;
+ 
+       if (g_once_init_enter(&type_id_result)) {
+@@ -1102,5 +1102,5 @@
+       *cache = scintilla_object_accessible_new(0, G_OBJECT(widget));
+ #elif HAVE_GTK_FACTORY // register in the factory and let GTK instantiate
+-      static volatile gsize registered = 0;
++      static gsize registered = 0;
+ 
+       if (g_once_init_enter(&registered)) {
+--- a/library/forms/gtk/src/mforms_acc.cpp
++++ b/library/forms/gtk/src/mforms_acc.cpp
+@@ -177,5 +177,5 @@
+     // @p parent_type is only required on GTK 3.2 to 3.6, and only on the 
first call
+     GType mforms_object_accessible_get_type(GType parent_type G_GNUC_UNUSED) {
+-      static volatile gsize typeIdResult = 0;
++      static gsize typeIdResult = 0;
+ 
+       if (g_once_init_enter(&typeIdResult)) {
+--- a/library/ssh/SSHCommon.h
++++ b/library/ssh/SSHCommon.h
+@@ -42,4 +42,5 @@
+ #include <thread>
+ #include <atomic>
++#include <memory>
+ #include <mutex>
+ 
+--- a/library/ssh/SSHTunnelHandler.h
++++ b/library/ssh/SSHTunnelHandler.h
+@@ -31,4 +31,5 @@
+ #include <thread>
+ #include <map>
++#include <memory>
+ #include <mutex>
+ #include <vector>

diff --git a/dev-db/mysql-workbench/mysql-workbench-8.0.24.ebuild 
b/dev-db/mysql-workbench/mysql-workbench-8.0.24.ebuild
index a565f9ac990..d30a608ba5f 100644
--- a/dev-db/mysql-workbench/mysql-workbench-8.0.24.ebuild
+++ b/dev-db/mysql-workbench/mysql-workbench-8.0.24.ebuild
@@ -71,6 +71,7 @@ S="${WORKDIR}"/"${MY_P}"
 PATCHES=(
        "${FILESDIR}/${PN}-6.2.5-wbcopytables.patch"
        "${FILESDIR}/${PN}-8.0.19-mysql-connector-8.patch"
+       "${FILESDIR}/${PN}-8.0.24-gcc11-fix.patch"
 )
 
 src_unpack() {

Reply via email to