From: zkabelac@sourceware.org
To: dm-cvs@sourceware.org, dm-devel@redhat.com
Subject: dmraid ./configure ./configure.in ./make.tmpl. ...
Date: 31 May 2010 09:24:43 -0000 [thread overview]
Message-ID: <20100531092443.23093.qmail@sourceware.org> (raw)
CVSROOT: /cvs/dm
Module name: dmraid
Changes by: zkabelac@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))
next reply other threads:[~2010-05-31 9:24 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-31 9:24 zkabelac [this message]
-- strict thread matches above, loose matches on Subject: below --
2010-05-30 19:15 dmraid ./configure ./configure.in ./make.tmpl. zkabelac
2010-05-30 17:44 zkabelac
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100531092443.23093.qmail@sourceware.org \
--to=zkabelac@sourceware.org \
--cc=dm-cvs@sourceware.org \
--cc=dm-devel@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.