GNOME Bugzilla – Bug 601198
compile fails with "undefined reference to `gst_pad_peer_get_caps_reffed'"
Last modified: 2009-12-01 16:07:13 UTC
$ git status # On branch master .... Configuration Version : 0.10.25.1 Source code location : . Prefix : /opt/gnome2 Compiler : gcc Package name : GStreamer prerelease Package origin : Unknown package origin Documentation (manuals) : yes Documentation (API) : no Debug Logging : yes Pipeline XML load/save : yes Command-line parser : yes Option parsing in gst_init : yes Tracing subsystem : yes Allocation tracing : yes Plugin registry : yes Plugin support : yes Network support : yes Unit testing support : yes Debug : yes Profiling : no Building examples : yes Building test apps : no Building tests that fail : yes ... LINK libgstbase-0.10.la /space/svn/gnome/gstreamer/libs/gst/base/.libs/libgstbase-0.10.so: undefined reference to `gst_pad_peer_get_caps_reffed' /space/svn/gnome/gstreamer/libs/gst/base/.libs/libgstbase-0.10.so: undefined reference to `gst_pad_get_caps_reffed' collect2: ld returned 1 exit status Traceback (most recent call last):
+ Trace 218939
sys.exit(scanner_main(sys.argv))
glibtransformer.get_get_type_functions())
return dc.run()
self._link(bin_path, o_path)
subprocess.check_call(args)
raise CalledProcessError(retcode, cmd)
make[4]: *** [GstBase-0.10.gir] Fehler 1 $ gcc -v Using built-in specs. Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.1-4ubuntu8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu8)
hmm trace matches Bug 596224 that suspects "It seems the $(LIBTOOL) variable in the GLib-2.0.gir and related .gir targets isn't correct. OpenBSD installs a libtool in /usr/local/bin/ , but this one is not uses by gobject-introspection. Eventhough it's passed as an environment variable to configure and make (as a flag to make as well). So, replacing the $(LIBTOOL) variable with a full path to /usr/local/bin/libtool fixes the issue for me. Although a more general solution is desired I think."
Are you sure it's not just the local link order which is wrong ? I had quite a few issues with those. My guess is that it's picking a 'foreign' libgstbase.so to link against instead of the local (not-yet-installed but latest) libgstbase.so which contains the correct symbol.
Hmm shouldn't it figure that out on its own? Note that I am using jhbuild. It might be using the system-wide libstbase.so# Then again root@rivendell:/usr# find . -name libgstbase.so yielded no results.
> Then again root@rivendell:/usr# find . -name libgstbase.so > yielded no results. The name would be libgstbase-0.10.so
Ok I found it in /usr/lib and /usr/lib32 I moved away temporarily all libgst* files but to no effect. Hence I bet they do not link there. I reproduced the call from the initial error message nazgul@rivendell:/space/svn/gnome/gstreamer/libs/gst/base$ ../../../libtool --mode=link --tag=CC --silent gcc -o /space/svn/gnome/gstreamer/libs/gst/base/tmp-introspectWHByVy/GstBase-0.10 -L. -lgstbase-0.10 -pthread -Wl,--export-dynamic -L/opt/gnome2/lib64 -lgio-2.0 -lgirepository-1.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 /space/svn/gnome/gstreamer/libs/gst/base/tmp-introspectWHByVy/GstBase-0.10.o /space/svn/gnome/gstreamer/libs/gst/base/.libs/libgstbase-0.10.so: undefined reference to `gst_event_parse_sink_message' /space/svn/gnome/gstreamer/libs/gst/base/.libs/libgstbase-0.10.so: undefined reference to `gst_pad_peer_get_caps_reffed' /space/svn/gnome/gstreamer/libs/gst/base/.libs/libgstbase-0.10.so: undefined reference to `gst_pad_get_caps_reffed' collect2: ld returned 1 exit status nazgul@rivendell:/space/svn/gnome/gstreamer/libs/gst/base$ l l: command not found nazgul@rivendell:/space/svn/gnome/gstreamer/libs/gst/base$ ll insgesamt 760 -rw-r--r-- 1 nazgul nazgul 26323 2009-11-23 22:33 gstadapter.c -rw-r--r-- 1 nazgul nazgul 3626 2009-11-23 22:33 gstadapter.h -rw-r--r-- 1 nazgul nazgul 146948 2009-11-23 22:33 gstbasesink.c -rw-r--r-- 1 nazgul nazgul 9792 2009-11-23 22:33 gstbasesink.h -rw-r--r-- 1 nazgul nazgul 92441 2009-11-23 22:33 gstbasesrc.c -rw-r--r-- 1 nazgul nazgul 9975 2009-11-23 22:33 gstbasesrc.h -rw-r--r-- 1 nazgul nazgul 80313 2009-11-23 22:33 gstbasetransform.c -rw-r--r-- 1 nazgul nazgul 10368 2009-11-23 22:33 gstbasetransform.h -rw-r--r-- 1 nazgul nazgul 9872 2009-11-23 22:33 gstbitreader.c -rw-r--r-- 1 nazgul nazgul 3842 2009-11-23 22:33 gstbitreader.h -rw-r--r-- 1 nazgul nazgul 34767 2009-11-23 22:33 gstbytereader.c -rw-r--r-- 1 nazgul nazgul 19916 2009-11-23 22:33 gstbytereader-docs.h -rw-r--r-- 1 nazgul nazgul 20598 2009-11-23 22:33 gstbytereader.h -rw-r--r-- 1 nazgul nazgul 19962 2009-11-23 22:33 gstbytewriter.c -rw-r--r-- 1 nazgul nazgul 6336 2009-11-23 22:33 gstbytewriter.h -rw-r--r-- 1 nazgul nazgul 40228 2009-11-23 22:33 gstcollectpads.c -rw-r--r-- 1 nazgul nazgul 6866 2009-11-23 22:33 gstcollectpads.h -rw-r--r-- 1 nazgul nazgul 18625 2009-11-23 22:33 gstdataqueue.c -rw-r--r-- 1 nazgul nazgul 5736 2009-11-23 22:33 gstdataqueue.h -rw-r--r-- 1 nazgul nazgul 3569 2009-11-23 22:33 gstpushsrc.c -rw-r--r-- 1 nazgul nazgul 2280 2009-11-23 22:33 gstpushsrc.h -rw-r--r-- 1 nazgul nazgul 16209 2009-11-23 22:33 gsttypefindhelper.c -rw-r--r-- 1 nazgul nazgul 2873 2009-11-23 22:33 gsttypefindhelper.h -rw-r--r-- 1 nazgul nazgul 2449 2009-11-23 22:34 libgstbase-0.10.la -rw-r--r-- 1 nazgul nazgul 328 2009-11-23 22:34 libgstbase_0.10_la-gstadapter.lo -rw-r--r-- 1 nazgul nazgul 330 2009-11-23 22:34 libgstbase_0.10_la-gstbasesink.lo -rw-r--r-- 1 nazgul nazgul 328 2009-11-23 22:34 libgstbase_0.10_la-gstbasesrc.lo -rw-r--r-- 1 nazgul nazgul 340 2009-11-23 22:34 libgstbase_0.10_la-gstbasetransform.lo -rw-r--r-- 1 nazgul nazgul 332 2009-11-23 22:34 libgstbase_0.10_la-gstbitreader.lo -rw-r--r-- 1 nazgul nazgul 334 2009-11-23 22:34 libgstbase_0.10_la-gstbytereader.lo -rw-r--r-- 1 nazgul nazgul 334 2009-11-23 22:34 libgstbase_0.10_la-gstbytewriter.lo -rw-r--r-- 1 nazgul nazgul 336 2009-11-23 22:34 libgstbase_0.10_la-gstcollectpads.lo -rw-r--r-- 1 nazgul nazgul 332 2009-11-23 22:34 libgstbase_0.10_la-gstdataqueue.lo -rw-r--r-- 1 nazgul nazgul 328 2009-11-23 22:34 libgstbase_0.10_la-gstpushsrc.lo -rw-r--r-- 1 nazgul nazgul 342 2009-11-23 22:34 libgstbase_0.10_la-gsttypefindhelper.lo -rw-r--r-- 1 nazgul nazgul 40874 2009-11-23 22:34 Makefile -rw-r--r-- 1 nazgul nazgul 2593 2009-11-23 22:33 Makefile.am -rw-r--r-- 1 nazgul nazgul 45340 2009-11-23 22:34 Makefile.in -rw-r--r-- 1 nazgul nazgul 131 2009-11-23 22:33 README drwx------ 3 nazgul nazgul 4096 2009-11-23 22:34 tmp-introspectWHByVy
What's up with this? surely something picks up a wrong version somewhere, the symbol is clearly defined in gstpad.c. It got renamed from _refed() at some point, make a make clean is needed or something.