]> sourceware.org Git - lvm2.git/commitdiff
Pthread linking change
authorzkabelac <zkabelac>
Thu, 4 Mar 2010 11:21:05 +0000 (11:21 +0000)
committerzkabelac <zkabelac>
Thu, 4 Mar 2010 11:21:05 +0000 (11:21 +0000)
Create new substituted variable PTHREAD_LIBS and link this library
only with tools/libs which really needs it - i.e. dmeventd.

Check for libpthread only for builds with clvmd or dmeventd.

Remove variable LIB_PTHREAD

WHATS_NEW
configure
configure.in
daemons/clvmd/Makefile.in
daemons/dmeventd/Makefile.in
daemons/dmeventd/plugins/lvm2/Makefile.in
daemons/dmeventd/plugins/mirror/Makefile.in
daemons/dmeventd/plugins/snapshot/Makefile.in
make.tmpl.in
test/api/Makefile.in
tools/Makefile.in

index 3b9e89de25102a64a3cc33d1df126bef3be43634..58b25f5e981a4f810794e543a8dd66e012210d7e 100644 (file)
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,9 @@
 Version 2.02.62 -
 ====================================
+  Update check for pthread library and link it only when needed.
+  Define and use internal makefile variable PTHREAD_LIBS.
+  Update check for readline library and link it only when needed.
+  Define and use internal makefile variable READLINE_LIBS.
   Define and use internal makefile variable LVMINTERNAL_LIBS.
   Help for configure prints --disable-fsadm.
   Use consistently $() instead of ${} for all Makefile variables.
index 0dc109adb72e5cb2e8cc4eb3c87c001c2b8a9566..37f525a2589f9aa426cc8b4d43cb80530c4ae1d8 100755 (executable)
--- a/configure
+++ b/configure
@@ -646,7 +646,6 @@ kernelvsn
 missingkernel
 kerneldir
 interface
-LIB_PTHREAD
 UDEV_SYNC
 UDEV_RULES
 STATIC_LINK
@@ -654,6 +653,7 @@ STATICDIR
 SNAPSHOTS
 SELINUX_LIBS
 READLINE_LIBS
+PTHREAD_LIBS
 POOL
 PKGCONFIG
 OWNER
@@ -12710,6 +12710,81 @@ $as_echo "$as_me: error: Features cannot be 'shared' when building statically
    { (exit 1); exit 1; }; }
 fi
 
+################################################################################
+if [ "$DMEVENTD" = yes -o "$CLVMD" != none ] ; then
+       { $as_echo "$as_me:$LINENO: checking for pthread_mutex_lock in -lpthread" >&5
+$as_echo_n "checking for pthread_mutex_lock in -lpthread... " >&6; }
+if test "${ac_cv_lib_pthread_pthread_mutex_lock+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_mutex_lock ();
+int
+main ()
+{
+return pthread_mutex_lock ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_lib_pthread_pthread_mutex_lock=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_pthread_pthread_mutex_lock=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_mutex_lock" >&5
+$as_echo "$ac_cv_lib_pthread_pthread_mutex_lock" >&6; }
+if test "x$ac_cv_lib_pthread_pthread_mutex_lock" = x""yes; then
+  PTHREAD_LIBS="-lpthread"
+else
+  hard_bailout
+fi
+
+fi
+
 ################################################################################
 { $as_echo "$as_me:$LINENO: checking whether to enable selinux support" >&5
 $as_echo_n "checking whether to enable selinux support... " >&6; }
index aeac331c42da7321f1eb3e97ac49c43d3fa1a248..42e42356a48187641cded7c8bf19c64df6b47739 100644 (file)
@@ -808,6 +808,12 @@ Features cannot be 'shared' when building statically
 )
 fi
 
