For LIBDEPS, we offer both a public and a private mode. For SYSLIBDEPS we only offer a public mode. As a result, all SYSLIBDEPS are public.
However, in many cases (perhaps much more often than for LIBDEPS), it is the case that SYSLIBDEPS should be private: a great example is liblzma which is needed for libunwind, but ends up on the link line for almost everything.
Additionally, there are some uses of LIBS in the codebase. These are used mainly at a global level, but do not participate in transitivity at all. We should eliminate all uses of LIBS and use SYSLIBDEPS[_PRIVATE] exclusively to describe system library dependencies.