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

Reply via email to