GNOME Bugzilla – Bug 641178
rtpvp8: build problem, needs to link with libgstbase-0.10
Last modified: 2011-02-01 20:14:16 UTC
Created attachment 179829 [details] [review] a patch to gstreamer.pc.in of gstreamer-0.10.32.1+git20110131 1. I use Ubuntu 11.04(natty, gcc-4.5.2) and git version of gstreamer family. 2. From yesterday on I noticed gstreamer-plugins-bad-0.10.32.1+git20110131 could not be built without modifying /usr/lib/pkgconfig/gstreamer-0.10.pc. The build process aborts at the time of linking .libs/libgstrtpvp8.so. Error messages are as follows: 3. I found that warnings such as 'undefined refernce to gst_adapter_new' at link time is due to unspecified libgstbase-0.10.so, and this is part of gstreamer-0.10.32.1. 4. As a try, I manually added '-lgstbase-0.10 to relevant part of /usr/lib/pkgconfig/gstreamer-0.10.pc, and build process of gst-plugins-bad-0.10.3.2.1+git20110131 was flawlessly completed. 5. A patch to gstreamer-0.10.32.1+git20110131 --- gstreamer0.10-0.10.32.1+git20110131.orig/pkgconfig/gstreamer.pc.in 2010-10-08 21:45:01.000000000 +0900 +++ gstreamer0.10-0.10.32.1+git20110131/pkgconfig/gstreamer.pc.in 2011-02-02 04:00:27.000000000 +0900 @@ -13,5 +13,5 @@ Description: Streaming media framework Requires: @GST_PKG_DEPS@@LIBXML_PKG@ Version: @VERSION@ -Libs: -L${libdir} -lgstreamer-@GST_MAJORMINOR@ +Libs: -L${libdir} -lgstreamer-@GST_MAJORMINOR@ -lgstbase-@GST_MAJORMINOR@ Cflags: -I${includedir} .... libtool: link: /usr/bin/nm -B .libs/libgstrtpvp8_la-gstrtpvp8.o .libs/libgstrtpvp8_la-gstrtpvp8depay.o .libs/libgstrtpvp8_la-gstrtpvp8pay.o | sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | /bin/sed 's/.* //' | sort | uniq > .libs/libgstrtpvp8.exp libtool: link: /bin/grep -E -e "^_*gst_plugin_desc$" ".libs/libgstrtpvp8.exp" > ".libs/libgstrtpvp8.expT" libtool: link: mv -f ".libs/libgstrtpvp8.expT" ".libs/libgstrtpvp8.exp" libtool: link: echo "{ global:" > .libs/libgstrtpvp8.ver libtool: link: cat .libs/libgstrtpvp8.exp | sed -e "s/\(.*\)/\1;/" >> .libs/libgstrtpvp8.ver libtool: link: echo "local: *; };" >> .libs/libgstrtpvp8.ver libtool: link: gcc -shared .libs/libgstrtpvp8_la-gstrtpvp8.o .libs/libgstrtpvp8_la-gstrtpvp8depay.o .libs/libgstrtpvp8_la-gstrtpvp8pay.o -lgstrtp-0.10 /usr/lib/libgstreamer-0.10.so /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so /usr/lib/libxml2.so /usr/lib/libgthread-2.0.so -lrt /usr/lib/libglib-2.0.so -pthread -pthread -Wl,-Bsymbolic-functions -Wl,-z -Wl,defs -Wl,-O1 -Wl,--as-needed -pthread -pthread -pthread -Wl,-soname -Wl,libgstrtpvp8.so -Wl,-version-script -Wl,.libs/libgstrtpvp8.ver -o .libs/libgstrtpvp8.so .libs/libgstrtpvp8_la-gstrtpvp8depay.o: In function `gst_rtp_vp8_depay_init': /home/brofkims/build/gst-plugins-bad0.10-0.10.21.1+git20110201/gst/rtpvp8/gstrtpvp8depay.c:52: undefined reference to `gst_adapter_new' .libs/libgstrtpvp8_la-gstrtpvp8depay.o: In function `gst_rtp_vp8_depay_process': /home/brofkims/build/gst-plugins-bad0.10-0.10.21.1+git20110201/gst/rtpvp8/gstrtpvp8depay.c:120: undefined reference to `gst_adapter_clear' /home/brofkims/build/gst-plugins-bad0.10-0.10.21.1+git20110201/gst/rtpvp8/gstrtpvp8depay.c:154: undefined reference to `gst_adapter_push' /home/brofkims/build/gst-plugins-bad0.10-0.10.21.1+git20110201/gst/rtpvp8/gstrtpvp8depay.c:171: undefined reference to `gst_adapter_clear' /home/brofkims/build/gst-plugins-bad0.10-0.10.21.1+git20110201/gst/rtpvp8/gstrtpvp8depay.c:160: undefined reference to `gst_adapter_available' /home/brofkims/build/gst-plugins-bad0.10-0.10.21.1+git20110201/gst/rtpvp8/gstrtpvp8depay.c:160: undefined reference to `gst_adapter_take_buffer' .libs/libgstrtpvp8_la-gstrtpvp8pay.o: In function `gst_rtp_vp8_pay_parse_frame': /home/brofkims/build/gst-plugins-bad0.10-0.10.21.1+git20110201/gst/rtpvp8/gstrtpvp8pay.c:134: undefined reference to `gst_bit_reader_new_from_buffer' /home/brofkims/build/gst-plugins-bad0.10-0.10.21.1+git20110201/gst/rtpvp8/gstrtpvp8pay.c:301: undefined reference to `gst_bit_reader_free' /home/brofkims/build/gst-plugins-bad0.10-0.10.21.1+git20110201/gst/rtpvp8/gstrtpvp8pay.c:306: undefined reference to `gst_bit_reader_free' collect2: ld returned 1 exit status make[4]: *** [libgstrtpvp8.la] error 1 make[4]: Leaving directory `/home/brofkims/build/gst-plugins-bad0.10-0.10.21.1+git20110201/gst/rtpvp8' make[3]: *** [rtpvp8] error 2 make[3]: Leaving directory `/home/brofkims/build/gst-plugins-bad0.10-0.10.21.1+git20110201/gst' make[2]: *** [all-recursive] error 1 make[2]: Leaving directory `/home/brofkims/build/gst-plugins-bad0.10-0.10.21.1+git20110201' make[1]: *** [all] error 2 make[1]: Leaving directory `/home/brofkims/build/gst-plugins-bad0.10-0.10.21.1+git20110201' make: *** [debian/stamp-makefile-build] error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2
That's not the right solution. The plugin needs to link against libgstbase-0.10 as well if it uses those APIs. Should be fixed in -bad git now: commit 17c2b30e9ba502a1a7b6b7e14c63ebc6f43ec908 Author: Tim-Philipp Müller <tim.muller@collabora.co.uk> Date: Tue Feb 1 20:01:13 2011 +0000 rtpvp8: also link against libgstbase-0.10 for adapter and bit reader API https://bugzilla.gnome.org/show_bug.cgi?id=641178 Thanks for the bug report and patch.