[build] detect presence of dm_task_no_flush symbol in libdevmapper
authorChristophe Varoqui <cvaroqui@zezette.localdomain>
Wed, 2 May 2007 13:58:41 +0000 (15:58 +0200)
committerChristophe Varoqui <cvaroqui@zezette.localdomain>
Wed, 2 May 2007 13:58:41 +0000 (15:58 +0200)
Fix this annoying build problem on system not yet implementing this API in
their libdevmapper package (ubuntu up to Feisty for example).

libmultipath/Makefile
libmultipath/devmapper.c

index 5d8c586..ef561a8 100644 (file)
@@ -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)
index ff4a416..468f7a8 100644 (file)
@@ -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);