After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 113748 - Plugin(s) not linked to libgstreamer
Plugin(s) not linked to libgstreamer
Status: RESOLVED NOTABUG
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
0.6.1
Other Linux
: Normal normal
: 0.6.x
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2003-05-26 14:40 UTC by Magnus Bergman
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
A few lines of code which reproduces the bug (580 bytes, text/plain)
2003-05-30 16:12 UTC, Magnus Bergman
  Details
patch (422 bytes, patch)
2003-06-30 18:18 UTC, David Schleef
none Details | Review

Description Magnus Bergman 2003-05-26 14:40:23 UTC
The plugin libgstoptscheduler.so (and possibly others too) is not linked with libgstreamer (as can be seen with ldd). This causes a problem (undefined symbol: _gst_bin_type) when gstreamer itself is used in a plugin (at least in my case).    The problem can be avoided by preloading libgstreamer with LD_PRELOAD.
Comment 1 David Schleef 2003-05-27 20:45:28 UTC
Plugins are not supposed to be linked with libgstreamer, since they
are designed to be loaded by it.

Can you provide more information about what you are trying to do?
Comment 2 Magnus Bergman 2003-05-28 12:48:21 UTC
I wrote a plugin to a comercial closed-source source system. This plugin
uses gstreamer (and is linked to libgstreamer). Loading this plugin is
no problem. But then gstreamer in turn tries to load its plugins it
fails for libgstoptscheduler.so.

libgstoptscheduler.so: undefined symbol: _gst_bin_type

This symbol is defined in libgstreamer, but accessible to gstreamers
plugins. I suspect this can be avoided with the RTDL_GLOBAL flag to
dlopen() when my plugin is loaded (from the closed-source program).
Comment 3 David Schleef 2003-05-29 05:48:54 UTC
Could you try to reproduce the problem by modifying an existing plugin
(or, say, gst-template/gst-plugin/)?  I can't possibly imagine why
this might happen.
Comment 4 Benjamin Otte (Company) 2003-05-30 13:02:33 UTC
You try to use GStreamer plugins from an application, that is not
linked against GStreamer for whatever reason. Is this correct?
Comment 5 Magnus Bergman 2003-05-30 15:32:55 UTC
I'm writing a plugin to a system made by verity, lets call that the
verity-plugin. This verity-plugin uses gstreamer and is linked to
libgstreamer. So the gstreamer-plugin (libgstoptscheduler.so in this
case) is loaded by the verity-plugin which in turn is loaded by a
closed-source application. I will try to reproduce this error without
the closed-source application as soon as possible.

Correction to my prevoius comment: The symbol specified in
libgstreamer (_gst_bin_type) is NOT accessible to the gstreamer-plugin.

Comment 6 Magnus Bergman 2003-05-30 16:12:04 UTC
Created attachment 16993 [details]
A few lines of code which reproduces the bug
Comment 7 David Schleef 2003-06-30 18:18:48 UTC
Created attachment 17931 [details] [review]
patch
Comment 8 David Schleef 2003-06-30 18:19:12 UTC
I understand now.

One way to get around this is to have the verity-plugin reload itself
using the RTLD_GLOBAL flag. See the patch.
Comment 9 David Schleef 2003-07-17 08:38:49 UTC
If you want to dicuss this further, please reopen.