From c7f5829fc06e0054f419811eedf1b5a71461f7b0 Mon Sep 17 00:00:00 2001 From: Christophe Varoqui Date: Wed, 2 May 2007 15:58:41 +0200 Subject: [PATCH] [build] detect presence of dm_task_no_flush symbol in libdevmapper Fix this annoying build problem on system not yet implementing this API in their libdevmapper package (ubuntu up to Feisty for example). --- libmultipath/Makefile | 6 ++++++ libmultipath/devmapper.c | 2 ++ 2 files changed, 8 insertions(+) diff --git a/libmultipath/Makefile b/libmultipath/Makefile index 5d8c586..ef561a8 100644 --- a/libmultipath/Makefile +++ b/libmultipath/Makefile @@ -25,6 +25,12 @@ else CLEAN = $(shell if [ ! "x$(PREVBUILD)" = "x" ]; then echo clean; fi) endif +LIBDM_API_FLUSH = $(shell objdump -T /lib/libdevmapper.so.* | grep -c dm_task_no_flush) + +ifeq ($(strip $(LIBDM_API_FLUSH)),1) + CFLAGS += -DLIBDM_API_FLUSH +endif + all: $(BUILD) prepare: $(CLEAN) diff --git a/libmultipath/devmapper.c b/libmultipath/devmapper.c index ff4a416..468f7a8 100644 --- a/libmultipath/devmapper.c +++ b/libmultipath/devmapper.c @@ -134,7 +134,9 @@ dm_simplecmd (int task, const char *name) { dm_task_no_open_count(dmt); dm_task_skip_lockfs(dmt); /* for DM_DEVICE_RESUME */ +#ifdef LIBDM_API_FLUSH dm_task_no_flush(dmt); /* for DM_DEVICE_SUSPEND/RESUME */ +#endif r = dm_task_run (dmt); -- 2.7.4