From c23f4c8075655aeaef96b3e19ad44c0be78020c9 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Tue, 6 Apr 2021 14:39:44 +0200 Subject: [PATCH] makefiles: add check for versioned symbols Simple check produced library has the latest symbol as well as its versioned older version with check for dm_stats_create_region(). --- libdm/Makefile.in | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libdm/Makefile.in b/libdm/Makefile.in index 12fec06b4..a78d2b517 100644 --- a/libdm/Makefile.in +++ b/libdm/Makefile.in @@ -47,7 +47,7 @@ endif LIB_SHARED = $(interface)/libdevmapper.$(LIB_SUFFIX) LIB_VERSION = $(LIB_VERSION_DM) -TARGETS = libdevmapper.$(LIB_SUFFIX) libdevmapper.$(LIB_SUFFIX).$(LIB_VERSION) +TARGETS = libdevmapper.$(LIB_SUFFIX) libdevmapper.$(LIB_SUFFIX).$(LIB_VERSION) .symver_check CFLOW_LIST = $(SOURCES) CFLOW_LIST_TARGET = libdevmapper.cflow @@ -69,6 +69,16 @@ libdevmapper.$(LIB_SUFFIX) libdevmapper.$(LIB_SUFFIX).$(LIB_VERSION): $(LIB_SHAR @echo " [LN] $<" $(Q) $(LN_S) -f $< $@ +# Check versioned build when default versioned symbol is present @@ +# also the older symbol is built-in +.symver_check: $(LIB_SHARED) + @echo " [CHECK] $<" + $(Q) if readelf -Ws $< | grep -q dm_stats_create_region@@; then \ + SYM=$$(readelf -Ws $< | grep dm_stats_create_region@DM_1_02_106); \ + if test -n "$$SYM"; then touch $@; \ + else echo >&2 "Missing versioned symbols in $<"; false; fi; \ + else touch $@; fi + .PHONY: install_dynamic install_static install_include \ install_ioctl install_ioctl_static \ install_pkgconfig