[FFmpeg-devel] Upgrade Trouble

Uoti Urpala uoti.urpala
Sat Dec 5 13:22:58 CET 2009

On Sat, 2009-12-05 at 12:56 +0100, Michael Niedermayer wrote:
> On Fri, Dec 04, 2009 at 09:24:46PM +0100, Reinhard Tartler wrote:
> > RTLD_DEEPBIND is a flag for dlopen(). We are not talking about
> > applications that load ffmpeg this way but are dynamically linked.
> for the case that
> application -> libA
> application -> libB.0
> libA -> libB.1
> application will have their references bound to libB.0 before libB.1 
> similarly symbols referenced from libA will be bound to libB.0 not libB.1
> (this is required by the ELF spec and not particularly sane, after all libA
>  specifies a dependancy on libB.1 not .0)

I think he meant that a flag for dlopen() can't be a solution for
linking where dlopen() is not used.

> > I'm happy to read that you take this problem seriously.  I'd be willing
> > to help with implementing symbol versioning in FFmpeg, if you can give
> > me hints what kind of work would be helpful.
> If we do have to use versioning, then it seems changing libavutil to use
> it would solve the problem at hand, that also would avoid any problems
> with lavc->lavf moves for the moment.

You mean using symbol versioning for libavutil only, and not
libavformat/libavcodec? That's undesirable; introducing symbol
versioning requires a rebuild of all the depending programs/libraries to
get them to use the versioned symbols, and it's better to get that done
for all FFmpeg libraries in one pass. And the versioning will be needed
for the other libs too.

More information about the ffmpeg-devel mailing list