[lvm-devel] main - makefiles: add check for versioned symbols

Zdenek Kabelac zkabelac at sourceware.org
Tue Apr 6 20:07:19 UTC 2021


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=c23f4c8075655aeaef96b3e19ad44c0be78020c9
Commit:        c23f4c8075655aeaef96b3e19ad44c0be78020c9
Parent:        40b277ae1799fc7a2e3f38b0abebd81a8e3d1995
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Tue Apr 6 14:39:44 2021 +0200
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Tue Apr 6 21:26:57 2021 +0200

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 at 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




More information about the lvm-devel mailing list