On Sun, Oct 11, 2015 at 9:38 PM, Timothy Gu <[email protected]> wrote: > On Sun, Oct 11, 2015 at 6:31 PM Ganesh Ajjanagadde <[email protected]> wrote: > >> Just to make this clear: suppose (hypothetically) av_ctz was public. >> If my application never used av_ctz, but I (or my distro) upgrades >> libav*, then I don't need to recompile/relink my code? >> > > If we are only talking about av_ctz here, no, you don't need to rebuild > your code. But if a user uses a new libavutil but an old libavcodec that > still uses av_ctz, things will crash and burn.
Yes, because libavcodec would use still have some stub in it for the link to libavutil (for av_ctz). This would result in the crash. Thanks, now I understand why dll/dependency hell happens, and why ABI breakage is such a serious issue: some library depending on some other in turn depending on something else and this ancestor breaks something, unleashing hell downstream. And it now makes sense to me why things like glibc move mountains with all kinds of crazy stuff just to maintain ABI. I guess it gets even better if one has circular deps. > > Timothy > _______________________________________________ > ffmpeg-devel mailing list > [email protected] > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel _______________________________________________ ffmpeg-devel mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
