GNOME Bugzilla – Bug 684707
Error while running gst-inspect or gst-launch: undefined symbol: g_mutex_lock
Last modified: 2012-09-25 11:29:33 UTC
I am currently using gstreamer version 0.10.36 and running on CentOS VM I got this VM from somewhere with pre-installed gstreamer package (I dont remember the vesion but its older one). When I run the commands gst-launch or gst-inspect then they work fine on the this older version. However, when I updated the gstreamer to version 0.10.36 (as it was a mandatory requirement/dependency for building my standalone application and other modules), on running the commands gst-launch/gst-inspect I get the following error, /usr/bin/gst-inspect-0.10: symbol lookup error: /usr/lib64/libgstreamer-0.10.so.0: undefined symbol: g_mutex_lock Is there anything which I have not installed properly? Please Help. Thanks, -Viranjan
g_mutex_lock has been always available: http://developer.gnome.org/glib/2.32/glib-Threads.html#g-mutex-lock Which version of glib2 is on that system?
It's almost certainly an issue on your end.. setting NEEDINFO for question in comment #2.
Thanks for the info. I am using the glib version 2.32.4 which I have downloaded from the site http://ftp.gnome.org/pub/gnome/sources/glib/2.32/glib-2.32.4.tar.xz I have installed it manually through commands ./configure --libdir=/usr/lib64 make make install I could not install it using the following command on CentOS yum install glib now my /usr/lib64 have following five .so files namely libgstreamer-0.10.so libgstreamer-0.10.so.0 libgstreamer-0.10.so.0.25.0 libgstreamer-0.10.so.0.27.0 libgstreamer-0.10.so.0.30.0
(In reply to comment #3) > I could not install it using the following command on CentOS > yum install glib Because it is already installed and is probably called glib2 instead. So you might have two colliding glib's around now. You can find out which path and glib version you link against by running the commands pkg-config --modversion glib-2.0 pkg-config --libs glib-2.0
Created attachment 225128 [details] Packages on my machine Packages on my machine.
Thanks Andre ! I have installed the proper updated version of glib and also there are no colliding glibs. Please find the attached file which mention about the installed packages.
(In reply to comment #5) > Created an attachment (id=225128) [details] > Packages on my machine Not really interesting in this case, plus this doesn't include version information, plus your system packages don't matter if you link against something self-built anyway. See comment 4.
Andre, in the /usr/lib64 directory i have libraries of glib namely libglib-2.0.so libglib-2.0.so.0 libglib-2.0.so.0.3200.4 I am seeing g_mutex_lock symbol in all the above libraries when I run the nm tool.
I don't care. :) What about answering my questions in comment 4 instead?
I see this, [root@devweb00 src]# pkg-config --modversion glib-2.0 2.32.4 [root@devweb00 src]# pkg-config --libs glib-2.0 -lglib-2.0 (Please note I am new to linux and gstreamer.)
(In reply to comment #0) > However, when I updated the gstreamer to version 0.10.36 How did you do that exactly, and which paths and parameters did you use? Exact commands and steps are very welcome.
Please run the following commands and paste their output (without the '$' at the beginning): $ ldd /usr/bin/gst-inspect-0.10 $ ldd /usr/lib64/libgstreamer-0.10.so
[root@devweb00 gst]# ldd /usr/bin/gst-inspect-0.10 linux-vdso.so.1 => (0x00007fff8e6c0000) libgstreamer-0.10.so.0 => /usr/lib64/libgstreamer-0.10.so.0 (0x00007f3c5ebf7000) libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00000039e2000000) libm.so.6 => /lib64/libm.so.6 (0x00000039d8800000) libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00000039d9000000) libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00000039da000000) libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00000039d9c00000) libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00000039d8000000) librt.so.1 => /lib64/librt.so.1 (0x00000039d7c00000) libdl.so.2 => /lib64/libdl.so.2 (0x00000039d7000000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00000039d7800000) libc.so.6 => /lib64/libc.so.6 (0x00000039d7400000) libffi.so.5 => /usr/lib64/libffi.so.5 (0x00000035f6e00000) libz.so.1 => /lib64/libz.so.1 (0x00000039d8400000) /lib64/ld-linux-x86-64.so.2 (0x00000039d6c00000) [root@devweb00 gst]# ldd /usr/lib64/libgstreamer-0.10.so linux-vdso.so.1 => (0x00007ffffe3ff000) libffi.so.5 => /usr/lib64/libffi.so.5 (0x00007f22dfc85000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f22dfa5a000) libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007f22df80d000) libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f22df60c000) libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007f22df409000) libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f22df0ea000) libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f22ded99000) libm.so.6 => /lib64/libm.so.6 (0x00007f22deb15000) librt.so.1 => /lib64/librt.so.1 (0x00007f22de90c000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f22de708000) libc.so.6 => /lib64/libc.so.6 (0x00007f22de376000) /lib64/ld-linux-x86-64.so.2 (0x00000039d6c00000) libz.so.1 => /lib64/libz.so.1 (0x00007f22de15f000) [root@devweb00 gst]# ldd /usr/lib64/libgstreamer-0.10.so.0 libgstreamer-0.10.so.0 libgstreamer-0.10.so.0.25.0 libgstreamer-0.10.so.0.27.0 libgstreamer-0.10.so.0.30.0 [root@devweb00 gst]# ldd /usr/lib64/libgstreamer-0.10.so.0 linux-vdso.so.1 => (0x00007fff545ff000) libffi.so.5 => /usr/lib64/libffi.so.5 (0x00007f0463ee2000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0463cb7000) libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007f0463a6a000) libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f0463869000) libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007f0463666000) libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f0463347000) libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f0462ff6000) libm.so.6 => /lib64/libm.so.6 (0x00007f0462d72000) librt.so.1 => /lib64/librt.so.1 (0x00007f0462b69000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f0462965000) libc.so.6 => /lib64/libc.so.6 (0x00007f04625d3000) /lib64/ld-linux-x86-64.so.2 (0x00000039d6c00000) libz.so.1 => /lib64/libz.so.1 (0x00007f04623bc000) [root@devweb00 gst]#
(In reply to comment #13) > [root@devweb00 gst]# ldd /usr/bin/gst-inspect-0.10 > libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00000039d9000000) > libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x00000039da000000) > libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00000039d9c00000) > libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00000039d8000000) > [root@devweb00 gst]# ldd /usr/lib64/libgstreamer-0.10.so > libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007f22df80d000) > libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f22df60c000) > libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007f22df409000) > libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f22df0ea000) Mismatches in paths. Closing as INVALID. Plus there is no reason to do this with your "root" account.