[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