From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Tue, 29 Jun 2021 07:11:28 +0200 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1ly61w-0007ET-Ud for lore@lore.pengutronix.de; Tue, 29 Jun 2021 07:11:28 +0200 Received: from localhost ([127.0.0.1] helo=metis.ext.pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1ly61w-0008KQ-JI; Tue, 29 Jun 2021 07:11:28 +0200 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ly5zu-0005fy-3B; Tue, 29 Jun 2021 07:09:22 +0200 Received: from [2a0a:edc0:0:1101:1d::39] (helo=dude03.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1ly5zt-0005co-JN; Tue, 29 Jun 2021 07:09:21 +0200 Received: from mol by dude03.red.stw.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1ly5zt-00Aaf3-Ik; Tue, 29 Jun 2021 07:09:21 +0200 From: Michael Olbrich To: ptxdist@pengutronix.de Date: Tue, 29 Jun 2021 07:09:21 +0200 Message-Id: <20210629050921.2524162-1-m.olbrich@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210618183455.9037-2-l.stach@pengutronix.de> References: <20210618183455.9037-2-l.stach@pengutronix.de> MIME-Version: 1.0 Subject: Re: [ptxdist] [APPLIED] gst-plugins-good1: fix build with GCC11 X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: Lucas Stach Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false Thanks, applied as 59b2e433e5159e4d9e108434bfe68d8bc0dcd737. Michael [sent from post-receive hook] On Tue, 29 Jun 2021 07:09:21 +0200, Lucas Stach wrote: > Building with GCC11 is currently broken as GCC will no longer accept > parameters declared as volatile with atomic operations. Pick the upstream > fix to get rid of this issue. > > Signed-off-by: Lucas Stach > Message-Id: <20210618183455.9037-2-l.stach@pengutronix.de> > Signed-off-by: Michael Olbrich > > diff --git a/patches/gst-plugins-good-1.18.4/0001-gst-don-t-use-volatile-to-mean-atomic.patch b/patches/gst-plugins-good-1.18.4/0001-gst-don-t-use-volatile-to-mean-atomic.patch > new file mode 100644 > index 000000000000..548f814e0da1 > --- /dev/null > +++ b/patches/gst-plugins-good-1.18.4/0001-gst-don-t-use-volatile-to-mean-atomic.patch > @@ -0,0 +1,311 @@ > +From: Matthew Waters > +Date: Thu, 18 Mar 2021 19:52:53 +1100 > +Subject: [PATCH] gst: don't use volatile to mean atomic > + > +volatile is not sufficient to provide atomic guarantees and real atomics > +should be used instead. GCC 11 has started warning about using volatile > +with atomic operations. > + > +https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719 > + > +Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868 > + > +Part-of: > +--- > + ext/jack/gstjack.c | 6 +++--- > + ext/jack/gstjackaudiosink.c | 2 +- > + ext/jack/gstjackaudiosrc.c | 2 +- > + ext/pulse/pulsesink.h | 2 +- > + ext/qt/gstqsgtexture.cc | 2 +- > + ext/qt/gstqtglutility.cc | 2 +- > + ext/qt/qtglrenderer.cc | 6 +++--- > + ext/qt/qtitem.cc | 2 +- > + ext/qt/qtwindow.cc | 4 ++-- > + ext/vpx/gstvpxdec.c | 2 +- > + ext/vpx/gstvpxenc.c | 14 +++++++------- > + gst/audioparsers/gstac3parse.h | 2 +- > + sys/rpicamsrc/gstrpicamsrc.c | 2 +- > + sys/ximage/ximageutil.c | 2 +- > + 14 files changed, 25 insertions(+), 25 deletions(-) > + > +diff --git a/ext/jack/gstjack.c b/ext/jack/gstjack.c > +index ca98dc40592b..fdd507d87207 100644 > +--- a/ext/jack/gstjack.c > ++++ b/ext/jack/gstjack.c > +@@ -28,7 +28,7 @@ > + GType > + gst_jack_connect_get_type (void) > + { > +- static volatile gsize jack_connect_type = 0; > ++ static gsize jack_connect_type = 0; > + > + if (g_once_init_enter (&jack_connect_type)) { > + static const GEnumValue jack_connect_enums[] = { > +@@ -50,7 +50,7 @@ gst_jack_connect_get_type (void) > + GType > + gst_jack_transport_get_type (void) > + { > +- static volatile gsize type = 0; > ++ static gsize type = 0; > + > + if (g_once_init_enter (&type)) { > + static const GFlagsValue flag_values[] = { > +@@ -84,7 +84,7 @@ gst_jack_client_free (gpointer jclient) > + GType > + gst_jack_client_get_type (void) > + { > +- static volatile gsize jack_client_type = 0; > ++ static gsize jack_client_type = 0; > + > + if (g_once_init_enter (&jack_client_type)) { > + /* hackish, but makes it show up nicely in gst-inspect */ > +diff --git a/ext/jack/gstjackaudiosink.c b/ext/jack/gstjackaudiosink.c > +index ee7cea8c0623..6e8d04ae5b3b 100644 > +--- a/ext/jack/gstjackaudiosink.c > ++++ b/ext/jack/gstjackaudiosink.c > +@@ -131,7 +131,7 @@ gst_jack_audio_sink_free_channels (GstJackAudioSink * sink) > + static GType > + gst_jack_ring_buffer_get_type (void) > + { > +- static volatile gsize ringbuffer_type = 0; > ++ static gsize ringbuffer_type = 0; > + > + if (g_once_init_enter (&ringbuffer_type)) { > + static const GTypeInfo ringbuffer_info = { > +diff --git a/ext/jack/gstjackaudiosrc.c b/ext/jack/gstjackaudiosrc.c > +index 1d2cf82ee6e8..d43a447a76aa 100644 > +--- a/ext/jack/gstjackaudiosrc.c > ++++ b/ext/jack/gstjackaudiosrc.c > +@@ -151,7 +151,7 @@ gst_jack_audio_src_free_channels (GstJackAudioSrc * src) > + static GType > + gst_jack_ring_buffer_get_type (void) > + { > +- static volatile gsize ringbuffer_type = 0; > ++ static gsize ringbuffer_type = 0; > + > + if (g_once_init_enter (&ringbuffer_type)) { > + static const GTypeInfo ringbuffer_info = { sizeof (GstJackRingBufferClass), > +diff --git a/ext/pulse/pulsesink.h b/ext/pulse/pulsesink.h > +index 86f3dcdbb751..51ec86a25ad6 100644 > +--- a/ext/pulse/pulsesink.h > ++++ b/ext/pulse/pulsesink.h > +@@ -72,7 +72,7 @@ struct _GstPulseSink > + GstStructure *properties; > + pa_proplist *proplist; > + > +- volatile gint format_lost; > ++ gint format_lost; > + GstClockTime format_lost_time; > + }; > + > +diff --git a/ext/qt/gstqsgtexture.cc b/ext/qt/gstqsgtexture.cc > +index a05d26edd51d..bfa79cda0fe3 100644 > +--- a/ext/qt/gstqsgtexture.cc > ++++ b/ext/qt/gstqsgtexture.cc > +@@ -35,7 +35,7 @@ GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); > + > + GstQSGTexture::GstQSGTexture () > + { > +- static volatile gsize _debug; > ++ static gsize _debug; > + > + initializeOpenGLFunctions(); > + > +diff --git a/ext/qt/gstqtglutility.cc b/ext/qt/gstqtglutility.cc > +index acb89b6e1e3b..d2c092202bd3 100644 > +--- a/ext/qt/gstqtglutility.cc > ++++ b/ext/qt/gstqtglutility.cc > +@@ -66,7 +66,7 @@ gst_qt_get_gl_display () > + { > + GstGLDisplay *display = NULL; > + QGuiApplication *app = static_cast (QCoreApplication::instance ()); > +- static volatile gsize _debug; > ++ static gsize _debug; > + > + g_assert (app != NULL); > + > +diff --git a/ext/qt/qtglrenderer.cc b/ext/qt/qtglrenderer.cc > +index 2ad5601fc381..52965fd0bdb9 100644 > +--- a/ext/qt/qtglrenderer.cc > ++++ b/ext/qt/qtglrenderer.cc > +@@ -22,7 +22,7 @@ GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); > + static void > + init_debug (void) > + { > +- static volatile gsize _debug; > ++ static gsize _debug; > + > + if (g_once_init_enter (&_debug)) { > + GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "qtglrenderer", 0, > +@@ -115,7 +115,7 @@ typedef enum > + > + struct SharedRenderData > + { > +- volatile int refcount; > ++ int refcount; > + SharedRenderDataState state; > + GMutex lock; > + GCond cond; > +@@ -130,7 +130,7 @@ shared_render_data_new (void) > + { > + struct SharedRenderData *ret = g_new0 (struct SharedRenderData, 1); > + > +- ret->refcount = 1; > ++ g_atomic_int_set (&ret->refcount, 1); > + g_mutex_init (&ret->lock); > + > + return ret; > +diff --git a/ext/qt/qtitem.cc b/ext/qt/qtitem.cc > +index 7659800b6bb8..bc99639b4129 100644 > +--- a/ext/qt/qtitem.cc > ++++ b/ext/qt/qtitem.cc > +@@ -104,7 +104,7 @@ void InitializeSceneGraph::run() > + > + QtGLVideoItem::QtGLVideoItem() > + { > +- static volatile gsize _debug; > ++ static gsize _debug; > + > + if (g_once_init_enter (&_debug)) { > + GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "qtglwidget", 0, "Qt GL Widget"); > +diff --git a/ext/qt/qtwindow.cc b/ext/qt/qtwindow.cc > +index 9360c3337f09..7c44ac54ebfd 100644 > +--- a/ext/qt/qtwindow.cc > ++++ b/ext/qt/qtwindow.cc > +@@ -103,7 +103,7 @@ QtGLWindow::QtGLWindow ( QWindow * parent, QQuickWindow *src ) : > + QQuickWindow( parent ), source (src) > + { > + QGuiApplication *app = static_cast (QCoreApplication::instance ()); > +- static volatile gsize _debug; > ++ static gsize _debug; > + > + g_assert (app != NULL); > + > +@@ -152,7 +152,7 @@ QtGLWindow::beforeRendering() > + > + g_mutex_lock (&this->priv->lock); > + > +- static volatile gsize once = 0; > ++ static gsize once = 0; > + if (g_once_init_enter(&once)) { > + this->priv->start = QDateTime::currentDateTime().toMSecsSinceEpoch(); > + g_once_init_leave(&once,1); > +diff --git a/ext/vpx/gstvpxdec.c b/ext/vpx/gstvpxdec.c > +index e92aa85c7e10..74cc3c9702a3 100644 > +--- a/ext/vpx/gstvpxdec.c > ++++ b/ext/vpx/gstvpxdec.c > +@@ -79,7 +79,7 @@ gst_vpx_dec_post_processing_flags_get_type (void) > + {C_FLAGS (VP8_MFQE), "Multi-frame quality enhancement", "mfqe"}, > + {0, NULL, NULL} > + }; > +- static volatile GType id = 0; > ++ static GType id = 0; > + > + if (g_once_init_enter ((gsize *) & id)) { > + GType _id; > +diff --git a/ext/vpx/gstvpxenc.c b/ext/vpx/gstvpxenc.c > +index cd5b30d14dc2..4b3b4f77084f 100644 > +--- a/ext/vpx/gstvpxenc.c > ++++ b/ext/vpx/gstvpxenc.c > +@@ -165,7 +165,7 @@ gst_vpx_enc_end_usage_get_type (void) > + {VPX_CQ, "Constant Quality Mode (CQ) mode", "cq"}, > + {0, NULL, NULL} > + }; > +- static volatile GType id = 0; > ++ static GType id = 0; > + > + if (g_once_init_enter ((gsize *) & id)) { > + GType _id; > +@@ -188,7 +188,7 @@ gst_vpx_enc_multipass_mode_get_type (void) > + {VPX_RC_LAST_PASS, "Last pass of multipass encoding", "last-pass"}, > + {0, NULL, NULL} > + }; > +- static volatile GType id = 0; > ++ static GType id = 0; > + > + if (g_once_init_enter ((gsize *) & id)) { > + GType _id; > +@@ -210,7 +210,7 @@ gst_vpx_enc_kf_mode_get_type (void) > + {VPX_KF_DISABLED, "Don't automatically place keyframes", "disabled"}, > + {0, NULL, NULL} > + }; > +- static volatile GType id = 0; > ++ static GType id = 0; > + > + if (g_once_init_enter ((gsize *) & id)) { > + GType _id; > +@@ -232,7 +232,7 @@ gst_vpx_enc_tuning_get_type (void) > + {VP8_TUNE_SSIM, "Tune for SSIM", "ssim"}, > + {0, NULL, NULL} > + }; > +- static volatile GType id = 0; > ++ static GType id = 0; > + > + if (g_once_init_enter ((gsize *) & id)) { > + GType _id; > +@@ -256,7 +256,7 @@ gst_vpx_enc_scaling_mode_get_type (void) > + {VP8E_ONETWO, "1:2", "1:2"}, > + {0, NULL, NULL} > + }; > +- static volatile GType id = 0; > ++ static GType id = 0; > + > + if (g_once_init_enter ((gsize *) & id)) { > + GType _id; > +@@ -280,7 +280,7 @@ gst_vpx_enc_token_partitions_get_type (void) > + {VP8_EIGHT_TOKENPARTITION, "Eight token partitions", "8"}, > + {0, NULL, NULL} > + }; > +- static volatile GType id = 0; > ++ static GType id = 0; > + > + if (g_once_init_enter ((gsize *) & id)) { > + GType _id; > +@@ -303,7 +303,7 @@ gst_vpx_enc_er_flags_get_type (void) > + "Allow partitions to be decoded independently", "partitions"}, > + {0, NULL, NULL} > + }; > +- static volatile GType id = 0; > ++ static GType id = 0; > + > + if (g_once_init_enter ((gsize *) & id)) { > + GType _id; > +diff --git a/gst/audioparsers/gstac3parse.h b/gst/audioparsers/gstac3parse.h > +index 0e7af5acd7e5..81e2104d5e06 100644 > +--- a/gst/audioparsers/gstac3parse.h > ++++ b/gst/audioparsers/gstac3parse.h > +@@ -62,7 +62,7 @@ struct _GstAc3Parse { > + gint blocks; > + gboolean eac; > + gboolean sent_codec_tag; > +- volatile gint align; > ++ gint align; > + GstPadChainFunction baseparse_chainfunc; > + }; > + > +diff --git a/sys/rpicamsrc/gstrpicamsrc.c b/sys/rpicamsrc/gstrpicamsrc.c > +index a148d4106d52..f719acb4ce42 100644 > +--- a/sys/rpicamsrc/gstrpicamsrc.c > ++++ b/sys/rpicamsrc/gstrpicamsrc.c > +@@ -292,7 +292,7 @@ gst_rpi_cam_src_sensor_mode_get_type (void) > + "640x480 4:3 60.1-90fps", "640x480-fast"}, > + {0, NULL, NULL} > + }; > +- static volatile GType id = 0; > ++ static GType id = 0; > + if (g_once_init_enter ((gsize *) & id)) { > + GType _id; > + _id = g_enum_register_static ("GstRpiCamSrcSensorMode", values); > +diff --git a/sys/ximage/ximageutil.c b/sys/ximage/ximageutil.c > +index 57c9392c79fa..018b60515601 100644 > +--- a/sys/ximage/ximageutil.c > ++++ b/sys/ximage/ximageutil.c > +@@ -26,7 +26,7 @@ > + GType > + gst_meta_ximage_api_get_type (void) > + { > +- static volatile GType type; > ++ static GType type; > + static const gchar *tags[] = { "memory", NULL }; > + > + if (g_once_init_enter (&type)) { > diff --git a/patches/gst-plugins-good-1.18.4/series b/patches/gst-plugins-good-1.18.4/series > new file mode 100644 > index 000000000000..8ec8c07140fa > --- /dev/null > +++ b/patches/gst-plugins-good-1.18.4/series > @@ -0,0 +1,4 @@ > +# generated by git-ptx-patches > +#tag:base --start-number 1 > +0001-gst-don-t-use-volatile-to-mean-atomic.patch > +# 4e886ca480d92593b4af01c1f83c6503 - git-ptx-patches magic _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de