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

Måns Rullgård mans
Sun Jun 6 23:32:19 CEST 2010


Michael Niedermayer <michaelni at gmx.at> writes:

> On Sun, Jun 06, 2010 at 10:59:09PM +0200, Reimar D?ffinger wrote:
>> On Sun, Jun 06, 2010 at 10:45:18PM +0200, Michael Niedermayer wrote:
>> > On Sun, Jun 06, 2010 at 10:29:25PM +0200, Reimar D?ffinger wrote:
>> > > On Sun, Jun 06, 2010 at 09:38:07PM +0200, Reinhard Tartler wrote:
>> > > > In any case, find below the 'best' fix, that admittedly only works on
>> > > > gnu platforms. Michael, please comment if you prefer the half fix that
>> > > > fixes the issue on gcc/gas platforms (and doesn't regress on others) or
>> > > > bumping major of libavformat.
>> > > 
>> > > How sure are we this is actually correct?
>> > > The cases I could find documented (which only involve one library)
>> > > also require changes to the version script.
>> > > In case it was only one library, something like this:
>> > > Index: libavcodec.v
>> > > ===================================================================
>> > > --- libavcodec.v        (revision 23508)
>> > > +++ libavcodec.v        (working copy)
>> > > @@ -1,3 +1,7 @@
>> > > +LIBAVFORMAT_52 {
>> > > +        global: av_init_packet;
>> > > +};
>> > >  LIBAVCODEC_$MAJOR {
>> > > +        global: av_init_packet;
>> > >          global: *;
>> > > -};
>> > > +} LIBAVFORMAT_52;
>> > > 
>> > > However here we have the problem that this would break e.g. on Solaris,
>> > > since a symbol is not allowed to have multiple versions there.
>> > 
>> > +LIBAVFORMAT_52 {
>> > +        global: av_init_packet;
>> > +};
>> >  LIBAVCODEC_$MAJOR {
>> >          global: *;
>> > -};
>> > +} LIBAVFORMAT_52;
>> > 
>> > above does not work?
>> 
>> It does, but it does not do what I guess you want.
>> It will only generate av_init_packet@@LIBAVFORMAT_52,
>
> yes
>
>> so it will still break compatibility to some previous versions.
>
> do you assume this or have you tested this?

It changes the name of the symbol.  Anything linked against current
libavcodec will fail after this change.

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list