diff --git a/Makefile b/Makefile index f864452..0967117 100644 --- a/Makefile +++ b/Makefile @@ -7,8 +7,18 @@ install: vtable-dumper mkdir -p $(DESTDIR)$(prefix)/bin/ install vtable-dumper $(DESTDIR)$(prefix)/bin/ +OS=$(shell uname -s) +ifeq ($(OS), Linux) +LIBDL=-ldl +else ifeq ($(OS), FreeBSD) +LIBDL= +else +LIBDL=UNKNOWN +endif + vtable-dumper: dump-vtable.c dump-vtable.h - $(CC) $(CFLAGS) $(LDFLAGS) -o vtable-dumper dump-vtable.c -ldl -lelf -lstdc++ + $(CC) $(CFLAGS) $(LDFLAGS) -o vtable-dumper dump-vtable.c \ + $(LIBDL) -lelf -lstdc++ uninstall: rm -f $(DESTDIR)$(prefix)/bin/vtable-dumper diff --git a/dump-vtable.c b/dump-vtable.c index ba72421..2cfab00 100644 --- a/dump-vtable.c +++ b/dump-vtable.c @@ -355,11 +355,11 @@ void print_VTable(void *dlhndl, vtable_info *vtable) { if ((ptrdiff_t)vfuncp < 0) { - printf("(int (*)(...)) -%016p\n", (void*) -(ptrdiff_t)vfuncp); + printf("(int (*)(...)) -%16p\n", (void*) -(ptrdiff_t)vfuncp); } else { - printf("(int (*)(...)) %016p\n", vfuncp); + printf("(int (*)(...)) %16p\n", vfuncp); } } } diff --git a/dump-vtable.h b/dump-vtable.h index 001d198..1bf91eb 100644 --- a/dump-vtable.h +++ b/dump-vtable.h @@ -22,6 +22,7 @@ #include #include +#include #include #include #include