opnsense-src/tools/tools/shlib-compat
Brooks Davis 717e7fb27a syscalls: struct ucontext4 -> struct freebsd4_ucontext
This aligns with struct freebsd4_ucontext32 in freebsd32.

Reviewed by:	kib
2021-11-22 22:36:54 +00:00
..
test
Makefile.sysfake
makesyscalls-fake.sh syscalls: struct ucontext4 -> struct freebsd4_ucontext 2021-11-22 22:36:54 +00:00
README
shlib-compat-dirs.sh
shlib-compat.py tools: minor spelling fixes. 2016-05-01 16:20:14 +00:00

ABI compatibility checker for shared libraries with symbol versioning.

shlib-compat uses dwarf debugging symbols to recreate definitions of
exported symbols, including function arguments and structural types.

The shlib-compat.py script requires devel/dwarfdump port to be
installed.


Syscalls in libc are implemented as assembly stubs and thus have no
debugging symbols attached. To enable sysfake stubs rebuild libc
adding the following to /etc/make.conf:

.if ${.CURDIR:M/usr/src/lib/libc}
.include "../../tools/tools/shlib-compat/Makefile.sysfake"
.endif

To compare libc.so versions compiled with sysfake stubs:
./shlib-compat.py -v --alias-prefix __sysfake_ \
	--alias-prefix __sysfake_freebsd8_ \
	--exclude-ver FBSDprivate \
	--out-orig out-orig.c --out-new out-new.c libc.so.7.orig libc.so.7.new