[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