[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 @@
+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.
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
LIBAVFORMAT_52 {
global: av_init_packet;
};
LIBAVCODEC_$MAJOR {
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