[dm-devel] dmraid ./configure ./configure.in ./make.tmpl. ...
zkabelac at sourceware.org
zkabelac at sourceware.org
Mon May 31 09:24:43 UTC 2010
CVSROOT: /cvs/dm
Module name: dmraid
Changes by: zkabelac at sourceware.org 2010-05-31 09:24:43
Modified files:
. : configure configure.in make.tmpl.in
lib : Makefile.in
Log message:
Add configure detection for -ldl and -lpthread
Check for devmapper installation
Link all used libs by libdmraid and its plugin
(do not expect devmapper-event will have devmapper and dl)
Add few more linker flags for this detection
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/dmraid/configure.diff?cvsroot=dm&r1=1.12&r2=1.13
http://sourceware.org/cgi-bin/cvsweb.cgi/dmraid/configure.in.diff?cvsroot=dm&r1=1.12&r2=1.13
http://sourceware.org/cgi-bin/cvsweb.cgi/dmraid/make.tmpl.in.diff?cvsroot=dm&r1=1.13&r2=1.14
http://sourceware.org/cgi-bin/cvsweb.cgi/dmraid/lib/Makefile.in.diff?cvsroot=dm&r1=1.16&r2=1.17
--- dmraid/configure 2010/05/30 22:25:37 1.12
+++ dmraid/configure 2010/05/31 09:24:42 1.13
@@ -641,6 +641,7 @@
usrlibdir
STATIC_LINK
SOFLAG
+PTHREAD_LIBS
LIB_SO
LD_DEPS
JOBS
@@ -650,7 +651,10 @@
DMRAID_LIB_MINOR
DMRAID_LIB_MAJOR
DMRAID_LIB_DATE
+DL_LIBS
DIETLIBC
+DEVMAPPER_LIBS
+DEVMAPPER_CFLAGS
DEVMAPPEREVENT_LIBS
DEVMAPPEREVENT_CFLAGS
DEBUG_MALLOC
@@ -751,7 +755,7 @@
enable_static_link
enable_shared_lib
enable_testing
-with_devmapper_event_prefix
+with_devmapper_prefix
'
ac_precious_vars='build_alias
host_alias
@@ -1410,8 +1414,8 @@
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-staticdir=DIR Static binary in DIR [EPREFIX/sbin]
--with-usrlibdir=DIR User library in DIR [PREFIX/lib]
- --with-devmapper-event-prefix=PFX
- Where is 'd-m-e' library installed
+ --with-devmapper-prefix=PFX
+ Where is devmapper library installed
Some influential environment variables:
CC C compiler command
@@ -8914,23 +8918,171 @@
fi
+{ $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $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 dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ 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_dl_dlopen=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
-# Check whether --with-devmapper-event-prefix was given.
-if test "${with_devmapper_event_prefix+set}" = set; then
- withval=$with_devmapper_event_prefix; DEVMAPPEREVENT_LIBS="-L$withval/lib"
- DEVMAPPEREVENT_CFLAGS="-I$withval/include"
+ ac_cv_lib_dl_dlopen=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_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
+ DL_LIBS="-ldl"
else
- DEVMAPPEREVENT_LIBS=
- DEVMAPPEREVENT_CFLAGS=
+ { { $as_echo "$as_me:$LINENO: error: dl library is missing" >&5
+$as_echo "$as_me: error: dl library is missing" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+
+{ $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
+ { { $as_echo "$as_me:$LINENO: error: pthread library is missing" >&5
+$as_echo "$as_me: error: pthread library is missing" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+
+
+# Check whether --with-devmapper-prefix was given.
+if test "${with_devmapper_prefix+set}" = set; then
+ withval=$with_devmapper_prefix; DEVMAPPER_LIBS="-L$withval/lib"
+ DEVMAPPER_CFLAGS="-I$withval/include"
+else
+ DEVMAPPER_LIBS=
+ DEVMAPPER_CFLAGS=
fi
save_LDFLAGS=$LDFLAGS
save_CPPFLAGS=$CPPFLAGS
-LDFLAGS="$LDFLAGS $DEVMAPPEREVENT_LIBS"
-CPPFLAGS="$CPPFLAGS $DEVMAPPEREVENT_CFLAGS"
-{ $as_echo "$as_me:$LINENO: checking for dm_task_set_name in -ldevmapper-event" >&5
-$as_echo_n "checking for dm_task_set_name in -ldevmapper-event... " >&6; }
-if test "${ac_cv_lib_devmapper_event_dm_task_set_name+set}" = set; then
+LDFLAGS="$LDFLAGS $DEVMAPPER_LIBS"
+CPPFLAGS="$CPPFLAGS $DEVMAPPER_CFLAGS"
+{ $as_echo "$as_me:$LINENO: checking for dm_event_handler_create in -ldevmapper-event" >&5
+$as_echo_n "checking for dm_event_handler_create in -ldevmapper-event... " >&6; }
+if test "${ac_cv_lib_devmapper_event_dm_event_handler_create+set}" = set; then
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -8948,11 +9100,11 @@
#ifdef __cplusplus
extern "C"
#endif
-char dm_task_set_name ();
+char dm_event_handler_create ();
int
main ()
{
-return dm_task_set_name ();
+return dm_event_handler_create ();
;
return 0;
}
@@ -8978,12 +9130,12 @@
test "$cross_compiling" = yes ||
$as_test_x conftest$ac_exeext
}; then
- ac_cv_lib_devmapper_event_dm_task_set_name=yes
+ ac_cv_lib_devmapper_event_dm_event_handler_create=yes
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_lib_devmapper_event_dm_task_set_name=no
+ ac_cv_lib_devmapper_event_dm_event_handler_create=no
fi
rm -rf conftest.dSYM
@@ -8991,16 +9143,89 @@
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_devmapper_event_dm_task_set_name" >&5
-$as_echo "$ac_cv_lib_devmapper_event_dm_task_set_name" >&6; }
-if test "x$ac_cv_lib_devmapper_event_dm_task_set_name" = x""yes; then
- DEVMAPPEREVENT_LIBS="$DEVMAPPEREVENT_LIBS -ldevmapper-event"
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_devmapper_event_dm_event_handler_create" >&5
+$as_echo "$ac_cv_lib_devmapper_event_dm_event_handler_create" >&6; }
+if test "x$ac_cv_lib_devmapper_event_dm_event_handler_create" = x""yes; then
+ DEVMAPPEREVENT_LIBS="$DEVMAPPER_LIBS -ldevmapper-event"
else
{ { $as_echo "$as_me:$LINENO: error: device-mapper-event library is either missing or is too old and badly linked" >&5
$as_echo "$as_me: error: device-mapper-event library is either missing or is too old and badly linked" >&2;}
{ (exit 1); exit 1; }; }
fi
+{ $as_echo "$as_me:$LINENO: checking for dm_task_set_name in -ldevmapper" >&5
+$as_echo_n "checking for dm_task_set_name in -ldevmapper... " >&6; }
+if test "${ac_cv_lib_devmapper_dm_task_set_name+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldevmapper $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 dm_task_set_name ();
+int
+main ()
+{
+return dm_task_set_name ();
+ ;
+ 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_devmapper_dm_task_set_name=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_devmapper_dm_task_set_name=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_devmapper_dm_task_set_name" >&5
+$as_echo "$ac_cv_lib_devmapper_dm_task_set_name" >&6; }
+if test "x$ac_cv_lib_devmapper_dm_task_set_name" = x""yes; then
+ DEVMAPPER_LIBS="$DEVMAPPER_LIBS -ldevmapper"
+else
+ { { $as_echo "$as_me:$LINENO: error: device-mapper library is missing" >&5
+$as_echo "$as_me: error: device-mapper library is missing" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
for ac_header in libdevmapper.h libdevmapper-event.h
@@ -9185,6 +9410,10 @@
+
+
+
+
ac_config_files="$ac_config_files include/Makefile lib/Makefile lib/version.h man/Makefile tools/Makefile tools/version.h Makefile make.tmpl"
cat >confcache <<\_ACEOF
--- dmraid/configure.in 2010/05/30 22:25:36 1.12
+++ dmraid/configure.in 2010/05/31 09:24:42 1.13
@@ -234,22 +234,33 @@
AC_CHECK_HEADERS(getopt.h, AC_DEFINE(HAVE_GETOPTLONG, 1, [Define to 1 for longopt.]))
fi
+AC_CHECK_LIB(dl, dlopen,
+ [DL_LIBS="-ldl"],
+ [AC_MSG_ERROR([dl library is missing])])
+
+AC_CHECK_LIB(pthread, pthread_mutex_lock,
+ [PTHREAD_LIBS="-lpthread"],
+ [AC_MSG_ERROR([pthread library is missing])])
+
dnl FIXME static linking would need some extension here
dnl best would be to use pkg-config in Makefiles
-AC_ARG_WITH(devmapper-event-prefix,
- AC_HELP_STRING([--with-devmapper-event-prefix=PFX],
- [Where is 'd-m-e' library installed]),
- [DEVMAPPEREVENT_LIBS="-L$withval/lib"
- DEVMAPPEREVENT_CFLAGS="-I$withval/include"],
- [DEVMAPPEREVENT_LIBS=
- DEVMAPPEREVENT_CFLAGS=])
+AC_ARG_WITH(devmapper-prefix,
+ AC_HELP_STRING([--with-devmapper-prefix=PFX],
+ [Where is devmapper library installed]),
+ [DEVMAPPER_LIBS="-L$withval/lib"
+ DEVMAPPER_CFLAGS="-I$withval/include"],
+ [DEVMAPPER_LIBS=
+ DEVMAPPER_CFLAGS=])
save_LDFLAGS=$LDFLAGS
save_CPPFLAGS=$CPPFLAGS
-LDFLAGS="$LDFLAGS $DEVMAPPEREVENT_LIBS"
-CPPFLAGS="$CPPFLAGS $DEVMAPPEREVENT_CFLAGS"
-AC_CHECK_LIB(devmapper-event, dm_task_set_name,
- [DEVMAPPEREVENT_LIBS="$DEVMAPPEREVENT_LIBS -ldevmapper-event"],
+LDFLAGS="$LDFLAGS $DEVMAPPER_LIBS"
+CPPFLAGS="$CPPFLAGS $DEVMAPPER_CFLAGS"
+AC_CHECK_LIB(devmapper-event, dm_event_handler_create,
+ [DEVMAPPEREVENT_LIBS="$DEVMAPPER_LIBS -ldevmapper-event"],
[AC_MSG_ERROR([device-mapper-event library is either missing or is too old and badly linked])])
+AC_CHECK_LIB(devmapper, dm_task_set_name,
+ [DEVMAPPER_LIBS="$DEVMAPPER_LIBS -ldevmapper"],
+ [AC_MSG_ERROR([device-mapper library is missing])])
AC_CHECK_HEADERS(libdevmapper.h libdevmapper-event.h,,
[AC_MSG_ERROR([Missing headers device-mapper headers])])
CPPFLAGS=$save_CPPFLAGS
@@ -269,7 +280,10 @@
AC_SUBST(DEBUG_MALLOC)
AC_SUBST(DEVMAPPEREVENT_CFLAGS)
AC_SUBST(DEVMAPPEREVENT_LIBS)
+AC_SUBST(DEVMAPPER_CFLAGS)
+AC_SUBST(DEVMAPPER_LIBS)
AC_SUBST(DIETLIBC)
+AC_SUBST(DL_LIBS)
AC_SUBST(DMRAID_LIB_DATE)
AC_SUBST(DMRAID_LIB_MAJOR)
AC_SUBST(DMRAID_LIB_MINOR)
@@ -280,6 +294,7 @@
AC_SUBST(LD_DEPS)
AC_SUBST(LIBS)
AC_SUBST(LIB_SO)
+AC_SUBST(PTHREAD_LIBS)
AC_SUBST(SOFLAG)
AC_SUBST(STATIC_LINK)
AC_SUBST(usrlibdir)
--- dmraid/make.tmpl.in 2010/05/30 22:13:56 1.13
+++ dmraid/make.tmpl.in 2010/05/31 09:24:42 1.14
@@ -19,11 +19,15 @@
SED = @SED@
DEVMAPPEREVENT_CFLAGS = @DEVMAPPEREVENT_CFLAGS@
DEVMAPPEREVENT_LIBS = @DEVMAPPEREVENT_LIBS@
+DEVMAPPER_CFLAGS = @DEVMAPPER_CFLAGS@
+DEVMAPPER_LIBS = @DEVMAPPER_LIBS@
+DL_LIBS = @DL_LIBS@
DMRAID_LIB_DATE = @DMRAID_LIB_DATE@
DMRAID_LIB_MAJOR = @DMRAID_LIB_MAJOR@
DMRAID_LIB_MINOR = @DMRAID_LIB_MINOR@
DMRAID_LIB_SUBMINOR = @DMRAID_LIB_SUBMINOR@
DMRAID_LIB_SUFFIX = @DMRAID_LIB_SUFFIX@
+PTHREAD_LIBS = @PTHREAD_LIBS@
CFLAGS += @CFLAGS@
CLDFLAGS += @CLDFLAGS@
--- dmraid/lib/Makefile.in 2010/05/30 22:21:31 1.16
+++ dmraid/lib/Makefile.in 2010/05/31 09:24:42 1.17
@@ -47,7 +47,6 @@
ifeq ("@STATIC_LINK@", "no")
# Dynamic linker library
- LIBS += -ldl
SOURCES += register/dmreg.c
endif
@@ -74,12 +73,15 @@
DMRAID_LIB_VERSION = $(DMRAID_LIB_MAJOR).$(DMRAID_LIB_MINOR).$(DMRAID_LIB_SUBMINOR)
$(LIB_SHARED): $(OBJECTS) $(LD_DEPS)
- $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(OBJECTS) $(DEVMAPPEREVENT_LIBS) \
- -shared -Wl,-soname,$(notdir $@).$(DMRAID_LIB_MAJOR) $(CLDFLAGS)
+ $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(OBJECTS) \
+ -shared -Wl,--discard-all -Wl,--no-undefined $(CLDFLAGS) \
+ -Wl,-soname,$(notdir $@).$(DMRAID_LIB_MAJOR) \
+ $(DEVMAPPEREVENT_LIBS) $(DEVMAPPER_LIBS) $(DL_LIBS) $(LIBS)
$(LIB_EVENTS_SHARED): $(OBJECTS2)
$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(OBJECTS2) \
- -shared -Wl,-soname,$(notdir $@) $(DEVMAPPEREVENT_LIBS) -lpthread
+ -shared -Wl,--discard-all -Wl,--no-undefined -Wl,-soname,$(notdir $@) \
+ $(LIB_SHARED) $(DEVMAPPEREVENT_LIBS) $(DEVMAPPER_LIBS) $(PTHREAD_LIBS) $(LIBS)
.PHONY: $(addprefix install_,$(TARGETS)) $(addprefix remove_,$(TARGETS))
More information about the dm-devel
mailing list