lvm_fclose() calls dm_fclose(), which cause the static linker to bring libdm-file.o in liblvm.a. Then there happens a conflict of create_dir(). Fix the following build error: /usr/local/lib/libdevmapper.a(libdm-file.o): In function `create_dir': /work/device-mapper/lib/libdm-file.c:59: multiple definition of `create_dir' ../lib/liblvm.a(lvm-file.o):/work/LVM2/lib/misc/lvm-file.c:177: first defined here /usr/bin/ld: Warning: size of symbol `create_dir' changed from 176 in ../lib/liblvm.a(lvm-file.o) to 187 in /usr/local/lib/libdevmapper.a(libdm-file.o) Index: device-mapper.work/lib/.exported_symbols =================================================================== --- device-mapper.work.orig/lib/.exported_symbols +++ device-mapper.work/lib/.exported_symbols @@ -1,6 +1,7 @@ dm_lib_release dm_lib_exit dm_driver_version +dm_create_dir dm_fclose dm_get_library_version dm_log Index: device-mapper.work/lib/libdevmapper.h =================================================================== --- device-mapper.work.orig/lib/libdevmapper.h +++ device-mapper.work/lib/libdevmapper.h @@ -629,6 +629,12 @@ char *dm_basename(const char *path); **************************/ /* + * Create a directory (with parent directories if necessary). + * Returns 1 on success, 0 on failure. + */ +int dm_create_dir(const char *dir); + +/* * Close a stream, with nicer error checking than fclose's. * Derived from gnulib's close-stream.c. * Index: device-mapper.work/lib/libdm-file.c =================================================================== --- device-mapper.work.orig/lib/libdm-file.c +++ device-mapper.work/lib/libdm-file.c @@ -55,7 +55,7 @@ out: return r; } -int create_dir(const char *dir) +int dm_create_dir(const char *dir) { struct stat info; Index: device-mapper.work/lib/ioctl/libdm-iface.c =================================================================== --- device-mapper.work.orig/lib/ioctl/libdm-iface.c +++ device-mapper.work/lib/ioctl/libdm-iface.c @@ -228,7 +228,7 @@ static int _create_control(const char *c return 0; old_umask = umask(0022); - ret = create_dir(dm_dir()); + ret = dm_create_dir(dm_dir()); umask(old_umask); if (!ret)