ABI compatibility checker for shared libraries
gleb.kurtsou at gmail.com
Mon Nov 1 13:47:55 UTC 2010
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
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:
Or as tarball:
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.
More information about the freebsd-hackers