Hello, 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]
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
All of the libzstd looks like it is properly dynamically linked in the
.rela.plt section:
$> readelf -a crash |grep -i zstd
0x0000000000000001 (NEEDED) Shared library: [libzstd.so.1]
000000b127b8 00fb00000007 R_X86_64_JUMP_SLO 0000000000000000
ZSTD_decompressDCtx + 0
000000b128e0 012200000007 R_X86_64_JUMP_SLO 0000000000000000
ZSTD_createDCtx + 0
000000b12a28 014d00000007 R_X86_64_JUMP_SLO 0000000000000000
ZSTD_isError + 0
000000b12bf0 018800000007 R_X86_64_JUMP_SLO 0000000000000000
ZSTD_getErrorName + 0
251: 0000000000000000 0 FUNC GLOBAL DEFAULT UND
ZSTD_decompressDCtx
290: 0000000000000000 0 FUNC GLOBAL DEFAULT UND
ZSTD_createDCtx
333: 0000000000000000 0 FUNC GLOBAL DEFAULT UND ZSTD_isError
392: 0000000000000000 0 FUNC GLOBAL DEFAULT UND
ZSTD_getErrorName
Granted I'm extremely rusty at this level of binary object detective
work so I am most likely missing something so I wanted to touch base
with you. If you are willing to take a look you can grab my current
build on people[1].
Any advice would be appreciated!
Troy
[1] https://people.debian.org/~troyh/crash/
signature.asc
Description: PGP signature

