On 28/01/2025 22:28, Sam Hartman wrote:
"Russ" == Russ Allbery <r...@debian.org> writes:
Russ> recollection (it's been a *lot* of years so I'm hoping I'm
Russ> getting this right) is that this interfered with proper symbol
Russ> versioning and could cause the symbols to be resolved weirdly
Russ> in a way that could cause serious bugs.
Yeah, and so the symbol versions would not be present, and so I think
we're back to needing to know what symbols are from libc6.
A better error if we knew how to generate it efficiently would be using
a libc symbol without a symbol version.
dlopen() itself is versioned to libc on the calling object, but there is
no record of what is passed to it aside from a floating string somewhere
in the ro section. Unless you parse the source or disassemble the .so,
you can't find out what is being called.
In other words, lintian can't find out if the library loads printf() for
example. But you can test it to see if it works correctly :)
--
Regards,
Ahmad