[gst-devel] Removing symbols from plugins

in7y118 at public.uni-hamburg.de in7y118 at public.uni-hamburg.de
Mon Feb 16 08:17:13 CET 2004


Uh, this probably needs a little bit more context. So here it goes:

Since I'm not having much time atm, I decided to do an easy task. This easy 
task was wrapping Xine. So I wrote a little plugin that initializes libxine, 
installed it and ran gst-register.
Guess what happened.
Right, there are a lot of symbol clashes between Xine and GStreamer. Not the 
Xine or GStreamer code itself, but the libraries that both projects ship 
themselves without properly putting them in their namespace. This includes at 
least ffmpeg, goom and modplug on the GStreamer side and ffmpeg, goom, mad and 
tvtime on the Xine side.
It doesn't help that both Xine and GStreamer (via glib) use the RTLD_GLOBAL 
flag to open plugins.

Now I'm still actively looking for a solution to make it possible for an app 
to use all of Xine and all of GStreamer at the same time.
Anybody has any ideas about how we can make this work?


As for this particular solution:
I don't think it's a good to require this, because it isn't portable and 
doesn't buy us that much. It would be nice to start doing this anyway though, 
so we have clean plugins.

Benjamin

PS: Any questions about "why wrapping Xine?" should be directed to George 
Leigh Mallory



Quoting Ramón García <ramon_garcia_f at yahoo.com>:

> After talking to Company yestardey on IRC, we agreed
> that it would be convenient to remove all symbols from
> plugins except plugin_init and symbols that are part
> of the plugin API.
> 
> There is a way to do that in Linux, but it is not
> portable to non-ELF platforms. It works by creating a
> file "versioned symbols" (although one can refuse to
> use versions) with the following syntax:
> 
> { global: plugin_init; local: * }; 
> 
> and giving it the ld command.
> 
> To do this in a portable way, one can use libtool. But
> libtool does this correctly on Linux only after
> version 1.5.3, very recently released.
> 
> Is it OK to require libtool 1.5.3?
> 
> That would only bother developers. Packages and end
> users would not be affected. And developers only would
> generate plugins with too many symbols, otherwise
> correct.
> 
> Ramon
> 
> ___________________________________________________
> Yahoo! Messenger - Nueva versión GRATIS
> Super Webcam, voz, caritas animadas, y más...
> http://messenger.yahoo.es
> 
> 
> -------------------------------------------------------
> SF.Net is sponsored by: Speed Start Your Linux Apps Now.
> Build and deploy apps & Web services for Linux with
> a free DVD software kit from IBM. Click Now!
> http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> 






More information about the gstreamer-devel mailing list