]> git.kaiwu.me - haproxy.git/commit
MINOR: sym: also read the compressed symbol tables from the ELF files
authorOlivier Houchard <ohouchard@haproxy.com>
Tue, 15 Sep 2026 15:51:02 +0000 (17:51 +0200)
committerOlivier Houchard <cognet@ci0.org>
Thu, 1 Oct 2026 15:06:31 +0000 (17:06 +0200)
commit85f815c7f023d2334c7696c479ab8873172f2a81
tree8b24a2c1fa63ba9f414cdb37675d72534c15bcf1
parent3e364747bd2d5014f46ff6b8db31932f84cc1ee3
MINOR: sym: also read the compressed symbol tables from the ELF files

Distributions ship libraries stripped, keeping local symbols in a
compressed .gnu_debugdata section. It is not loaded in memory, so it was
only reachable for objects mapping it in a segment of their own, i.e. the
ones we build, leaving system libraries unnamed.

Look for that section in the ELF files already mapped to read their
.symtab, and hand it to the same decompressor. A separate debug file still
wins as it is more complete, and the file mappings are released right away
since names point into the decompressed image. On Fedora this names
libcrypto, libssl, liblua, libm, libcrypt and libz, turning
"liblua-5:luaopen_package+0x41a0/0x205" into "liblua-5:luaV_execute+0x90f".
src/sym.c