diff --git a/configure.ac b/configure.ac index d50c91ec3f..796925af1f 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 a59ea5af18..dff1c80cc2 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 fa518cd033..674b30db55 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 32fd81182d..3cbe181f6b 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