On Sunday 2020-07-05 12:06, Tomas Härdin wrote: > >> Or, summarized: A program may have been built with 4.3 but is combined >> with 4.2.3 at runtime, then this can happen: >> >> a = avcodec_dct_alloc(); // allocates 896 >> #ifdef HAVE_STRUCT_AVDCT_GET_PIXELS_UNALIGNED >> a->get_pixels_unaligned = ffunc; // boom accessing byte ~952 >> #endif > >"Doctor it hurts when I do this!"
The application of this saying is short-sighted. It confounds basic exercise of features with overuse of said features. For lack of a better analogy, moving a leg normally _ought_ not to hurt in healthy humans. What is seen as "normal" is indeed situation-dependent, but the only other way to look at it is that ffmpeg is a disabled entity with special needs. >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. Then you are doing it wrong. If one tries to run a contemporary program on an older distribution, which certainly has an older glibc, it refuses to run - which is much preferable to a crash at an arbitrary point down the line. It requires the use ELF symbol versions -- which ffmpeg fails to do properly. Between 4.2.3 and 4.3, avpriv_mpeg4audio_get_config2@@LIBAVCODEC_58 which is wrong. It should have been avpriv_mpeg4audio_get_config2@@LIBAVCODEC_58.91 Then the runtime linker ld-linux.so would have caught the problem at startup, because then, a program built with 4.3 would have a minimum requirement on elfsymver "58.91", and *not just* "58". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".