ABI compatibility checker for shared libraries

Gleb Kurtsou gleb.kurtsou at gmail.com
Mon Nov 1 13:47:55 UTC 2010


Hi,

I'd like to introduce shlib-compat -- an ABI compatibility checker for
shared libraries with symbol versioning. The idea of such tool was
discussed on mail lists before.

shlib-compat uses debugging info (dwarf) from compiled library to
compare definitions of exported symbols, i.e. no sources is necessary.
Code quality is pre-alpha, loops in struct/union definitions are not
handled properly, values for enums and const/volatile are ignored.
Reporting is not yet implemented, it has knob to dump complete symbol
definitions in json which is rather useless. It just prints if symbol
definitions match.

shlib-compat parses libc.so.7 on my system (amd64), but there is a lot
warnings about symbols it can't find in dwarf dump (looks like these are
implemented in asm). Sources contain several trivial test cases.

devel/dwarfdump port is required (as well as objdump which is in base).

Source code available on github:
http://github.com/glk/shlib-compat

Or as tarball:
http://github.com/downloads/glk/shlib-compat/shlib-compat-0.1.tar.gz

I don't have much free time to continue developing it right now, but
feel free to add a ticket on github, submit a patch or fork it.

Thanks,
Gleb.



More information about the freebsd-hackers mailing list