[FFmpeg-devel] ABI break in 4.3

Jan Engelhardt jengelh at inai.de
Sun Jul 5 15:10:16 EEST 2020


On Sunday 2020-07-05 13:39, Tomas Härdin wrote:
>>> Downgrading to a .so file with a lower minor version number than
>>> the program is built against can never be expected to work. Else
>>> we couldn't add new functions without a major bump.
>> 
>> It requires the use ELF symbol versions -- which ffmpeg fails to
>> do properly.[...]
>
>This is a fair point. I didn't actually know the loader can do stuff
>like this, sounds super handy. How hard would it be to get that going?

Change libavcodec.v to

LIBAVCODEC_58 {
  global:
  av_foo;
  av_bar;
  av_whatever_else_there_is;...
  local:
  *;
};
LIBAVCODEC_58.91 {
  global:
  avpriv_mpeg4audio_get_config2;
} LIBAVCODEC_58;
LIBAVCODEC_58.123 { /* future example */
  global:
  avblahblah;
} LIBAVCODEC_58.91;

Repeat likewise for other .v files. The file is no longer a template. The
automatic substitution of "_MAJOR" by the build system needs to cease. Version
numbers in the file are supposed to be fixed (among the set of all .so files
that share a SONAME).


More information about the ffmpeg-devel mailing list