Troy Heber <[email protected]> writes: > I believe that I am hitting a false positive error while working on > packaging a new upstream version of the kernel debugger "crash" and > could really use a second opinion for confirmation.
> Lintian seems to believe that zlib is being statically linked and I'm > getting this error: > $> lintian *.changes > E: crash: embedded-library usr/bin/crash: zlib > However, when I look at the resulting binary it sure looks like like > libz is dynamically linked as a shared library: > $> readelf -a crash |grep -i libz > 0x0000000000000001 (NEEDED) Shared library: [libzstd.so.1] zstd and zlib aren't the same thing. (The shared library for zlib that Lintian is referring to is libz.so.1.) Are you sure that zlib (as opposed to zstd) isn't somehow built into the program? > The zlib* symbols are in the .dynsym symbol table: > $> readelf -a crash |grep -i zlib > 4986: 00000000007689e0 8 FUNC GLOBAL DEFAULT 15 zlibVersion > 7816: 00000000007689f0 6 FUNC GLOBAL DEFAULT 15 > zlibCompileFlags It's been years since I looked at this, but doesn't having a number (instead of UND) in that last-but-one column mean that the symbol is indeed built into the binary and not loaded from a library? -- Russ Allbery ([email protected]) <https://www.eyrie.org/~eagle/>

