Auteur: Matteo Panella Date: À: dng Sujet: [Dng] Help needed: abi-dumper and LTO (Perl wizardry required)
Hi there,
now that the flamefest has died down, let's go back to technical problems.
As you know, I'm trying to get an ABI dump of libudev/libgudev as built
in the main Debian archive to ensure that the version built using eudev
will be ABI-compatible with it.
The reason is simple: avoid rebuilding every rdep of udev unless it's
strictly necessary.
Now for the nasty part: systemd's build system forces Link-Time
Optimization on its ELF files, and this confuses abi-dumper to the point
that it believes that eu-readelf found no symbol table nor DWARF
sections (which isn't true, since everything is built with -g and the
libraries have the proper .gnu_debuglink section header).
This is where I need help from Perl wizards: abi-dumper is a big lump of
Perl, and saying that I hate Perl is an understatement :-)
I'm not asking to fix it for me (even though that would be appreciated
*wink* *wink*), but I humbly ask for an high level overview of how it
uses eu-readelf, vtable-dumper et al. to produce an ABI profile for the
shared object, so I can try to understand what part of LTO is confusing it.
You can use libudev.so.1.5.0 as your test case, just make sure to
install systemd-dbg (otherwise it would rightfully complain that
debugging symbols are missing).