Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Nov 2010 15:20:00 +0200
From:      Gleb Kurtsou <gleb.kurtsou@gmail.com>
To:        freebsd-hackers@freebsd.org
Subject:   ABI compatibility checker for shared libraries
Message-ID:  <20101101132000.GA4016@tops>

next in thread | raw e-mail | index | archive | help
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.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101101132000.GA4016>