[Pvfs2-cvs] commit by slang in pvfs2: configure configure.in
pvfs2-config.h.in
CVS commit program
cvs at parl.clemson.edu
Tue Apr 1 18:24:48 EST 2008
Update of /projects/cvsroot/pvfs2
In directory parlweb1:/tmp/cvs-serv26625
Modified Files:
Tag: pvfs-2-7-branch
configure configure.in pvfs2-config.h.in
Log Message:
merge a bunch of fixes made to HEAD since 2.7.0.
Index: configure
===================================================================
RCS file: /projects/cvsroot/pvfs2/configure,v
diff -p -u -r1.367.2.4 -r1.367.2.5
--- configure 1 Apr 2008 21:32:26 -0000 1.367.2.4
+++ configure 1 Apr 2008 23:24:44 -0000 1.367.2.5
@@ -651,6 +651,9 @@ build_alias
host_alias
target_alias
PVFS2_VERSION
+PVFS2_VERSION_MAJOR
+PVFS2_VERSION_MINOR
+PVFS2_VERSION_SUB
build
build_cpu
build_vendor
@@ -692,6 +695,7 @@ build_static
REDHAT_RELEASE
NPTL_WORKAROUND
MISC_TROVE_FLAGS
+THREADED_KMOD_HELPER
LINUX_KERNEL_SRC
LINUX24_KERNEL_SRC
LINUX24_KERNEL_MINOR_VER
@@ -712,10 +716,12 @@ NEEDS_LIBRT
TARGET_OS_DARWIN
TARGET_OS_LINUX
BUILD_BMI_TCP
-GM_HOME
BUILD_GM
-MX_HOME
+GM_INCDIR
+GM_LIBDIR
BUILD_MX
+MX_INCDIR
+MX_LIBDIR
BUILD_IB
IB_INCDIR
IB_LIBDIR
@@ -1329,6 +1335,7 @@ Optional Features:
--disable-aio-threaded-callbacks Disable use of AIO threaded callbacks
--disable-kernel-aio Forcibly disable kernel aio
--enable-kernel-sendfile Forcibly enable kernel sendfile
+ --enable-threaded-kmod-helper Use threads in the kernel helper application
--enable-fast Disable optional debugging, enable optimizations.
--enable-strict Turn on strict compiler warnings
--enable-verbose-build Enables full output during build process
@@ -1336,7 +1343,7 @@ Optional Features:
(epoll is enabled by default, this option
ensures no checking is done for x-compiling)
--disable-epoll Disable epoll, use poll instead
- --enable-segv-backtrace Enables back traces in segfault signal handler
+ --disable-segv-backtrace Disables back traces in segfault signal handler
--enable-shared Build shared client library
--enable-static-server Builds the server static
@@ -1355,8 +1362,12 @@ Optional Packages:
--with-valgrind=<path> Use valgrind annotations for debugging.
--with-db=<dir> Location of installed DB package (default=/usr)
--without-bmi-tcp Disable BMI TCP method
- --with-gm=<dir> Location of the GM installation (default no GM)
- --with-mx=<dir> Location of the MX installation (default no MX)
+ --with-gm=<dir> Location of the GM install (default no GM)
+ --with-gm-includes=<dir> Location of the GM includes
+ --with-gm-libs=<dir> Location of the GM libraries
+ --with-mx=<dir> Location of the MX install (default no MX)
+ --with-mx-includes=<dir> Location of the MX includes
+ --with-mx-libs=<dir> Location of the MX libraries
--with-ib=<dir> Location of the IB installation (default no IB)
--with-ib-includes=<dir> Location of the IB includes
--with-ib-libs=<dir> Location of the IB libraries
@@ -1833,30 +1844,33 @@ ac_configure="$SHELL $ac_aux_dir/configu
CONFIGURE_TIME=`date -u +"%Y-%m-%d-%H%M%S"`
-PVFS2_MAJOR=2
-PVFS2_MINOR=7
-PVFS2_SUB=0
-PVFS2_PRE=""
-#PVFS2_PRE="pre1-$CONFIGURE_TIME"
+PVFS2_VERSION_MAJOR=2
+PVFS2_VERSION_MINOR=7
+PVFS2_VERSION_SUB=0
+PVFS2_VERSION_PRE=""
+#PVFS2_VERSION_PRE="pre1-$CONFIGURE_TIME"
-PVFS2_VERSION=$PVFS2_MAJOR.$PVFS2_MINOR.$PVFS2_SUB$PVFS2_PRE
+PVFS2_VERSION=$PVFS2_VERSION_MAJOR.$PVFS2_VERSION_MINOR.$PVFS2_VERSION_SUB$PVFS2_VERSION_PRE
cat >>confdefs.h <<_ACEOF
-#define PVFS2_VERSION_MAJOR $PVFS2_MAJOR
+#define PVFS2_VERSION_MAJOR $PVFS2_VERSION_MAJOR
_ACEOF
cat >>confdefs.h <<_ACEOF
-#define PVFS2_VERSION_MINOR $PVFS2_MINOR
+#define PVFS2_VERSION_MINOR $PVFS2_VERSION_MINOR
_ACEOF
cat >>confdefs.h <<_ACEOF
-#define PVFS2_VERSION_SUB $PVFS2_SUB
+#define PVFS2_VERSION_SUB $PVFS2_VERSION_SUB
_ACEOF
+
+
+
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
{ { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
@@ -5960,6 +5974,58 @@ fi
+#
+# Threading options.
+#
+# Client - thread-safe or not
+# --disable-thread-safety : chooses null or posix locking mechanism
+# For applications that know they are not multi-threaded, or choose
+# to handle locking themselves, this configure option can be used to
+# slightly decrease library-induced latency by removing the locking.
+#
+# Client - job threading
+# libpvfs2-threaded.{so,a} with __PVFS2_JOB_THREADED__
+# This option causes the client library to spawn an extra thread
+# to handle network communications. In this way, it is possible
+# that the library can handle new and completed requests from
+# the application while also interacting with the network.
+#
+# These separate libraries can not be built using the existing
+# configure mechanism. They are only built if required by the
+# kernel module helper.
+#
+# Server - three options:
+# trove
+# (hack Makefile.in)
+# job
+# (hack Makefile.in)
+# aio
+# --disable-aio-threaded-callbacks
+#
+# Trove (storage) and job threading in the server are implemented
+# using #defines, but not exported through the configure mechanism.
+# AIO threaded callbacks are a separate thread used in conjunction
+# with trove, and can be disabled through a configure option as
+# AIO has been found to be buggy on many systems.
+#
+#
+# Kernel module helper - job threading
+# --enable-threaded-kmod-helper
+#
+# This is a special client that "helps" applications that access PVFS
+# through the kernel using normal VFS calls (e.g. "ls"). This
+# configure options builds it using __PVFS2_JOB_THREADED__ as described
+# above. That enables a thread for the network layer and a thread
+# for the kernel interface. This has the potential to increase the
+# rate at which concurrent operations are processed, but has the potential
+# drawback of somewhat higher overhead for a single operation and lack
+# of testing.
+#
+# Enabling this options causes one of libpvfs2-threaded.{so,a} to be
+# built, depending on --enable-shared and --enable-static. If both are
+# enabled, the shared library takes precedence.
+#
+
{ echo "$as_me:$LINENO: checking for client library thread safety support" >&5
echo $ECHO_N "checking for client library thread safety support... $ECHO_C" >&6; }
# Check whether --enable-thread-safety was given.
@@ -6012,7 +6078,7 @@ echo $ECHO_N "checking for openssl libra
LDFLAGS="$LDFLAGS -L${opensslpath}/lib64 -L${opensslpath}/lib"
SERVER_LDFLAGS="$SERVER_LDFLAGS -L${opensslpath}/lib64 -L${opensslpath}/lib"
fi
- LIBS="$LIBS -lcrypt -lssl"
+ LIBS="$LIBS -lcrypto -lssl"
cat >conftest.$ac_ext <<_ACEOF
#include "openssl/bio.h"
@@ -6386,7 +6452,7 @@ else
{ echo "$as_me:$LINENO: checking for openssl library" >&5
echo $ECHO_N "checking for openssl library... $ECHO_C" >&6; }
TMPLIBS=${LIBS}
- LIBS="$LIBS -lcrypt -lssl"
+ LIBS="$LIBS -lcrypto -lssl"
cat >conftest.$ac_ext <<_ACEOF
#include "openssl/bio.h"
@@ -7025,7 +7091,7 @@ int
main ()
{
- struct aiocb;
+ struct aiocb aiocb;
aiocb.__error_code = 0;
;
@@ -7083,7 +7149,7 @@ int
main ()
{
- struct aiocb;
+ struct aiocb aiocb;
aiocb.__return_value = 0;
;
@@ -11552,7 +11618,65 @@ eval "echo \"\$as_me:$LINENO: $ac_try_ec
echo "${ECHO_T}yes" >&6; }
cat >>confdefs.h <<\_ACEOF
-#define HAVE_SPIN_LOCK_ADDR_SPACE_STRUCT 1
+#define HAVE_SPIN_LOCK_PAGE_ADDR_SPACE_STRUCT 1
+_ACEOF
+
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+ { echo "$as_me:$LINENO: checking if kernel address_space struct has a rwlock_t field named tree_lock" >&5
+echo $ECHO_N "checking if kernel address_space struct has a rwlock_t field named tree_lock... $ECHO_C" >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+ #define __KERNEL__
+ #include <linux/fs.h>
+
+int
+main ()
+{
+
+ struct address_space as;
+ read_lock(&as.tree_lock);
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SPIN_LOCK_TREE_ADDR_SPACE_STRUCT 1
_ACEOF
else
@@ -11682,6 +11806,64 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { echo "$as_me:$LINENO: checking if kernel super_operations contains read_inode field" >&5
+echo $ECHO_N "checking if kernel super_operations contains read_inode field... $ECHO_C" >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+ #define __KERNEL__
+ #include <linux/fs.h>
+
+int
+main ()
+{
+
+ struct super_operations sops;
+ sops.read_inode(NULL);
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_READ_INODE 1
+_ACEOF
+
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
CFLAGS=$oldcflags
@@ -11691,6 +11873,16 @@ _ACEOF
fi
+# Check whether --enable-threaded-kmod-helper was given.
+if test "${enable_threaded_kmod_helper+set}" = set; then
+ enableval=$enable_threaded_kmod_helper; if test "x$enableval" = "xyes" ; then
+ THREADED_KMOD_HELPER=yes
+ fi
+
+fi
+
+
+
BUILD_ABSOLUTE_TOP=`pwd`
SRC_RELATIVE_TOP=$srcdir
SRC_ABSOLUTE_TOP=`cd $srcdir ; pwd`
@@ -11951,9 +12143,70 @@ else
fi
+#if defined(REG_EIP)
+# define REG_INSTRUCTION_POINTER REG_EIP
+#elif defined(REG_RIP)
+# define REG_INSTRUCTION_POINTER REG_RIP
+#else
+# error Unknown instruction pointer location for your architecture, configure without --enable-segv-backtrace.
+#endif
+
# Check whether --enable-segv-backtrace was given.
if test "${enable_segv_backtrace+set}" = set; then
- enableval=$enable_segv_backtrace; PVFS2_SEGV_BACKTRACE=1
+ enableval=$enable_segv_backtrace;
+else
+ { echo "$as_me:$LINENO: checking if segv backtrace capable" >&5
+echo $ECHO_N "checking if segv backtrace capable... $ECHO_C" >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#if !defined(REG_EIP) && !defined(REG_RIP)
+ choke me
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+ PVFS2_SEGV_BACKTRACE=1
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
fi
@@ -13640,8 +13893,6 @@ if test "x$BUILD_SERVER" = "x1"; then
{ echo "$as_me:$LINENO: checking if server lib needs -lrt" >&5
echo $ECHO_N "checking if server lib needs -lrt... $ECHO_C" >&6; }
-oldldflags=$LDFLAGS
-
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
@@ -13684,7 +13935,8 @@ else
sed 's/^/| /' conftest.$ac_ext >&5
- LDFLAGS="$LDFLAGS -lrt"
+ oldlibs=$LIBS
+ LIBS="$LIBS -lrt"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
@@ -13735,14 +13987,13 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
conftest$ac_exeext conftest.$ac_ext
+ LIBS=$oldlibs
fi
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
conftest$ac_exeext conftest.$ac_ext
-LDFLAGS=$oldldflags
-
fi
case "$host_os" in
@@ -14321,24 +14572,62 @@ fi
-GM_HOME=
+
+ gm_home=
# Check whether --with-gm was given.
if test "${with_gm+set}" = set; then
withval=$with_gm; if test -z "$withval" -o "$withval" = yes ; then
- { { echo "$as_me:$LINENO: error: Option --with-gm requires the path to your GM tree." >&5
+ { { echo "$as_me:$LINENO: error: Option --with-gm requires the path to your GM tree." >&5
echo "$as_me: error: Option --with-gm requires the path to your GM tree." >&2;}
{ (exit 1); exit 1; }; }
- elif test "$withval" != no ; then
- GM_HOME="$withval"
- fi
+ elif test "$withval" != no ; then
+ gm_home="$withval"
+ fi
fi
-if test -n "$GM_HOME" ; then
- save_cppflags="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -I ${GM_HOME}/include -I ${GM_HOME}/include/gm"
- if test "${ac_cv_header_gm_h+set}" = set; then
+
+# Check whether --with-gm-includes was given.
+if test "${with_gm_includes+set}" = set; then
+ withval=$with_gm_includes; if test -z "$withval" -o "$withval" = yes ; then
+ { { echo "$as_me:$LINENO: error: Option --with-gm-includes requires path to GM headers." >&5
+echo "$as_me: error: Option --with-gm-includes requires path to GM headers." >&2;}
+ { (exit 1); exit 1; }; }
+ elif test "$withval" != no ; then
+ GM_INCDIR="$withval"
+ fi
+
+fi
+
+
+# Check whether --with-gm-libs was given.
+if test "${with_gm_libs+set}" = set; then
+ withval=$with_gm_libs; if test -z "$withval" -o "$withval" = yes ; then
+ { { echo "$as_me:$LINENO: error: Option --with-gm-libs requires path to GM libraries." >&5
+echo "$as_me: error: Option --with-gm-libs requires path to GM libraries." >&2;}
+ { (exit 1); exit 1; }; }
+ elif test "$withval" != no ; then
+ GM_LIBDIR="$withval"
+ fi
+
+fi
+
+ if test -n "$gm_home" ; then
+ if test -z "$GM_INCDIR"; then
+ GM_INCDIR=$gm_home/include
+ fi
+ if test -z "$GM_LIBDIR"; then
+ GM_LIBDIR=$gm_home/lib64
+ if test ! -d "$GM_LIBDIR" ; then
+ GM_LIBDIR=$gm_home/lib
+ fi
+ fi
+ fi
+ if test -n "$GM_INCDIR$GM_LIBDIR" ; then
+ save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -I$GM_INCDIR -I$GM_INCDIR/gm"
+ if test "${ac_cv_header_gm_h+set}" = set; then
{ echo "$as_me:$LINENO: checking for gm.h" >&5
echo $ECHO_N "checking for gm.h... $ECHO_C" >&6; }
if test "${ac_cv_header_gm_h+set}" = set; then
@@ -14472,29 +14761,77 @@ echo "$as_me: error: Header gm.h not fou
fi
- BUILD_GM=1
- CPPFLAGS="$save_cppflags"
-fi
+ if test ! -f $GM_LIBDIR/libgm.so ; then
+ if test ! -f $GM_LIBDIR/libgm.a ; then
+ { { echo "$as_me:$LINENO: error: Neither GM library libgm.so or libgm.a found." >&5
+echo "$as_me: error: Neither GM library libgm.so or libgm.a found." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+ BUILD_GM=1
+ CPPFLAGS="$save_cppflags"
+ fi
+
-MX_HOME=
+
+
+ mx_home=
# Check whether --with-mx was given.
if test "${with_mx+set}" = set; then
withval=$with_mx; if test -z "$withval" -o "$withval" = yes ; then
- { { echo "$as_me:$LINENO: error: Option --with-mx requires the path to your MX tree." >&5
+ { { echo "$as_me:$LINENO: error: Option --with-mx requires the path to your MX tree." >&5
echo "$as_me: error: Option --with-mx requires the path to your MX tree." >&2;}
{ (exit 1); exit 1; }; }
- elif test "$withval" != no ; then
- MX_HOME="$withval"
- fi
+ elif test "$withval" != no ; then
+ mx_home="$withval"
+ fi
+
+fi
+
+
+# Check whether --with-mx-includes was given.
+if test "${with_mx_includes+set}" = set; then
+ withval=$with_mx_includes; if test -z "$withval" -o "$withval" = yes ; then
+ { { echo "$as_me:$LINENO: error: Option --with-mx-includes requires path to MX headers." >&5
+echo "$as_me: error: Option --with-mx-includes requires path to MX headers." >&2;}
+ { (exit 1); exit 1; }; }
+ elif test "$withval" != no ; then
+ MX_INCDIR="$withval"
+ fi
fi
-if test -n "$MX_HOME" ; then
- CPPFLAGS="$CPPFLAGS -I ${MX_HOME}/include"
- if test "${ac_cv_header_myriexpress_h+set}" = set; then
+
+# Check whether --with-mx-libs was given.
+if test "${with_mx_libs+set}" = set; then
+ withval=$with_mx_libs; if test -z "$withval" -o "$withval" = yes ; then
+ { { echo "$as_me:$LINENO: error: Option --with-mx-libs requires path to MX libraries." >&5
+echo "$as_me: error: Option --with-mx-libs requires path to MX libraries." >&2;}
+ { (exit 1); exit 1; }; }
+ elif test "$withval" != no ; then
+ MX_LIBDIR="$withval"
+ fi
+
+fi
+
+ if test -n "$mx_home" ; then
+ if test -z "$MX_INCDIR"; then
+ MX_INCDIR=$mx_home/include
+ fi
+ if test -z "$MX_LIBDIR"; then
+ MX_LIBDIR=$mx_home/lib64
+ if test ! -d "$MX_LIBDIR" ; then
+ MX_LIBDIR=$mx_home/lib
+ fi
+ fi
+ fi
+ if test -n "$MX_INCDIR$MX_LIBDIR" ; then
+ save_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -I$MX_INCDIR -I$MX_INCDIR/mx"
+ if test "${ac_cv_header_myriexpress_h+set}" = set; then
{ echo "$as_me:$LINENO: checking for myriexpress.h" >&5
echo $ECHO_N "checking for myriexpress.h... $ECHO_C" >&6; }
if test "${ac_cv_header_myriexpress_h+set}" = set; then
@@ -14628,13 +14965,18 @@ echo "$as_me: error: Header myriexpress.
fi
- BUILD_MX=1
- CPPFLAGS="$CPPFLAGS_OLD"
- CFLAGS="${CFLAGS} -I${MX_HOME}/include"
- LDFLAGS="$LDFLAGS -L${MX_HOME}/lib"
- SERVER_LDFLAGS="$SERVER_LDFLAGS -L${MX_HOME}/lib"
- LIBS="$LIBS -lmyriexpress"
-fi
+ if test ! -f $MX_LIBDIR/libmyriexpress.so ; then
+ if test ! -f $MX_LIBDIR/libmyriexpress.a ; then
+ { { echo "$as_me:$LINENO: error: Neither MX library libmyriexpress.so or libmyriexpress.a found." >&5
+echo "$as_me: error: Neither MX library libmyriexpress.so or libmyriexpress.a found." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+ BUILD_MX=1
+ CPPFLAGS="$save_cppflags"
+ fi
+
+
@@ -16983,19 +17325,21 @@ done
# Check whether --enable-static-server was given.
if test "${enable_static_server+set}" = set; then
- enableval=$enable_static_server;
- SERVER_LDFLAGS="$LDFLAGS -static"
-
+ enableval=$enable_static_server; staticserver=$enableval
else
+ staticserver="no"
+fi
- SERVER_LDFLAGS="$LDFLAGS -rdynamic"
+if test "$staticserver" = "yes"; then
+ SERVER_LDFLAGS="$LDFLAGS -static"
+else
+ SERVER_LDFLAGS="$LDFLAGS -rdynamic"
fi
-
for ac_header in execinfo.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
@@ -18203,6 +18547,9 @@ build_alias!$build_alias$ac_delim
host_alias!$host_alias$ac_delim
target_alias!$target_alias$ac_delim
PVFS2_VERSION!$PVFS2_VERSION$ac_delim
+PVFS2_VERSION_MAJOR!$PVFS2_VERSION_MAJOR$ac_delim
+PVFS2_VERSION_MINOR!$PVFS2_VERSION_MINOR$ac_delim
+PVFS2_VERSION_SUB!$PVFS2_VERSION_SUB$ac_delim
build!$build$ac_delim
build_cpu!$build_cpu$ac_delim
build_vendor!$build_vendor$ac_delim
@@ -18244,6 +18591,7 @@ build_static!$build_static$ac_delim
REDHAT_RELEASE!$REDHAT_RELEASE$ac_delim
NPTL_WORKAROUND!$NPTL_WORKAROUND$ac_delim
MISC_TROVE_FLAGS!$MISC_TROVE_FLAGS$ac_delim
+THREADED_KMOD_HELPER!$THREADED_KMOD_HELPER$ac_delim
LINUX_KERNEL_SRC!$LINUX_KERNEL_SRC$ac_delim
LINUX24_KERNEL_SRC!$LINUX24_KERNEL_SRC$ac_delim
LINUX24_KERNEL_MINOR_VER!$LINUX24_KERNEL_MINOR_VER$ac_delim
@@ -18258,10 +18606,6 @@ PVFS2_SEGV_BACKTRACE!$PVFS2_SEGV_BACKTRA
build_shared!$build_shared$ac_delim
INTELC!$INTELC$ac_delim
GNUC!$GNUC$ac_delim
-DB_CFLAGS!$DB_CFLAGS$ac_delim
-DB_LIB!$DB_LIB$ac_delim
-NEEDS_LIBRT!$NEEDS_LIBRT$ac_delim
-TARGET_OS_DARWIN!$TARGET_OS_DARWIN$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -18303,12 +18647,18 @@ _ACEOF
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
+DB_CFLAGS!$DB_CFLAGS$ac_delim
+DB_LIB!$DB_LIB$ac_delim
+NEEDS_LIBRT!$NEEDS_LIBRT$ac_delim
+TARGET_OS_DARWIN!$TARGET_OS_DARWIN$ac_delim
TARGET_OS_LINUX!$TARGET_OS_LINUX$ac_delim
BUILD_BMI_TCP!$BUILD_BMI_TCP$ac_delim
-GM_HOME!$GM_HOME$ac_delim
BUILD_GM!$BUILD_GM$ac_delim
-MX_HOME!$MX_HOME$ac_delim
+GM_INCDIR!$GM_INCDIR$ac_delim
+GM_LIBDIR!$GM_LIBDIR$ac_delim
BUILD_MX!$BUILD_MX$ac_delim
+MX_INCDIR!$MX_INCDIR$ac_delim
+MX_LIBDIR!$MX_LIBDIR$ac_delim
BUILD_IB!$BUILD_IB$ac_delim
IB_INCDIR!$IB_INCDIR$ac_delim
IB_LIBDIR!$IB_LIBDIR$ac_delim
@@ -18327,7 +18677,7 @@ LIBOBJS!$LIBOBJS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 22; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 28; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
Index: configure.in
===================================================================
RCS file: /projects/cvsroot/pvfs2/configure.in,v
diff -p -u -r1.332 -r1.332.2.1
--- configure.in 9 Nov 2007 00:10:22 -0000 1.332
+++ configure.in 1 Apr 2008 23:24:48 -0000 1.332.2.1
@@ -16,17 +16,20 @@ dnl
dnl PVFS2 versioning information.
dnl An @ in the date string can confuse e.g. scp and 'make kmod'
CONFIGURE_TIME=`date -u +"%Y-%m-%d-%H%M%S"`
-PVFS2_MAJOR=2
-PVFS2_MINOR=7
-PVFS2_SUB=0
-PVFS2_PRE=""
-#PVFS2_PRE="pre1-$CONFIGURE_TIME"
+PVFS2_VERSION_MAJOR=2
+PVFS2_VERSION_MINOR=7
+PVFS2_VERSION_SUB=0
+PVFS2_VERSION_PRE=""
+#PVFS2_VERSION_PRE="pre1-$CONFIGURE_TIME"
-PVFS2_VERSION=$PVFS2_MAJOR.$PVFS2_MINOR.$PVFS2_SUB$PVFS2_PRE
+PVFS2_VERSION=$PVFS2_VERSION_MAJOR.$PVFS2_VERSION_MINOR.$PVFS2_VERSION_SUB$PVFS2_VERSION_PRE
AC_SUBST(PVFS2_VERSION)
-AC_DEFINE_UNQUOTED(PVFS2_VERSION_MAJOR, $PVFS2_MAJOR, major version number)
-AC_DEFINE_UNQUOTED(PVFS2_VERSION_MINOR, $PVFS2_MINOR, minor version number)
-AC_DEFINE_UNQUOTED(PVFS2_VERSION_SUB, $PVFS2_SUB, sub version number)
+AC_DEFINE_UNQUOTED(PVFS2_VERSION_MAJOR, $PVFS2_VERSION_MAJOR, major version number)
+AC_DEFINE_UNQUOTED(PVFS2_VERSION_MINOR, $PVFS2_VERSION_MINOR, minor version number)
+AC_DEFINE_UNQUOTED(PVFS2_VERSION_SUB, $PVFS2_VERSION_SUB, sub version number)
+AC_SUBST(PVFS2_VERSION_MAJOR)
+AC_SUBST(PVFS2_VERSION_MINOR)
+AC_SUBST(PVFS2_VERSION_SUB)
dnl Checks for host type
dnl Ensures we can compile on this OS
@@ -91,6 +94,58 @@ AC_SUBST(BUILD_CC)
AC_SUBST(BUILD_CFLAGS)
AC_SUBST(BUILD_LDFLAGS)
+#
+# Threading options.
+#
+# Client - thread-safe or not
+# --disable-thread-safety : chooses null or posix locking mechanism
+# For applications that know they are not multi-threaded, or choose
+# to handle locking themselves, this configure option can be used to
+# slightly decrease library-induced latency by removing the locking.
+#
+# Client - job threading
+# libpvfs2-threaded.{so,a} with __PVFS2_JOB_THREADED__
+# This option causes the client library to spawn an extra thread
+# to handle network communications. In this way, it is possible
+# that the library can handle new and completed requests from
+# the application while also interacting with the network.
+#
+# These separate libraries can not be built using the existing
+# configure mechanism. They are only built if required by the
+# kernel module helper.
+#
+# Server - three options:
+# trove
+# (hack Makefile.in)
+# job
+# (hack Makefile.in)
+# aio
+# --disable-aio-threaded-callbacks
+#
+# Trove (storage) and job threading in the server are implemented
+# using #defines, but not exported through the configure mechanism.
+# AIO threaded callbacks are a separate thread used in conjunction
+# with trove, and can be disabled through a configure option as
+# AIO has been found to be buggy on many systems.
+#
+#
+# Kernel module helper - job threading
+# --enable-threaded-kmod-helper
+#
+# This is a special client that "helps" applications that access PVFS
+# through the kernel using normal VFS calls (e.g. "ls"). This
+# configure options builds it using __PVFS2_JOB_THREADED__ as described
+# above. That enables a thread for the network layer and a thread
+# for the kernel interface. This has the potential to increase the
+# rate at which concurrent operations are processed, but has the potential
+# drawback of somewhat higher overhead for a single operation and lack
+# of testing.
+#
+# Enabling this options causes one of libpvfs2-threaded.{so,a} to be
+# built, depending on --enable-shared and --enable-static. If both are
+# enabled, the shared library takes precedence.
+#
+
dnl a mechanism to turn off threads in the client library
AC_MSG_CHECKING([for client library thread safety support])
AC_ARG_ENABLE(thread-safety,
@@ -346,7 +401,7 @@ AC_TRY_COMPILE(
#include <aio.h>
],
[
- struct aiocb;
+ struct aiocb aiocb;
aiocb.__error_code = 0;
],
AC_MSG_RESULT(yes)
@@ -362,7 +417,7 @@ AC_TRY_COMPILE(
#include <aio.h>
],
[
- struct aiocb;
+ struct aiocb aiocb;
aiocb.__return_value = 0;
],
AC_MSG_RESULT(yes)
@@ -523,6 +578,19 @@ if test -n "$lk_src" ; then
AC_DEFINE(WITH_LINUX_KMOD, 1, [Define to build for linux kernel module userspace helper.])
fi
+dnl
+dnl Enabling this option links pvfs2-client-core against libpvfs2-threaded.so.
+dnl Note that even without this option, pvfs2-client-core always requires
+dnl pthreads to run its remount thread.
+dnl
+AC_ARG_ENABLE([threaded-kmod-helper],
+[ --enable-threaded-kmod-helper Use threads in the kernel helper application],
+[ if test "x$enableval" = "xyes" ; then
+ THREADED_KMOD_HELPER=yes
+ fi
+])
+AC_SUBST(THREADED_KMOD_HELPER)
+
dnl PAV configuration needs absolute location of source and build.
dnl Linux-2.6 module needs absolute location of source, and uses the
dnl relative location for soft links for out-of-tree builds.
@@ -616,10 +684,28 @@ AC_ARG_ENABLE(epoll,
test_for_epoll
])
+#if defined(REG_EIP)
+# define REG_INSTRUCTION_POINTER REG_EIP
+#elif defined(REG_RIP)
+# define REG_INSTRUCTION_POINTER REG_RIP
+#else
+# error Unknown instruction pointer location for your architecture, configure without --enable-segv-backtrace.
+#endif
+
dnl enables a hack to print back traces out of segfault signal handler
AC_ARG_ENABLE(segv-backtrace,
-[ --enable-segv-backtrace Enables back traces in segfault signal handler],
- PVFS2_SEGV_BACKTRACE=1)
+[ --disable-segv-backtrace Disables back traces in segfault signal handler],,
+ AC_MSG_CHECKING(if segv backtrace capable)
+ AC_TRY_COMPILE([
+#if !defined(REG_EIP) && !defined(REG_RIP)
+ choke me
+#endif
+ ], [],
+ AC_MSG_RESULT(yes)
+ PVFS2_SEGV_BACKTRACE=1,
+ AC_MSG_RESULT(no)
+ )
+)
AC_SUBST(PVFS2_SEGV_BACKTRACE)
dnl shared or static client library
@@ -776,48 +862,15 @@ AC_ARG_WITH(bmi-tcp,
)
AC_SUBST(BUILD_BMI_TCP)
-dnl configure options for GM install path
-GM_HOME=
-AC_ARG_WITH(gm,
-[ --with-gm=<dir> Location of the GM installation (default no GM)],
- if test -z "$withval" -o "$withval" = yes ; then
- AC_MSG_ERROR([Option --with-gm requires the path to your GM tree.])
- elif test "$withval" != no ; then
- GM_HOME="$withval"
- fi
-)
-if test -n "$GM_HOME" ; then
- save_cppflags="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -I ${GM_HOME}/include -I ${GM_HOME}/include/gm"
- AC_CHECK_HEADER(gm.h,, AC_MSG_ERROR([Header gm.h not found.]))
- BUILD_GM=1
- CPPFLAGS="$save_cppflags"
-fi
-AC_SUBST(GM_HOME)
-AC_SUBST(BUILD_GM)
-
-dnl configure options for MX install path
-MX_HOME=
-AC_ARG_WITH(mx,
-[ --with-mx=<dir> Location of the MX installation (default no MX)],
- if test -z "$withval" -o "$withval" = yes ; then
- AC_MSG_ERROR([Option --with-mx requires the path to your MX tree.])
- elif test "$withval" != no ; then
- MX_HOME="$withval"
- fi
-)
-if test -n "$MX_HOME" ; then
- CPPFLAGS="$CPPFLAGS -I ${MX_HOME}/include"
- AC_CHECK_HEADER(myriexpress.h,, AC_MSG_ERROR([Header myriexpress.h not found.]))
- BUILD_MX=1
- CPPFLAGS="$CPPFLAGS_OLD"
- CFLAGS="${CFLAGS} -I${MX_HOME}/include"
- LDFLAGS="$LDFLAGS -L${MX_HOME}/lib"
- SERVER_LDFLAGS="$SERVER_LDFLAGS -L${MX_HOME}/lib"
- LIBS="$LIBS -lmyriexpress"
-fi
-AC_SUBST(MX_HOME)
-AC_SUBST(BUILD_MX)
+dnl
+dnl Configure bmi_gm, if --with-gm or a variant given.
+dnl
+AX_GM
+
+dnl
+dnl Configure bmi_mx, if --with-mx or a variant given.
+dnl
+AX_MX
dnl
dnl Configure bmi_ib, if --with-ib or a variant given.
@@ -933,12 +986,14 @@ AC_CHECK_HEADERS(mntent.h)
AC_ARG_ENABLE(static-server,
[ --enable-static-server Builds the server static],
-[
+[ staticserver=$enableval ],
+[ staticserver="no" ] )
+
+if test "$staticserver" = "yes"; then
SERVER_LDFLAGS="$LDFLAGS -static"
-],
-[
+else
SERVER_LDFLAGS="$LDFLAGS -rdynamic"
-])
+fi
AC_SUBST(SERVER_LDFLAGS)
Index: pvfs2-config.h.in
===================================================================
RCS file: /projects/cvsroot/pvfs2/pvfs2-config.h.in,v
diff -p -u -r1.111.2.3 -r1.111.2.4
--- pvfs2-config.h.in 1 Apr 2008 20:52:03 -0000 1.111.2.3
+++ pvfs2-config.h.in 1 Apr 2008 23:24:48 -0000 1.111.2.4
@@ -262,6 +262,9 @@
/* Define if struct file_operations in kernel has readx callback */
#undef HAVE_READX_FILE_OPERATIONS
+/* Define if kernel super_operations contains read_inode field */
+#undef HAVE_READ_INODE
+
/* Define if kernel has register_ioctl32_conversion */
#undef HAVE_REGISTER_IOCTL32_CONVERSION
@@ -284,8 +287,13 @@
/* Define if SLAB_KERNEL is defined in kernel */
#undef HAVE_SLAB_KERNEL
-/* Define if kernel address_space struct has a spin_lock instead of rw_lock */
-#undef HAVE_SPIN_LOCK_ADDR_SPACE_STRUCT
+/* Define if kernel address_space struct has a spin_lock member named
+ page_lock instead of rw_lock */
+#undef HAVE_SPIN_LOCK_PAGE_ADDR_SPACE_STRUCT
+
+/* Define if kernel address_space struct has a spin_lock member named
+ tree_lock instead of rw_lock */
+#undef HAVE_SPIN_LOCK_TREE_ADDR_SPACE_STRUCT
/* Define if struct super_operations in kernel has statfs_lite callback */
#undef HAVE_STATFS_LITE_SUPER_OPERATIONS
More information about the Pvfs2-cvs
mailing list