[FFmpeg-devel] ABI break in 4.3

Timo Rothenpieler timo at rothenpieler.org
Sun Jul 5 17:43:47 EEST 2020


On 05.07.2020 14:10, Jan Engelhardt wrote:
> 
> 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).
> 

Won't that break the entire ABI of anything currently linked, and thus 
would require a major bump?

Generally, this seems incredibly hard to maintain and will very likely 
cause confusion every time someone adds stuff in the future.


More information about the ffmpeg-devel mailing list