[FFmpeg-devel] [PATCH] restoring binary compatibility with ffmpeg 0.5

Michael Niedermayer michaelni
Thu Jun 10 22:18:07 CEST 2010

On Thu, Jun 10, 2010 at 09:49:47PM +0200, Reinhard Tartler wrote:
> On Thu, Jun 10, 2010 at 20:16:31 (CEST), Michael Niedermayer wrote:
> > On Thu, Jun 10, 2010 at 05:12:53PM +0200, Reinhard Tartler wrote:
> >> On Thu, Jun 10, 2010 at 17:04:45 (CEST), M?ns Rullg?rd wrote:
> >> 
> >> > Michael Niedermayer <michaelni at gmx.at> writes:
> >> >
> >> >> On Mon, Jun 07, 2010 at 07:24:30AM +0200, Reinhard Tartler wrote:
> > 3. Something we missed
> >
> > doing 1 is not hurting the existing linkers compared to 2 thus i must say
> > calling it unreasonable is in itself a bit unreasonable.
> >
> >> 
> >> I totally agree. Moreover, I can very well imagine that existing
> >> applications rely on this particular behavior.
> >
> > elaborate please, if the issue is real it likely can be fixed
> I wonder if this issue is related to
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24660.

a quick look says no, but i do not fully understand what 24660 is about
after reading afew random sentances from it

> what is actually the precise symptom of this bug? The fact that the
> runtime linker should not consider the version tag for 'weak' symbols?

The symptom of the bug is that
lets assume we have a symbol foo at bar in a libblah.so 
and lets assume we have an application that links to that

the symptom is that the linker will fail hard if it does not find
a symbol foo at bar in a libblah.so.
this is unrelated to the symbol being weak, its also unrelated to
which symbol is actually used in the end, its well possible the
linker choosesa different symbol in the end

the linker just searches over all the dependancies (libs) and if
one matches in libname to the one where the symbol was but that doesnt
contain the symbol it fails. This failure wont happen if it finds
a matching symbol in a previous dependancy nor if the symbol isnt versioned

The check appears to me to have the naive purpose of checking that
no symbols have been removed from a lib without a soname bump.
its too strict for this though as it triggers if the symbol has been
moved into a dependancy.

PS: the text above the if() mentions weak symbols just because global
symbols never reach this code (they lead to immedeate return success)

Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

It is dangerous to be right in matters on which the established authorities
are wrong. -- Voltaire
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100610/2b923a9e/attachment.pgp>

More information about the ffmpeg-devel mailing list