[lvm-devel] errors compiling lvm with static linking

Alexander Talos-Zens at at univie.ac.at
Thu Feb 12 14:43:24 UTC 2015


Hej,

when building a statically linked lvm with libblkid from
util-linux-2.25.2 and glibc-2.21, I ran into two issues:

 * undefined reference to `pthread_mutex_lock' and unlock in libdevmapper.a
 * missing uuid_unparse() in libblkid (while it's source file works
around the (non)-existence of HAVE_LIBUUID, the library, once compiled
and installed, obviously doesn't)

The patch below did the trick for me, but may break the compile with
other versions of util-linux and possibly glibc.

HTH, best regards,

Alexander

--- LVM2.2.02.116/tools/Makefile.in     Thu Feb 12 15:32:32 2015
+++ LVM2.2.02.116/tools/Makefile.in.orig        Fri Jan 30 17:19:54 2015
@@ -128,7 +128,7 @@
 
 dmsetup.static: dmsetup.o $(interfacebuilddir)/libdevmapper.a
        $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) \
-             -o $@ dmsetup.o -ldevmapper $(STATIC_LIBS) $(LIBS)
$(PTHREAD_LIBS)
+             -o $@ dmsetup.o -ldevmapper $(STATIC_LIBS) $(LIBS)
 
 all: device-mapper
 
@@ -144,7 +144,7 @@
 
 lvm.static: $(OBJECTS) lvm-static.o
$(top_builddir)/lib/liblvm-internal.a  $(interfacebuilddir)/libdevmapper.a
        $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) -o $@ \
-             $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS)
$(PTHREAD_LIBS) -luuid
+             $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS)
 
 liblvm2cmd.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS)
lvmcmdlib.o lvm2cmd.o
        cat $(top_builddir)/lib/liblvm-internal.a > $@




More information about the lvm-devel mailing list