diff options
-rw-r--r-- | dev-cpp/gstreamermm/files/gstreamermm-1.10.0-no-volatile.patch | 17 | ||||
-rw-r--r-- | dev-cpp/gstreamermm/gstreamermm-1.10.0.ebuild | 4 |
2 files changed, 21 insertions, 0 deletions
diff --git a/dev-cpp/gstreamermm/files/gstreamermm-1.10.0-no-volatile.patch b/dev-cpp/gstreamermm/files/gstreamermm-1.10.0-no-volatile.patch new file mode 100644 index 000000000000..ede9f910ae14 --- /dev/null +++ b/dev-cpp/gstreamermm/files/gstreamermm-1.10.0-no-volatile.patch @@ -0,0 +1,17 @@ +https://bugs.gentoo.org/786444 + +g_once_init_enter(void*) should NOT be passed a volatile argument: +https://developer.gnome.org/glib/stable/glib-Threads.html#g-once-init-enter +"While location has a volatile qualifier, this is a historical +artifact and the pointer passed to it should not be volatile." +--- gstreamermm-1.10.0/gstreamer/gstreamermm/register.h.orig 2017-10-20 12:26:46.000000000 +0300 ++++ gstreamermm-1.10.0/gstreamer/gstreamermm/register.h 2021-05-25 17:52:13.031337753 +0300 +@@ -110,7 +110,7 @@ + /* The typedef for GType may be gulong or gsize, depending on the + * system and whether the compiler is c++ or not. The g_once_init_* + * functions always take a gsize * though ... */ +- static volatile gsize gonce_data = 0; ++ static gsize gonce_data = 0; + if (g_once_init_enter (&gonce_data)) { + GTypeInfo info; + diff --git a/dev-cpp/gstreamermm/gstreamermm-1.10.0.ebuild b/dev-cpp/gstreamermm/gstreamermm-1.10.0.ebuild index 6fdef7109be2..fced073bba0a 100644 --- a/dev-cpp/gstreamermm/gstreamermm-1.10.0.ebuild +++ b/dev-cpp/gstreamermm/gstreamermm-1.10.0.ebuild @@ -40,6 +40,10 @@ DEPEND="${RDEPEND} # Installs reference docs into /usr/share/doc/gstreamermm-1.0/ # but that's okay, because the rest of dev-cpp/*mm stuff does the same +PATCHES=( + "${FILESDIR}"/${P}-no-volatile.patch +) + src_prepare() { if ! use examples; then # don't waste time building examples |