From: Sebastian Dröge Date: Wed, 20 Jan 2010 05:58:28 +0000 (+0100) Subject: build: Define G_THREADS_MANDATORY everywhere X-Git-Tag: RELEASE-0.10.26~37 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f137d188cb642094bcd21de75e0856907b99dc22;p=platform%2Fupstream%2Fgstreamer.git build: Define G_THREADS_MANDATORY everywhere We require threads to be supported in any case and defining this will simplify the mutex, condition variable, etc. macros from gthread to not always check if threads are really supported. Fixes bug #607481. --- diff --git a/configure.ac b/configure.ac index d50c91e..796925a 100644 --- a/configure.ac +++ b/configure.ac @@ -619,7 +619,7 @@ dnl - src and build dirs need to be added because every piece that gets built dnl will need the GStreamer source and generated headers dnl LIBS: XML doesn't need to be added because we don't explicitly use symbols dnl from LibXML except for in the core library -GST_ALL_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS $XML_CFLAGS \$(GST_OPTION_CFLAGS)" +GST_ALL_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS $XML_CFLAGS \$(GST_OPTION_CFLAGS) -DG_THREADS_MANDATORY" dnl FIXME: check if LTLIBINTL is needed everywhere dnl I presume it is given that it contains the symbols that _() stuff maps to diff --git a/gst/gst.c b/gst/gst.c index a59ea5a..dff1c80 100644 --- a/gst/gst.c +++ b/gst/gst.c @@ -364,7 +364,11 @@ gst_init_get_option_group (void) * called gst_init() yet or initialised the threading system otherwise, we * better issue a warning here (since chances are high that the application * has already called other GLib functions such as g_option_context_new() */ +#if GLIB_CHECK_VERSION (2,20,0) + if (!g_thread_get_initialized ()) { +#else if (!g_thread_supported ()) { +#endif g_warning ("The GStreamer function gst_init_get_option_group() was\n" "\tcalled, but the GLib threading system has not been initialised\n" "\tyet, something that must happen before any other GLib function\n" @@ -417,7 +421,11 @@ gst_init_check (int *argc, char **argv[], GError ** err) #endif gboolean res; +#if GLIB_CHECK_VERSION (2,20,0) + if (!g_thread_get_initialized ()) +#else if (!g_thread_supported ()) +#endif g_thread_init (NULL); if (gst_initialized) { @@ -514,8 +522,8 @@ prepare_for_load_plugin_func (gpointer data, gpointer user_data) #ifndef GST_DISABLE_OPTION_PARSING static void -split_and_iterate (const gchar * stringlist, gchar * separator, GFunc iterator, - gpointer user_data) +split_and_iterate (const gchar * stringlist, gchar * separator, + GFunc iterator, gpointer user_data) { gchar **strings; gint j = 0; @@ -562,7 +570,11 @@ init_pre (GOptionContext * context, GOptionGroup * group, gpointer data, g_type_init (); /* we need threading to be enabled right here */ +#if GLIB_CHECK_VERSION (2,20,0) + g_assert (g_thread_get_initialized ()); +#else g_assert (g_thread_supported ()); +#endif _gst_debug_init (); #ifdef ENABLE_NLS diff --git a/pkgconfig/gstreamer-uninstalled.pc.in b/pkgconfig/gstreamer-uninstalled.pc.in index fa518cd..674b30d 100644 --- a/pkgconfig/gstreamer-uninstalled.pc.in +++ b/pkgconfig/gstreamer-uninstalled.pc.in @@ -11,4 +11,4 @@ Description: Streaming media framework, Not Installed Version: @VERSION@ Requires: @GST_PKG_DEPS@@LIBXML_PKG@ Libs: ${libdir}/gst/libgstreamer-@GST_MAJORMINOR@.la -Cflags: -I${includedir} -I@srcdir@/.. -I${includedir}/libs -I@srcdir@/../libs +Cflags: -I${includedir} -I@srcdir@/.. -I${includedir}/libs -I@srcdir@/../libs -DG_THREADS_MANDATORY diff --git a/pkgconfig/gstreamer.pc.in b/pkgconfig/gstreamer.pc.in index 32fd811..3cbe181 100644 --- a/pkgconfig/gstreamer.pc.in +++ b/pkgconfig/gstreamer.pc.in @@ -10,4 +10,4 @@ Description: Streaming media framework Requires: @GST_PKG_DEPS@@LIBXML_PKG@ Version: @VERSION@ Libs: -L${libdir} -lgstreamer-@GST_MAJORMINOR@ -Cflags: -I${includedir} +Cflags: -I${includedir} -DG_THREADS_MANDATORY