+################################################################################
+if [[ "$DMEVENTD" = yes -o "$CLVMD" != none ]] ; then
+       AC_CHECK_LIB([pthread], [pthread_mutex_lock],
+               [PTHREAD_LIBS="-lpthread"], hard_bailout)
+fi
+
 ################################################################################
 dnl -- Disable selinux
 AC_MSG_CHECKING(whether to enable selinux support)
@@ -1125,6 +1131,7 @@ AC_SUBST(MSGFMT)
 AC_SUBST(OWNER)
 AC_SUBST(PKGCONFIG)
 AC_SUBST(POOL)
+AC_SUBST(PTHREAD_LIBS)
 AC_SUBST(QUORUM_CFLAGS)
 AC_SUBST(QUORUM_LIBS)
 AC_SUBST(READLINE_LIBS)
@@ -1138,7 +1145,6 @@ AC_SUBST(STATICDIR)
 AC_SUBST(STATIC_LINK)
 AC_SUBST(UDEV_RULES)
 AC_SUBST(UDEV_SYNC)
-AC_SUBST([LIB_PTHREAD])
 AC_SUBST(interface)
 AC_SUBST(kerneldir)
 AC_SUBST(missingkernel)
index 40d1da46b7a6deed6e527a5fbb02a1273ebd6563..16ba0b891574b665ee52203ac135ef2475741a77 100644 (file)
@@ -75,13 +75,14 @@ endif
 TARGETS = \
        clvmd
 
-LVMLIBS = $(LVMINTERNAL_LIBS) -lpthread
+LVMLIBS = $(LVMINTERNAL_LIBS)
 
 ifeq ("@DMEVENTD@", "yes")
        LVMLIBS += -ldevmapper-event
 endif
  
 LVMLIBS += -ldevmapper
+LIBS += $(PTHREAD_LIBS)
 
 DEFS += -D_REENTRANT
 CFLAGS += -fno-strict-aliasing
index fc72c21e817b51ec3c602bca31ef4f8d7a91eb0f..aa20453436392308bd431d84aefe3c4f7aaa0016 100644 (file)
@@ -54,7 +54,7 @@ all: device-mapper
 device-mapper: $(TARGETS)
 
 LIBS += -ldl
-LVMLIBS += -ldevmapper-event -lpthread -ldevmapper
+LVMLIBS += -ldevmapper-event -ldevmapper $(PTHREAD_LIBS)
 
 $(VERSIONED_SHLIB): $(LIB_SHARED)
        $(RM) -f $@
index af6807b3780d0a19400a8ea47720b7e517b45e0f..0f23c84509c9e081d06d3ce9cc7b6c87286e395b 100644 (file)
@@ -29,7 +29,7 @@ LIB_VERSION = $(LIB_VERSION_LVM)
 
 include $(top_builddir)/make.tmpl
 
-LIBS += -ldevmapper @LIB_PTHREAD@ @LVM2CMD_LIB@
+LIBS += @LVM2CMD_LIB@ -ldevmapper $(PTHREAD_LIBS)
 
 install_lvm2: libdevmapper-event-lvm2.$(LIB_SUFFIX)
        $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< \
index bdb49d135b4d8dc62329ce66f25bfa82bbcd8ea2..bd85a6f7b539b69d9b4acdc65975355d241a21b6 100644 (file)
@@ -32,7 +32,7 @@ LIB_VERSION = $(LIB_VERSION_LVM)
 
 include $(top_builddir)/make.tmpl
 
-LIBS += -ldevmapper @LIB_PTHREAD@ @LVM2CMD_LIB@ -ldevmapper-event-lvm2
+LIBS += @LVM2CMD_LIB@ -ldevmapper-event-lvm2 -ldevmapper $(PTHREAD_LIBS)
 
 install_lvm2: libdevmapper-event-lvm2mirror.$(LIB_SUFFIX)
        $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< \
index 4b203a0ac30eee53f9e15726af7e0dfb6b2e5229..793fd38857d01bf94a849b92965cd8c4adddf0d6 100644 (file)
@@ -32,7 +32,7 @@ LIB_VERSION = $(LIB_VERSION_LVM)
 
 include $(top_builddir)/make.tmpl
 
