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

Reimar Döffinger Reimar.Doeffinger
Sun Jun 6 22:29:25 CEST 2010

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 @@
+        global: av_init_packet;
+        global: av_init_packet;
         global: *;

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.
I think the real mistake was made during the move: the version should
never have been changed, despite the move to a different library...
Am I right that changing the linker script to
        global: av_init_packet;
        global: *;
would avoid the compatibility issue with 0.5 (though breaking it
for several versions in-between)?

More information about the ffmpeg-devel mailing list