On Wed, 2020-04-15 at 13:34 +0800, Paul Wise wrote: > Generally one should only link a program with libraries that provide > symbols that are directly used by the program.
Ok, good to hear transitive linking can be assumed to work these days! > If libtheoraenc uses some functions from libtheoradec then it should > link against libtheoradec. This is fixed in upstream git with a line in lib/Makefile.am: libtheoraenc_la_LIBADD = libtheoradec.la Probably backporting that should be the fix for this with the current Debian package. > > Petters patch will remove the dependency entirely, > > I'm not sure this is the correct solution, since it duplicates > libtheoradec functions inside libtheoraenc and might also add those > functions the ABI of libtheoraenc. I think this is a cleaner way to address the issue for the next upstream release, if libraries are better off self-contained. There is already a lot of code duplicated between libtheoradec and libtheoraenc for performance reasons, and ABI visibility is controlled with a version script passed to the linker. The hadful of small functions in info.c added by Petter's patch are the only shared code not so duplicated. Thanks for the quick clarification! -r