-LIBS += -ldevmapper @LIB_PTHREAD@ @LVM2CMD_LIB@ -ldevmapper-event-lvm2
+LIBS += @LVM2CMD_LIB@ -ldevmapper-event-lvm2 -ldevmapper $(PTHREAD_LIBS)
 
 install_lvm2: libdevmapper-event-lvm2snapshot.$(LIB_SUFFIX)
        $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< \
index 88be2591b999f5a2c94213873bc6e44f9a199491..9def16ddcf4193abc665e5629266fa213fd70b5a 100644 (file)
@@ -37,6 +37,7 @@ LDDEPS += @LDDEPS@
 LDFLAGS += @LDFLAGS@
 LIB_SUFFIX = @LIB_SUFFIX@
 LVMINTERNAL_LIBS = -llvm-internal
+PTHREAD_LIBS = @PTHREAD_LIBS@
 READLINE_LIBS = @READLINE_LIBS@
 
 # Setup directory variables
index 2c0c62f5c83e403ab64c270d333ee7cb4431c102..605da33c81db9e67ca515fadef8d589208fc0d49 100644 (file)
@@ -35,7 +35,7 @@ include $(top_builddir)/make.tmpl
 LDFLAGS = -L$(top_builddir)/libdm -L$(top_builddir)/liblvm
 
 ifeq ("@DMEVENTD@", "yes")
-       LVMLIBS += -ldevmapper-event -lpthread
+       LVMLIBS += -ldevmapper-event
        LDFLAGS += -L$(top_builddir)/daemons/dmeventd
 endif
 
index 236fb4ed3bcc014af85c3f075d75c95002d856ad..a590d61b8eea3bdcd96a641a004cf36f744dac4c 100644 (file)
@@ -17,8 +17,6 @@ top_srcdir = @top_srcdir@
 top_builddir = @top_builddir@
 VPATH = @srcdir@
 
-LIB_PTHREAD = @LIB_PTHREAD@
-
 SOURCES =\
        dumpconfig.c \
        formats.c \
@@ -100,7 +98,7 @@ ifeq ("@CMDLIB@", "yes")
 endif
 
 ifeq ("@DMEVENTD@", "yes")
-       LVMLIBS += -ldevmapper-event -lpthread
+       LVMLIBS += -ldevmapper-event
 endif
 
 LVMLIBS += -ldevmapper
@@ -113,21 +111,21 @@ device-mapper: $(TARGETS_DM)
 
 dmsetup: dmsetup.o $(top_builddir)/libdm/libdevmapper.$(LIB_SUFFIX)
        $(CC) $(CFLAGS) $(LDFLAGS) -L$(top_builddir)/libdm \
-             -o $@ dmsetup.o -ldevmapper $(LIBS) $(LIB_PTHREAD)
+             -o $@ dmsetup.o -ldevmapper $(LIBS)
 
 dmsetup.static: dmsetup.o $(interfacebuilddir)/libdevmapper.a
        $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) \
-             -o $@ dmsetup.o -ldevmapper $(LIBS) $(LIB_PTHREAD)
+             -o $@ dmsetup.o -ldevmapper $(LIBS)
 
 all: device-mapper
 
 lvm: $(OBJECTS) lvm.o $(top_builddir)/lib/liblvm-internal.a
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJECTS) lvm.o \
-               $(LVMLIBS) $(READLINE_LIBS) $(LIBS) $(LIB_PTHREAD) -rdynamic
+               $(LVMLIBS) $(READLINE_LIBS) $(LIBS) -rdynamic
 
 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) $(LIBS) $(LIB_PTHREAD) \
+             $(OBJECTS) lvm-static.o $(LVMLIBS) $(LIBS) \
              -rdynamic
 
 liblvm2cmd.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd.o
This page took 0.063427 seconds and 5 git commands to generate.