Index: README =================================================================== RCS file: /home/MPI/cvsMaster/mpich/README,v retrieving revision 1.40 retrieving revision 1.41 diff -c -r1.40 -r1.41 *** README 2003/01/03 15:08:04 1.40 --- README 2003/01/09 21:51:28 1.41 *************** *** 6,13 **** David Ashton Anthony Chan Bill Gropp Rusty Lusk ! Robb Ross Rajeev Thakur Brian Toonen --- 6,14 ---- David Ashton Anthony Chan Bill Gropp + Rob Latham Rusty Lusk ! Rob Ross Rajeev Thakur Brian Toonen Index: configure =================================================================== RCS file: /home/MPI/cvsMaster/mpich/configure,v retrieving revision 1.338 retrieving revision 1.342 diff -c -r1.338 -r1.342 *** configure 2002/12/03 13:54:02 1.338 --- configure 2003/01/13 21:34:56 1.342 *************** *** 2466,2475 **** # just use prefix=localdir # Alternate is to use build///include # Include dir for USER PROGRAMS ! if test -z "$prefix" ; then ! prefix=$MPIR_HOME ! fi ! includedir="${prefix}/include" # # We can't use a relative srcdir path because autoconf1 has a bug that --- 2466,2473 ---- # just use prefix=localdir # Alternate is to use build///include # Include dir for USER PROGRAMS ! if test -z "$prefix" ; then prefix=$MPIR_HOME ; fi ! if test -z "$includedir" ; then includedir="${prefix}/include" ; fi # # We can't use a relative srcdir path because autoconf1 has a bug that *************** *** 9303,9308 **** --- 9301,9307 ---- cat > conftest.$ac_ext <>conftest1.c <//include # Include dir for USER PROGRAMS ! if test -z "$prefix" ; then ! prefix=$MPIR_HOME ! fi ! includedir="${prefix}/include" AC_SUBST(includedir) # # We can't use a relative srcdir path because autoconf1 has a bug that --- 1635,1642 ---- # just use prefix=localdir # Alternate is to use build///include # Include dir for USER PROGRAMS ! if test -z "$prefix" ; then prefix=$MPIR_HOME ; fi ! if test -z "$includedir" ; then includedir="${prefix}/include" ; fi AC_SUBST(includedir) # # We can't use a relative srcdir path because autoconf1 has a bug that *************** *** 2659,2664 **** --- 2657,2663 ---- if test $TRY_WEAK_SYMBOLS = 1 ; then AC_MSG_CHECKING(for weak symbol support) AC_TRY_LINK([ + extern int PFoo(int a); #pragma weak PFoo = Foo int Foo(a) { return a; } ],[return PFoo(1);],has_pragma_weak=1) *************** *** 2670,2675 **** --- 2669,2675 ---- AC_MSG_CHECKING([that weak symbols are visible to other files]) rm -f conftest* cat >>conftest1.c < $bindir/mpereconfig.dat filelist="$filelist $bindir/mpereconfig.dat" ! chmod $XMODE $bindir/mpereconfig.dat else cat <<. cat config.status | \ --- 441,449 ---- -e "s%^ac_given_srcdir=.*$%ac_given_srcdir=%g" \ -e '/if test "\$ac_dir/,/^[ ]*fi[ ]*$/d' \ -e 's/ac_dir_suffix/ac_dir/' \ ! > ${DESTDIR}$bindir/mpereconfig.dat filelist="$filelist $bindir/mpereconfig.dat" ! chmod $XMODE ${DESTDIR}$bindir/mpereconfig.dat else cat <<. cat config.status | \ *************** *** 466,474 **** -e "s%^ac_given_srcdir=.*$%ac_given_srcdir=%g" \ -e '/if test "\$ac_dir/,/^[ ]*fi[ ]*$/d' \ -e 's/ac_dir_suffix/ac_dir/' \ ! > $bindir/mpereconfig.dat filelist="$filelist $bindir/mpereconfig.dat" ! chmod $XMODE $bindir/mpereconfig.dat else cat <<. cat config.status | \ --- 466,474 ---- -e "s%^ac_given_srcdir=.*$%ac_given_srcdir=%g" \ -e '/if test "\$ac_dir/,/^[ ]*fi[ ]*$/d' \ -e 's/ac_dir_suffix/ac_dir/' \ ! > $DESTDIR$bindir/mpereconfig.dat filelist="$filelist $bindir/mpereconfig.dat" ! chmod $XMODE $DESTDIR$bindir/mpereconfig.dat else cat <<. cat config.status | \ *************** *** 488,510 **** CopyDirRecurP $top_srcdir/contrib/test $examplesdir # Create MPE examples Makefile ! ( cd $examplesdir ; $bindir/mpereconfig Makefile ) filelist="$filelist $examplesdir/Makefile" if [ -x $bindir/mpirun ] ; then ! $Show "( cd $examplesdir ; \ /bin/rm -f mpirun ; \ ln -s $bindir/mpirun mpirun )" filelist="$filelist $examplesdir/mpirun" fi ! ! if [ -f $examplesdir/Makefile ] ; then echo "About to run installation test for C programs..." ! $Show "( cd $examplesdir ; $MAKE linktest_C )" if test "$NOF77" = "0" ; then echo "About to run installation test for Fortran programs..." $Show "( cd $examplesdir ; $MAKE linktest_f77 )" fi fi # Remove old uninstall file --- 488,512 ---- CopyDirRecurP $top_srcdir/contrib/test $examplesdir # Create MPE examples Makefile ! ( cd $DESTDIR$examplesdir ; $bindir/mpereconfig Makefile ) filelist="$filelist $examplesdir/Makefile" if [ -x $bindir/mpirun ] ; then ! $Show "( cd $DESTDIR$examplesdir ; \ /bin/rm -f mpirun ; \ ln -s $bindir/mpirun mpirun )" filelist="$filelist $examplesdir/mpirun" fi ! ! if [ -z "$DESTDIR" ]; then ! if [ -f $DESTDIR$examplesdir/Makefile ] ; then echo "About to run installation test for C programs..." ! $Show "( cd $DESTDIR$examplesdir ; $MAKE linktest_C )" if test "$NOF77" = "0" ; then echo "About to run installation test for Fortran programs..." $Show "( cd $examplesdir ; $MAKE linktest_f77 )" fi + fi fi # Remove old uninstall file *************** *** 537,543 **** fi fi ! if [ -s $examplesdir/Makefile ] ; then echo "( cd $examplesdir ; $MAKE clean )" >> $UNINSTALLFILE fi --- 539,545 ---- fi fi ! if [ -s $DESTDIR$examplesdir/Makefile ] ; then echo "( cd $examplesdir ; $MAKE clean )" >> $UNINSTALLFILE fi Index: mpe/slog_api/sbin/install-slog.in =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpe/slog_api/sbin/install-slog.in,v retrieving revision 1.1 retrieving revision 1.2 diff -c -r1.1 -r1.2 *** mpe/slog_api/sbin/install-slog.in 2000/06/29 05:51:41 1.1 --- mpe/slog_api/sbin/install-slog.in 2003/01/13 17:26:01 1.2 *************** *** 68,74 **** if [ -z "$UNINSTALLFILE" ] ; then INSTALL_base=`basename $0` UNINSTALL_base=`echo $INSTALL_base | sed -e 's/install/uninstall/'` ! UNINSTALLFILE=${sbindir}/${UNINSTALL_base} fi # Update the $prefix if necessary --- 68,74 ---- if [ -z "$UNINSTALLFILE" ] ; then INSTALL_base=`basename $0` UNINSTALL_base=`echo $INSTALL_base | sed -e 's/install/uninstall/'` ! UNINSTALLFILE=$DESTDIR${sbindir}/${UNINSTALL_base} fi # Update the $prefix if necessary *************** *** 139,148 **** else mode=$3 fi ! if [ -d $2 ] ; then ! dest=$2/`basename $1` else ! dest=$2 fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi --- 139,149 ---- else mode=$3 fi ! dest=$DESTDIR$2 ! if [ -d $dest ] ; then ! dest=$dest/`basename $1` else ! dest=$dest fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi *************** *** 204,210 **** set $1 $2 ${3:-$MODE} `pwd` cd $1 for file in * ; do ! if [ -f $file -a ! -f $2/$file ] ; then CopyFileP $file $2/$file $3 fi done --- 205,211 ---- set $1 $2 ${3:-$MODE} `pwd` cd $1 for file in * ; do ! if [ -f $file -a ! -f $DESTDIR$2/$file ] ; then CopyFileP $file $2/$file $3 fi done *************** *** 230,237 **** # Make the given directory. This handles building intermediate directories # as required, and maintains a list of created directories in dirlist. MkDir() { ! if [ ! -d $1 ] ; then ! dir=`echo $1 | sed 's%/% /%g'` path_to_date='' for path in $dir ; do path_to_date="$path_to_date$path" --- 231,238 ---- # Make the given directory. This handles building intermediate directories # as required, and maintains a list of created directories in dirlist. MkDir() { ! if [ ! -d $DESTDIR$1 ] ; then ! dir=`echo $DESTDIR$1 | sed 's%/% /%g'` path_to_date='' for path in $dir ; do path_to_date="$path_to_date$path" *************** *** 299,305 **** mandir=$prefix/man htmldir=$prefix/html if [ $appendUninstall = 0 ] ; then ! UNINSTALLFILE=${sbindir}/${UNINSTALL_base} fi fi --- 300,306 ---- mandir=$prefix/man htmldir=$prefix/html if [ $appendUninstall = 0 ] ; then ! UNINSTALLFILE=$DESTDIR${sbindir}/${UNINSTALL_base} fi fi Index: mpe/viewers/jumpshot-2/aclocal_java.m4 =================================================================== RCS file: /home/MPI/cvsMaster/jumpshot-2.0/aclocal_java.m4,v retrieving revision 1.6 retrieving revision 1.7 diff -c -r1.6 -r1.7 *** mpe/viewers/jumpshot-2/aclocal_java.m4 2001/07/12 18:00:44 1.6 --- mpe/viewers/jumpshot-2/aclocal_java.m4 2003/01/10 23:25:14 1.7 *************** *** 143,148 **** --- 143,150 ---- fi # AC_MSG_CHECKING(for Java in known locations) + # Make sure that we have glob expansion turned on + set +f for dir in \ /usr \ /usr/jdk* \ Index: mpe/viewers/jumpshot-2/configure =================================================================== RCS file: /home/MPI/cvsMaster/jumpshot-2.0/configure,v retrieving revision 1.38 retrieving revision 1.39 diff -c -r1.38 -r1.39 *** mpe/viewers/jumpshot-2/configure 2002/06/05 18:18:04 1.38 --- mpe/viewers/jumpshot-2/configure 2003/01/13 21:34:36 1.39 *************** *** 1029,1034 **** --- 1029,1036 ---- # echo $ac_n "checking for Java in known locations""... $ac_c" 1>&6 echo "configure:1032: checking for Java in known locations" >&5 + # Make sure that we have glob expansion turned on + set +f for dir in \ /usr \ /usr/jdk* \ *************** *** 1074,1080 **** if test -n "${JAVA_HOME}" ; then echo "$ac_t""found ${JAVA_HOME}" 1>&6 echo $ac_n "checking if ${JAVA_HOME}/bin/javac compiles""... $ac_c" 1>&6 ! echo "configure:1078: checking if ${JAVA_HOME}/bin/javac compiles" >&5 pac_JC="${JAVA_HOME}/bin/javac" pac_JFLAGS="" --- 1076,1082 ---- if test -n "${JAVA_HOME}" ; then echo "$ac_t""found ${JAVA_HOME}" 1>&6 echo $ac_n "checking if ${JAVA_HOME}/bin/javac compiles""... $ac_c" 1>&6 ! echo "configure:1080: checking if ${JAVA_HOME}/bin/javac compiles" >&5 pac_JC="${JAVA_HOME}/bin/javac" pac_JFLAGS="" *************** *** 1093,1099 **** EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1097: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no --- 1095,1101 ---- EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1099: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no *************** *** 1105,1111 **** else echo "$ac_t""no" 1>&6 echo $ac_n "checking for working Java in known locations""... $ac_c" 1>&6 ! echo "configure:1109: checking for working Java in known locations" >&5 JAVA_HOME="" fi fi --- 1107,1113 ---- else echo "$ac_t""no" 1>&6 echo $ac_n "checking for working Java in known locations""... $ac_c" 1>&6 ! echo "configure:1111: checking for working Java in known locations" >&5 JAVA_HOME="" fi fi *************** *** 1143,1149 **** if test "$FOUND_ENV_JAVA_HOME" = "no" ; then echo $ac_n "checking if $JC compiles""... $ac_c" 1>&6 ! echo "configure:1147: checking if $JC compiles" >&5 if test -x "$JC" ; then pac_JC="$JC" --- 1145,1151 ---- if test "$FOUND_ENV_JAVA_HOME" = "no" ; then echo $ac_n "checking if $JC compiles""... $ac_c" 1>&6 ! echo "configure:1149: checking if $JC compiles" >&5 if test -x "$JC" ; then pac_JC="$JC" *************** *** 1163,1169 **** EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1167: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no --- 1165,1171 ---- EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1169: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no *************** *** 1197,1203 **** for exe in "$JAR" "$JVM" ; do echo $ac_n "checking if $exe exists""... $ac_c" 1>&6 ! echo "configure:1201: checking if $exe exists" >&5 if test -x "$exe" ; then echo "$ac_t""yes" 1>&6 else --- 1199,1205 ---- for exe in "$JAR" "$JVM" ; do echo $ac_n "checking if $exe exists""... $ac_c" 1>&6 ! echo "configure:1203: checking if $exe exists" >&5 if test -x "$exe" ; then echo "$ac_t""yes" 1>&6 else *************** *** 1214,1220 **** done echo $ac_n "checking if $JC compiles Swing-1.1.1 code""... $ac_c" 1>&6 ! echo "configure:1218: checking if $JC compiles Swing-1.1.1 code" >&5 pac_JC="$JC" pac_JFLAGS="" --- 1216,1222 ---- done echo $ac_n "checking if $JC compiles Swing-1.1.1 code""... $ac_c" 1>&6 ! echo "configure:1220: checking if $JC compiles Swing-1.1.1 code" >&5 pac_JC="$JC" pac_JFLAGS="" *************** *** 1236,1242 **** EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1240: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no --- 1238,1244 ---- EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1242: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no *************** *** 1266,1272 **** if test "$enable_internalswing" = "yes" ; then echo $ac_n "checking if $JC with swing.jar compiles Swing-1.0.3 code""... $ac_c" 1>&6 ! echo "configure:1270: checking if $JC with swing.jar compiles Swing-1.0.3 code" >&5 pac_JC="$JC" pac_JFLAGS="-classpath $JAVA_LIBS:$srcdir/swing/swing.jar:. -d ." --- 1268,1274 ---- if test "$enable_internalswing" = "yes" ; then echo $ac_n "checking if $JC with swing.jar compiles Swing-1.0.3 code""... $ac_c" 1>&6 ! echo "configure:1272: checking if $JC with swing.jar compiles Swing-1.0.3 code" >&5 pac_JC="$JC" pac_JFLAGS="-classpath $JAVA_LIBS:$srcdir/swing/swing.jar:. -d ." *************** *** 1288,1294 **** EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1292: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no --- 1290,1296 ---- EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1294: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no *************** *** 1314,1320 **** # Filter out the version of JDK that causes problem if test "$enable_checkversion" = "yes" ; then echo $ac_n "checking for Java version""... $ac_c" 1>&6 ! echo "configure:1318: checking for Java version" >&5 VERSION=`$JAVA_HOME/bin/java -fullversion 2>&1` case "$VERSION" in *1.0*) --- 1316,1322 ---- # Filter out the version of JDK that causes problem if test "$enable_checkversion" = "yes" ; then echo $ac_n "checking for Java version""... $ac_c" 1>&6 ! echo "configure:1320: checking for Java version" >&5 VERSION=`$JAVA_HOME/bin/java -fullversion 2>&1` case "$VERSION" in *1.0*) *************** *** 1396,1402 **** SWING_LIBRARIES=`echo $SWING_LIBS | sed 's/:/ /g'` for library in $SWING_LIBRARIES ; do echo $ac_n "checking for $library""... $ac_c" 1>&6 ! echo "configure:1400: checking for $library" >&5 if test -f "$library" ; then echo "$ac_t""yes" 1>&6 else --- 1398,1404 ---- SWING_LIBRARIES=`echo $SWING_LIBS | sed 's/:/ /g'` for library in $SWING_LIBRARIES ; do echo $ac_n "checking for $library""... $ac_c" 1>&6 ! echo "configure:1402: checking for $library" >&5 if test -f "$library" ; then echo "$ac_t""yes" 1>&6 else Index: mpe/viewers/jumpshot-3/aclocal_java.m4 =================================================================== RCS file: /home/MPI/cvsMaster/jumpshot-3/aclocal_java.m4,v retrieving revision 1.9 retrieving revision 1.11 diff -c -r1.9 -r1.11 *** mpe/viewers/jumpshot-3/aclocal_java.m4 2001/07/19 18:14:50 1.9 --- mpe/viewers/jumpshot-3/aclocal_java.m4 2003/01/13 21:34:36 1.11 *************** *** 143,154 **** --- 143,157 ---- fi # AC_MSG_CHECKING(for Java in known locations) + # Make sure that we have glob expansion turned on + set +f reverse_dirs="" for dir in \ /usr \ /usr/jdk* \ /usr/j2sdk* \ /usr/java* \ + /usr/java/j2sdk* \ /usr/local \ /usr/local/java* \ /usr/local/jdk* \ Index: mpe/viewers/jumpshot-3/configure =================================================================== RCS file: /home/MPI/cvsMaster/jumpshot-3/configure,v retrieving revision 1.43 retrieving revision 1.44 diff -c -r1.43 -r1.44 *** mpe/viewers/jumpshot-3/configure 2002/06/05 18:19:03 1.43 --- mpe/viewers/jumpshot-3/configure 2003/01/13 21:34:37 1.44 *************** *** 1029,1040 **** --- 1029,1043 ---- # echo $ac_n "checking for Java in known locations""... $ac_c" 1>&6 echo "configure:1032: checking for Java in known locations" >&5 + # Make sure that we have glob expansion turned on + set +f reverse_dirs="" for dir in \ /usr \ /usr/jdk* \ /usr/j2sdk* \ /usr/java* \ + /usr/java/j2sdk* \ /usr/local \ /usr/local/java* \ /usr/local/jdk* \ *************** *** 1095,1101 **** if test -n "${JAVA_HOME}" ; then echo "$ac_t""found ${JAVA_HOME}" 1>&6 echo $ac_n "checking if ${JAVA_HOME}/bin/javac compiles""... $ac_c" 1>&6 ! echo "configure:1099: checking if ${JAVA_HOME}/bin/javac compiles" >&5 pac_JC="${JAVA_HOME}/bin/javac" pac_JFLAGS="" --- 1098,1104 ---- if test -n "${JAVA_HOME}" ; then echo "$ac_t""found ${JAVA_HOME}" 1>&6 echo $ac_n "checking if ${JAVA_HOME}/bin/javac compiles""... $ac_c" 1>&6 ! echo "configure:1102: checking if ${JAVA_HOME}/bin/javac compiles" >&5 pac_JC="${JAVA_HOME}/bin/javac" pac_JFLAGS="" *************** *** 1114,1120 **** EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1118: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no --- 1117,1123 ---- EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1121: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no *************** *** 1126,1132 **** else echo "$ac_t""no" 1>&6 echo $ac_n "checking for working Java in known locations""... $ac_c" 1>&6 ! echo "configure:1130: checking for working Java in known locations" >&5 JAVA_HOME="" fi fi --- 1129,1135 ---- else echo "$ac_t""no" 1>&6 echo $ac_n "checking for working Java in known locations""... $ac_c" 1>&6 ! echo "configure:1133: checking for working Java in known locations" >&5 JAVA_HOME="" fi fi *************** *** 1165,1171 **** if test "$FOUND_ENV_JAVA_HOME" = "no" ; then echo $ac_n "checking if $JC compiles""... $ac_c" 1>&6 ! echo "configure:1169: checking if $JC compiles" >&5 if test -x "$JC" ; then pac_JC="$JC" --- 1168,1174 ---- if test "$FOUND_ENV_JAVA_HOME" = "no" ; then echo $ac_n "checking if $JC compiles""... $ac_c" 1>&6 ! echo "configure:1172: checking if $JC compiles" >&5 if test -x "$JC" ; then pac_JC="$JC" *************** *** 1185,1191 **** EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1189: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no --- 1188,1194 ---- EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1192: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no *************** *** 1219,1225 **** for exe in "$RMIC" "$JAR" "$JVM" ; do echo $ac_n "checking if $exe exists""... $ac_c" 1>&6 ! echo "configure:1223: checking if $exe exists" >&5 if test -x "$exe" ; then echo "$ac_t""yes" 1>&6 else --- 1222,1228 ---- for exe in "$RMIC" "$JAR" "$JVM" ; do echo $ac_n "checking if $exe exists""... $ac_c" 1>&6 ! echo "configure:1226: checking if $exe exists" >&5 if test -x "$exe" ; then echo "$ac_t""yes" 1>&6 else *************** *** 1236,1242 **** done echo $ac_n "checking if $JC compiles Swing-1.1.1 code""... $ac_c" 1>&6 ! echo "configure:1240: checking if $JC compiles Swing-1.1.1 code" >&5 pac_JC="$JC" pac_JFLAGS="" --- 1239,1245 ---- done echo $ac_n "checking if $JC compiles Swing-1.1.1 code""... $ac_c" 1>&6 ! echo "configure:1243: checking if $JC compiles Swing-1.1.1 code" >&5 pac_JC="$JC" pac_JFLAGS="" *************** *** 1258,1264 **** EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1262: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no --- 1261,1267 ---- EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1265: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no *************** *** 1288,1294 **** if test "$enable_internalswing" = "yes" ; then echo $ac_n "checking if $JC with swing.jar compiles Swing-1.1.1 code""... $ac_c" 1>&6 ! echo "configure:1292: checking if $JC with swing.jar compiles Swing-1.1.1 code" >&5 pac_JC="$JC" pac_JFLAGS="-classpath $JAVA_LIBS:$srcdir/swing/swing.jar:. -d ." --- 1291,1297 ---- if test "$enable_internalswing" = "yes" ; then echo $ac_n "checking if $JC with swing.jar compiles Swing-1.1.1 code""... $ac_c" 1>&6 ! echo "configure:1295: checking if $JC with swing.jar compiles Swing-1.1.1 code" >&5 pac_JC="$JC" pac_JFLAGS="-classpath $JAVA_LIBS:$srcdir/swing/swing.jar:. -d ." *************** *** 1310,1316 **** EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1314: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no --- 1313,1319 ---- EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest.java 1>&5' ! if { (eval echo configure:1317: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no *************** *** 1335,1341 **** # Try to filter out the broken RMIC from JDK-1.2 pre-release echo $ac_n "checking if $RMIC generates stub""... $ac_c" 1>&6 ! echo "configure:1339: checking if $RMIC generates stub" >&5 pac_RMIC="$RMIC" pac_JRFLAGS="-classpath $JAVA_LIBS:. -d . $JFLAGS" --- 1338,1344 ---- # Try to filter out the broken RMIC from JDK-1.2 pre-release echo $ac_n "checking if $RMIC generates stub""... $ac_c" 1>&6 ! echo "configure:1342: checking if $RMIC generates stub" >&5 pac_RMIC="$RMIC" pac_JRFLAGS="-classpath $JAVA_LIBS:. -d . $JFLAGS" *************** *** 1364,1372 **** EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest_remote.java conftest_rmic.java 1>&5' ! if { (eval echo configure:1368: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest_rmic.class ; then pac_jrmic='${pac_RMIC} ${pac_JRFLAGS} conftest_rmic 1>&5' ! if { (eval echo configure:1370: \"$pac_jrmic\") 1>&5; (eval $pac_jrmic) 2>&5; } && test -s conftest_rmic_Stub.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no --- 1367,1375 ---- EOF pac_jcompile='${pac_JC} ${pac_JFLAGS} conftest_remote.java conftest_rmic.java 1>&5' ! if { (eval echo configure:1371: \"$pac_jcompile\") 1>&5; (eval $pac_jcompile) 2>&5; } && test -s conftest_rmic.class ; then pac_jrmic='${pac_RMIC} ${pac_JRFLAGS} conftest_rmic 1>&5' ! if { (eval echo configure:1373: \"$pac_jrmic\") 1>&5; (eval $pac_jrmic) 2>&5; } && test -s conftest_rmic_Stub.class ; then rm -rf conftest* ; pac_java_working=yes else rm -rf conftest* ; pac_java_working=no *************** *** 1386,1392 **** # Filter out the version of JDK that causes problem if test "$enable_checkversion" = "yes" ; then echo $ac_n "checking for Java version""... $ac_c" 1>&6 ! echo "configure:1390: checking for Java version" >&5 VERSION=`$JAVA_HOME/bin/java -fullversion 2>&1` case "$VERSION" in *1.0*) --- 1389,1395 ---- # Filter out the version of JDK that causes problem if test "$enable_checkversion" = "yes" ; then echo $ac_n "checking for Java version""... $ac_c" 1>&6 ! echo "configure:1393: checking for Java version" >&5 VERSION=`$JAVA_HOME/bin/java -fullversion 2>&1` case "$VERSION" in *1.0*) *************** *** 1449,1455 **** SWING_LIBRARIES=`echo $SWING_LIBS | sed 's/:/ /g'` for library in $SWING_LIBRARIES ; do echo $ac_n "checking for $library""... $ac_c" 1>&6 ! echo "configure:1453: checking for $library" >&5 if test -f "$library" ; then echo "$ac_t""yes" 1>&6 else --- 1452,1458 ---- SWING_LIBRARIES=`echo $SWING_LIBS | sed 's/:/ /g'` for library in $SWING_LIBRARIES ; do echo $ac_n "checking for $library""... $ac_c" 1>&6 ! echo "configure:1456: checking for $library" >&5 if test -f "$library" ; then echo "$ac_t""yes" 1>&6 else Index: mpe/viewers/sbin/install-viewers.in =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpe/viewers/sbin/install-viewers.in,v retrieving revision 1.6 retrieving revision 1.7 diff -c -r1.6 -r1.7 *** mpe/viewers/sbin/install-viewers.in 2001/07/13 12:59:29 1.6 --- mpe/viewers/sbin/install-viewers.in 2003/01/13 17:26:01 1.7 *************** *** 62,68 **** if [ -z "$UNINSTALLFILE" ] ; then INSTALL_base=`basename $0` UNINSTALL_base=`echo $INSTALL_base | sed -e 's/install/uninstall/'` ! UNINSTALLFILE=${sbindir}/${UNINSTALL_base} fi # Update the $prefix if necessary --- 62,68 ---- if [ -z "$UNINSTALLFILE" ] ; then INSTALL_base=`basename $0` UNINSTALL_base=`echo $INSTALL_base | sed -e 's/install/uninstall/'` ! UNINSTALLFILE=$DESTDIR${sbindir}/${UNINSTALL_base} fi # Update the $prefix if necessary *************** *** 134,143 **** else mode=$3 fi ! if [ -d $2 ] ; then ! dest=$2/`basename $1` else ! dest=$2 fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi --- 134,144 ---- else mode=$3 fi ! dest=$DESTDIR$2 ! if [ -d $dest ] ; then ! dest=$dest/`basename $1` else ! dest=$dest fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi *************** *** 200,206 **** set $1 $2 ${3:-$MODE} `pwd` cd $1 for file in * ; do ! if [ -f $file -a ! -f $2/$file ] ; then CopyFileP $file $2/$file $3 fi done --- 201,207 ---- set $1 $2 ${3:-$MODE} `pwd` cd $1 for file in * ; do ! if [ -f $file -a ! -f $DESTDIR$2/$file ] ; then CopyFileP $file $2/$file $3 fi done *************** *** 225,232 **** # Make the given directory. This handles building intermediate directories # as required, and maintains a list of created directories in dirlist. MkDir() { ! if [ ! -d $1 ] ; then ! dir=`echo $1 | sed 's%/% /%g'` path_to_date='' for path in $dir ; do path_to_date="$path_to_date$path" --- 226,233 ---- # Make the given directory. This handles building intermediate directories # as required, and maintains a list of created directories in dirlist. MkDir() { ! if [ ! -d $DESTDIR$1 ] ; then ! dir=`echo $DESTDIR$1 | sed 's%/% /%g'` path_to_date='' for path in $dir ; do path_to_date="$path_to_date$path" *************** *** 268,277 **** # Change the FIRST libpath to the new form. This allows # the LIB_PATH to contain multiple names, as long as the MPICH libpath # is first ! if [ -d $2 ] ; then ! dest=$2/`basename $1` else ! dest=$2 fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi --- 269,279 ---- # Change the FIRST libpath to the new form. This allows # the LIB_PATH to contain multiple names, as long as the MPICH libpath # is first ! dest=$DESTDIR$2 ! if [ -d $dest ] ; then ! dest=$dest/`basename $1` else ! dest=$dest fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi *************** *** 301,307 **** else mode=$3 fi ! $Show chmod $mode $2 rc=$? if [ $rc != 0 ] ; then echo "**Error setting mode on file $2**" --- 303,309 ---- else mode=$3 fi ! $Show chmod $mode $dest rc=$? if [ $rc != 0 ] ; then echo "**Error setting mode on file $2**" *************** *** 330,336 **** echo "Install into $prefix" fi ! if [ -d $prefix ] ; then if [ $verbose = 1 ] ; then echo "using existing directory $prefix" ; fi else MkDir $prefix --- 332,338 ---- echo "Install into $prefix" fi ! if [ -d $DESTDIR$prefix ] ; then if [ $verbose = 1 ] ; then echo "using existing directory $prefix" ; fi else MkDir $prefix *************** *** 341,347 **** sbindir=$prefix/sbin datadir=$prefix/share if [ $appendUninstall = 0 ] ; then ! UNINSTALLFILE=${sbindir}/${UNINSTALL_base} fi fi --- 343,349 ---- sbindir=$prefix/sbin datadir=$prefix/share if [ $appendUninstall = 0 ] ; then ! UNINSTALLFILE=$DESTDIR${sbindir}/${UNINSTALL_base} fi fi Index: mpe/viewers/upshot/sbin/install-viewer.in =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpe/viewers/upshot/sbin/install-viewer.in,v retrieving revision 1.2 retrieving revision 1.3 diff -c -r1.2 -r1.3 *** mpe/viewers/upshot/sbin/install-viewer.in 2001/07/13 12:59:29 1.2 --- mpe/viewers/upshot/sbin/install-viewer.in 2003/01/13 17:27:29 1.3 *************** *** 60,66 **** if [ -z "$UNINSTALLFILE" ] ; then INSTALL_base=`basename $0` UNINSTALL_base=`echo $INSTALL_base | sed -e 's/install/uninstall/'` ! UNINSTALLFILE=${sbindir}/${UNINSTALL_base} fi # Update the $prefix if necessary --- 60,66 ---- if [ -z "$UNINSTALLFILE" ] ; then INSTALL_base=`basename $0` UNINSTALL_base=`echo $INSTALL_base | sed -e 's/install/uninstall/'` ! UNINSTALLFILE=$DESTDIR${sbindir}/${UNINSTALL_base} fi # Update the $prefix if necessary *************** *** 132,141 **** else mode=$3 fi ! if [ -d $2 ] ; then ! dest=$2/`basename $1` else ! dest=$2 fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi --- 132,142 ---- else mode=$3 fi ! dest=$DESTDIR$2 ! if [ -d $dest ] ; then ! dest=$dest/`basename $1` else ! dest=$dest fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi *************** *** 198,204 **** set $1 $2 ${3:-$MODE} `pwd` cd $1 for file in * ; do ! if [ -f $file -a ! -f $2/$file ] ; then CopyFileP $file $2/$file $3 fi done --- 199,205 ---- set $1 $2 ${3:-$MODE} `pwd` cd $1 for file in * ; do ! if [ -f $file -a ! -f $DESTDIR$2/$file ] ; then CopyFileP $file $2/$file $3 fi done *************** *** 223,230 **** # Make the given directory. This handles building intermediate directories # as required, and maintains a list of created directories in dirlist. MkDir() { ! if [ ! -d $1 ] ; then ! dir=`echo $1 | sed 's%/% /%g'` path_to_date='' for path in $dir ; do path_to_date="$path_to_date$path" --- 224,231 ---- # Make the given directory. This handles building intermediate directories # as required, and maintains a list of created directories in dirlist. MkDir() { ! if [ ! -d $DESTDIR$1 ] ; then ! dir=`echo $DESTDIR$1 | sed 's%/% /%g'` path_to_date='' for path in $dir ; do path_to_date="$path_to_date$path" *************** *** 266,275 **** # Change the FIRST libpath to the new form. This allows # the LIB_PATH to contain multiple names, as long as the MPICH libpath # is first ! if [ -d $2 ] ; then ! dest=$2/`basename $1` else ! dest=$2 fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi --- 267,277 ---- # Change the FIRST libpath to the new form. This allows # the LIB_PATH to contain multiple names, as long as the MPICH libpath # is first ! dest=$DESTDIR$2 ! if [ -d $dest ] ; then ! dest=$dest/`basename $1` else ! dest=$dest fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi *************** *** 300,306 **** else mode=$3 fi ! $Show chmod $mode $2 rc=$? if [ $rc != 0 ] ; then echo "**Error setting mode on file $2**" --- 302,308 ---- else mode=$3 fi ! $Show chmod $mode $dest rc=$? if [ $rc != 0 ] ; then echo "**Error setting mode on file $2**" Index: mpid/ch_gm/CHANGES =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/ch_gm/CHANGES,v retrieving revision 1.3 retrieving revision 1.4 diff -c -r1.3 -r1.4 *** mpid/ch_gm/CHANGES 2002/09/30 09:21:45 1.3 --- mpid/ch_gm/CHANGES 2003/01/07 15:42:35 1.4 *************** *** 11,16 **** --- 11,18 ---- * Add a protection to prevent the usage of the shared memory device at the same time than blocking or hybrid GM receive mode. Devices are not allowed to block in a multi-devices configuration. + * Fix a bug in the configure script to effectively disable memory registration + to use MPICH-GM on Solaris. * Minor typo corrections. Index: mpid/ch_gm/gmpi.h =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/ch_gm/gmpi.h,v retrieving revision 1.5 retrieving revision 1.6 diff -c -r1.5 -r1.6 *** mpid/ch_gm/gmpi.h 2003/01/03 07:20:55 1.5 --- mpid/ch_gm/gmpi.h 2003/01/07 15:42:35 1.6 *************** *** 7,12 **** --- 7,14 ---- #ifndef _gmpi_h #define _gmpi_h + #include + #include "mpichconf.h" #include "mpich-mpid.h" *************** *** 162,172 **** #define GMPI_DRAIN_GM_INCOMING #if GMPI_DEBUG_ASSERT ! #if defined(gm_always_assert) ! #define gmpi_debug_assert gm_always_assert ! #else ! #define gmpi_debug_assert gm_assert ! #endif #else #define gmpi_debug_assert(a) #endif --- 164,170 ---- #define GMPI_DRAIN_GM_INCOMING #if GMPI_DEBUG_ASSERT ! #define gmpi_debug_assert assert #else #define gmpi_debug_assert(a) #endif Index: mpid/ch_gm/gmpi_noreg.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/ch_gm/gmpi_noreg.c,v retrieving revision 1.2 retrieving revision 1.3 diff -c -r1.2 -r1.3 *** mpid/ch_gm/gmpi_noreg.c 2002/07/29 06:43:32 1.2 --- mpid/ch_gm/gmpi_noreg.c 2003/01/07 15:42:36 1.3 *************** *** 25,30 **** --- 25,31 ---- for (i=0; ilink.posted->list.buffer; if (find_length > pNode->link.posted->list.length) { ! printf("find_length: %d, pNode->link.posted->list.length: %d\n", find_length, pNode->link.posted->list.length); pNode->link.posted->list.length = -1; } else --- 252,258 ---- find_buffer = pNode->link.posted->list.buffer; if (find_length > pNode->link.posted->list.length) { ! printf("MessageQueue:FindNode:Error - find_length: %d, pNode->link.posted->list.length: %d\n", find_length, pNode->link.posted->list.length);fflush(stdout); pNode->link.posted->list.length = -1; } else *************** *** 455,461 **** { if (ret_length == -1) { ! printf("length == -1\n"); return false; } bDeleteNeeded = false; --- 455,461 ---- { if (ret_length == -1) { ! printf("MessageQueue:FillThisBuffer:Error - length == -1\n"); return false; } bDeleteNeeded = false; *************** *** 512,518 **** pID[3] = -1; if (pID[2] == -1) { ! printf("PostBufferForFilling:Buffer too short - %d < %d", length, find_length); fflush(stdout); } --- 512,518 ---- pID[3] = -1; if (pID[2] == -1) { ! printf("MessageQueue:PostBufferForFilling:Buffer too short - %d < %d", length, find_length); fflush(stdout); } Index: mpid/ch_nt/nt_common/ShmemLockedQueue.cpp =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/ch_nt/nt_common/ShmemLockedQueue.cpp,v retrieving revision 1.2 retrieving revision 1.4 diff -c -r1.2 -r1.4 *** mpid/ch_nt/nt_common/ShmemLockedQueue.cpp 2002/12/12 03:59:00 1.2 --- mpid/ch_nt/nt_common/ShmemLockedQueue.cpp 2003/01/09 17:11:01 1.4 *************** *** 2,7 **** --- 2,9 ---- #include #include "lock.h" + #define SHM_Q_INITIALIZED 0x12345678 + // Function name : ShmemLockedQueue::ShmemLockedQueue // Description : // Return type : *************** *** 34,40 **** if (m_hMapping != NULL) { if (m_pBottom != NULL) ! UnmapViewOfFile(m_pBottom); CloseHandle(m_hMapping); } if (m_hMsgAvailableEvent != NULL) --- 36,43 ---- if (m_hMapping != NULL) { if (m_pBottom != NULL) ! //UnmapViewOfFile(m_pBottom); ! UnmapViewOfFile((void*)(((LONG*)m_pBottom) - 1)); // back up over the initialized field to the true beginning CloseHandle(m_hMapping); } if (m_hMsgAvailableEvent != NULL) *************** *** 50,59 **** bool ShmemLockedQueue::Init(char *name, unsigned long size) { bool bFirst = true; m_dwMaxMsgSize = size; ! size = size + sizeof(ShmemLockedQueueHeader) + 5*sizeof(LONG); // Create a mapping from the page file m_hMapping = CreateFileMapping( --- 53,64 ---- bool ShmemLockedQueue::Init(char *name, unsigned long size) { bool bFirst = true; + HANDLE hInitEvent = NULL; + LONG *pInitialized; m_dwMaxMsgSize = size; ! size = size + sizeof(ShmemLockedQueueHeader) + 6*sizeof(LONG); // Create a mapping from the page file m_hMapping = CreateFileMapping( *************** *** 85,97 **** return false; } m_plQMutex = (LONG*)m_pBottom; m_plQEmptyTrigger = &((LONG*)m_pBottom)[1]; m_plMsgAvailableTrigger = &((LONG*)m_pBottom)[2]; ! m_pEnd = (LPBYTE)m_pBottom + size; m_pBase = (LPBYTE)m_pBottom + 3*sizeof(LONG); ! m_dwSize = size; // If this process is creating the mapping, // then set up the head and tail pointers --- 90,109 ---- return false; } + /* NEW Jan 9, 2003 + Added an initialized field before the m_pBottom pointer + This means that m_pBottom must be moved back in the finalize function before it can be released + */ + pInitialized = (LONG*)m_pBottom; + m_pBottom = (void*)(((LONG*)m_pBottom) + 1); + m_plQMutex = (LONG*)m_pBottom; m_plQEmptyTrigger = &((LONG*)m_pBottom)[1]; m_plMsgAvailableTrigger = &((LONG*)m_pBottom)[2]; ! m_pEnd = (LPBYTE)m_pBottom + size - sizeof(LONG); m_pBase = (LPBYTE)m_pBottom + 3*sizeof(LONG); ! m_dwSize = size - sizeof(LONG); // If this process is creating the mapping, // then set up the head and tail pointers *************** *** 120,125 **** --- 132,155 ---- return false; } + if (bFirst) + { + // mark the queue as initialized + *pInitialized = SHM_Q_INITIALIZED; + } + else + { + // wait until the queue is initialized + int retry = 100; + while (*pInitialized != SHM_Q_INITIALIZED && retry) + { + Sleep(200); + retry--; + } + if (*pInitialized != SHM_Q_INITIALIZED) + return false; + } + return true; } *************** *** 333,339 **** if (WaitForSingleObject(m_hMsgAvailableEvent, INFINITE) != WAIT_OBJECT_0) { ! printf("Wait for MsgAvailableEvent failed\n"); return false; } } --- 363,369 ---- if (WaitForSingleObject(m_hMsgAvailableEvent, INFINITE) != WAIT_OBJECT_0) { ! printf("ShmemLockedQueue:RemoveNext:Wait for MsgAvailableEvent on an empty queue failed, error %d\n", GetLastError());fflush(stdout); return false; } } *************** *** 365,371 **** if (WaitForSingleObject(m_hMsgAvailableEvent, INFINITE) != WAIT_OBJECT_0) { ! printf("Wait for MsgAvailableEvent failed\n"); return false; } } --- 395,401 ---- if (WaitForSingleObject(m_hMsgAvailableEvent, INFINITE) != WAIT_OBJECT_0) { ! printf("ShmemLockedQueue:RemoveNext:Wait for MsgAvailableEvent failed, error %d\n", GetLastError());fflush(stdout); return false; } } *************** *** 380,386 **** // Check that the buffer provided is large enough to hold the data if (pMessage->length > *length) { ! printf("length %d > *length %d\n", pMessage->length, *length); unlock(m_plQMutex); return false; } --- 410,416 ---- // Check that the buffer provided is large enough to hold the data if (pMessage->length > *length) { ! printf("ShmemLockedQueue:RemoveNext:shmem message length %d > %d user buffer length\n", pMessage->length, *length); unlock(m_plQMutex); return false; } *************** *** 453,459 **** if (WaitForSingleObject(m_hMsgAvailableEvent, INFINITE) != WAIT_OBJECT_0) { ! printf("Wait for MsgAvailableEvent failed\n"); return false; } } --- 483,489 ---- if (WaitForSingleObject(m_hMsgAvailableEvent, INFINITE) != WAIT_OBJECT_0) { ! printf("ShmemLockedQueue:RemoveNextInsert:Wait for MsgAvailableEvent on an empty queue failed, error %d\n", GetLastError());fflush(stdout); return false; } } *************** *** 485,491 **** if (WaitForSingleObject(m_hMsgAvailableEvent, INFINITE) != WAIT_OBJECT_0) { ! printf("Wait for MsgAvailableEvent failed\n"); return false; } } --- 515,521 ---- if (WaitForSingleObject(m_hMsgAvailableEvent, INFINITE) != WAIT_OBJECT_0) { ! printf("ShmemLockedQueue:RemoveNextInsert:Wait for MsgAvailableEvent failed, error %d\n", GetLastError());fflush(stdout); return false; } } Index: mpid/ch_nt/nt_common/nt_tcp_recv_blocking.cpp =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/ch_nt/nt_common/nt_tcp_recv_blocking.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -c -r1.1 -r1.2 *** mpid/ch_nt/nt_common/nt_tcp_recv_blocking.cpp 2001/12/03 23:17:36 1.1 --- mpid/ch_nt/nt_common/nt_tcp_recv_blocking.cpp 2003/01/08 20:08:42 1.2 *************** *** 42,49 **** if (ret_val != WSA_WAIT_EVENT_0) return ret_val; ! if (WSAEnumNetworkEvents(sock, event, &nevents) == SOCKET_ERROR) ! return WSAGetLastError(); if (nevents.lNetworkEvents & FD_READ) { --- 42,55 ---- if (ret_val != WSA_WAIT_EVENT_0) return ret_val; ! while (true) ! { ! if (WSAEnumNetworkEvents(sock, event, &nevents) == 0) ! break; ! error = WSAGetLastError(); ! if (error != WSAEWOULDBLOCK) ! return error; ! } if (nevents.lNetworkEvents & FD_READ) { *************** *** 110,117 **** if (ret_val != WSA_WAIT_EVENT_0) return ret_val; ! if (WSAEnumNetworkEvents(sock, event, &nevents) == SOCKET_ERROR) ! return WSAGetLastError(); if (nevents.lNetworkEvents & FD_READ) { --- 116,129 ---- if (ret_val != WSA_WAIT_EVENT_0) return ret_val; ! while (true) ! { ! if (WSAEnumNetworkEvents(sock, event, &nevents) == 0) ! break; ! error = WSAGetLastError(); ! if (error != WSAEWOULDBLOCK) ! return error; ! } if (nevents.lNetworkEvents & FD_READ) { Index: mpid/ch_nt/nt_ipvishm/nt_ipvishm_priv.cpp =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/ch_nt/nt_ipvishm/nt_ipvishm_priv.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -c -r1.15 -r1.16 *** mpid/ch_nt/nt_ipvishm/nt_ipvishm_priv.cpp 2002/12/12 03:59:14 1.15 --- mpid/ch_nt/nt_ipvishm/nt_ipvishm_priv.cpp 2003/01/08 20:36:37 1.16 *************** *** 290,308 **** sprintf(pszStr, "dbput name=%s key=port value=%d", dbname, port); if (WriteString(sock, pszStr) == SOCKET_ERROR) { ! printf("ERROR: Unable to write '%s' to socket[%d]\n", pszStr, sock); easy_closesocket(sock); return false; } if (!ReadStringTimeout(sock, pszStr, MPICH_MPD_TIMEOUT)) { ! printf("ERROR: put failed: error %d", WSAGetLastError()); easy_closesocket(sock); return false; } if (strnicmp(pszStr, "DBS_SUCCESS", 11) != 0) { ! printf("ERROR: putting the root port in the mpd database failed.\n%s", pszStr); WriteString(sock, "done"); easy_closesocket(sock); return false; --- 290,308 ---- sprintf(pszStr, "dbput name=%s key=port value=%d", dbname, port); if (WriteString(sock, pszStr) == SOCKET_ERROR) { ! printf("ERROR:PutRootPortInMPDDatabase: Unable to write '%s' to socket[%d]\n", pszStr, sock); easy_closesocket(sock); return false; } if (!ReadStringTimeout(sock, pszStr, MPICH_MPD_TIMEOUT)) { ! printf("ERROR:PutRootPortInMPDDatabase: put failed: error %d", WSAGetLastError()); easy_closesocket(sock); return false; } if (strnicmp(pszStr, "DBS_SUCCESS", 11) != 0) { ! printf("ERROR:PutRootPortInMPDDatabase: putting the root port in the mpd database failed.\n%s", pszStr); WriteString(sock, "done"); easy_closesocket(sock); return false; *************** *** 311,317 **** sprintf(pszStr, "barrier name=%s count=2", barrier_name); if (WriteString(sock, pszStr) == SOCKET_ERROR) { ! printf("ERROR: Unable to write the barrier command: error %d", WSAGetLastError()); easy_closesocket(sock); return false; } --- 311,317 ---- sprintf(pszStr, "barrier name=%s count=2", barrier_name); if (WriteString(sock, pszStr) == SOCKET_ERROR) { ! printf("ERROR:PutRootPortInMPDDatabase: Unable to write the barrier command: error %d", WSAGetLastError()); easy_closesocket(sock); return false; } *************** *** 320,326 **** { if (!ReadStringTimeout(sock, pszStr, MPICH_MPD_TIMEOUT)) { ! printf("ERROR: Unable to read the result of the barrier command: error %d", WSAGetLastError()); easy_closesocket(sock); return false; } --- 320,326 ---- { if (!ReadStringTimeout(sock, pszStr, MPICH_MPD_TIMEOUT)) { ! printf("ERROR:PutRootPortInMPDDatabase: Unable to read the result of the barrier command: error %d", WSAGetLastError()); easy_closesocket(sock); return false; } *************** *** 330,336 **** if (strncmp(pszStr, "INFO", 4)) { // If it is not an 'INFO - ...' message then it is an error ! printf("ERROR: barrier failed:\n%s", pszStr); easy_closesocket(sock); return false; } --- 330,336 ---- if (strncmp(pszStr, "INFO", 4)) { // If it is not an 'INFO - ...' message then it is an error ! printf("ERROR:PutRootPortInMPDDatabase: barrier failed:\n%s", pszStr); easy_closesocket(sock); return false; } *************** *** 389,409 **** sprintf(pszStr, "setMPIFinalized %s", g_pszMPDId); if (WriteString(sock, pszStr) == SOCKET_ERROR) { ! printf("ERROR: Unable to write '%s' to socket[%d]\n", pszStr, sock); fflush(stdout); easy_closesocket(sock); return false; } if (!ReadStringTimeout(sock, pszStr, MPICH_MPD_TIMEOUT)) { ! printf("ERROR: Unable to read the result of the setMPIFinalized command\n"); fflush(stdout); easy_closesocket(sock); return false; } if (stricmp(pszStr, "SUCCESS") != 0) { ! printf("ERROR: setMPIFinalized failed.\n"); fflush(stdout); WriteString(sock, "done"); easy_closesocket(sock); --- 389,409 ---- sprintf(pszStr, "setMPIFinalized %s", g_pszMPDId); if (WriteString(sock, pszStr) == SOCKET_ERROR) { ! printf("ERROR:UpdateMPIFinalized: Unable to write '%s' to socket[%d]\n", pszStr, sock); fflush(stdout); easy_closesocket(sock); return false; } if (!ReadStringTimeout(sock, pszStr, MPICH_MPD_TIMEOUT)) { ! printf("ERROR:UpdateMPIFinalized: Unable to read the result of the setMPIFinalized command\n"); fflush(stdout); easy_closesocket(sock); return false; } if (stricmp(pszStr, "SUCCESS") != 0) { ! printf("ERROR:UpdateMPIFinalized: setMPIFinalized failed.\n"); fflush(stdout); WriteString(sock, "done"); easy_closesocket(sock); Index: mpid/ch_p4/mpirun.ch_p4.in =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/ch_p4/mpirun.ch_p4.in,v retrieving revision 1.19 retrieving revision 1.20 diff -c -r1.19 -r1.20 *** mpid/ch_p4/mpirun.ch_p4.in 2003/01/03 22:35:28 1.19 --- mpid/ch_p4/mpirun.ch_p4.in 2003/01/13 18:50:31 1.20 *************** *** 201,206 **** --- 201,209 ---- # if [ "$debugger" != "" ] ; then if [ -x "$MPIRUN_HOME/mpirun_dbg.$debugger" ] ; then + export nolocal + export machinehead + export stdinfile $MPIRUN_HOME/mpirun_dbg.$debugger -progname $prognamemain -p4pg $p4pgfile_master -p4wd $p4workdir -cmdlineargs "$cmdLineArgs" else echo "Cannot run debugger - no debugger script." Index: mpid/ch_p4/p4/lib/p4_sock_cr.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/ch_p4/p4/lib/p4_sock_cr.c,v retrieving revision 1.25 retrieving revision 1.27 diff -c -r1.25 -r1.27 *** mpid/ch_p4/p4/lib/p4_sock_cr.c 2002/12/04 23:30:57 1.25 --- mpid/ch_p4/p4/lib/p4_sock_cr.c 2003/01/13 17:23:33 1.27 *************** *** 386,392 **** p4_dprintfl(20, "bproc: (pid=%d) child pid is %d\n",getpid(),child_pid); } ! #else /* !BEOWULF */ #if defined(HAS_RSHCOMMAND) strncpy( remote_shell, RSHCOMMAND, P4_MAX_PGM_LEN ); /* Allow the environment variable "P4RSHCOMMAND" to --- 386,392 ---- p4_dprintfl(20, "bproc: (pid=%d) child pid is %d\n",getpid(),child_pid); } ! #else /* !SCYLD_BEOWULF */ #if defined(HAS_RSHCOMMAND) strncpy( remote_shell, RSHCOMMAND, P4_MAX_PGM_LEN ); /* Allow the environment variable "P4RSHCOMMAND" to *************** *** 518,523 **** --- 518,606 ---- /* ENOEXEC - unrecognized executable, ENOENT - file no found */ #else + + { /* Code to pass environment variables for MPICH-G2 (RL) */ + char *p; + p = getenv( "P4_SETS_ALL_ENVVARS" ); + if ( p ) { + /* This code prepends "setenv FOO BAR;setenv FAZZ BAZZ; ..." to + the program name to be rsh'd */ + /* This code needs more stringent attention to string lengths */ + /* ^^^^^^ */ + extern char **environ; + int i, pgm_prefix_len; + # define MAX_PGM_PREFIX_LEN 1024 + char pgm_prefix[MAX_PGM_PREFIX_LEN], *c; + char envvar_buf[256], setenv_buf[256], varname[256], varvalue[1024]; + + p4_dprintfl( 10, "P4_SETS_ALL_ENVVARS is set\n"); + pgm_prefix_len = 0; + for (i = 0; environ[i] != NULL; i++ ) { + p4_dprintfl( 90, "environ[%d]: %s\n", i, environ[i] ); + pgm_prefix_len += strlen(environ[i]); + } + /* prefix will need accumulated length plus room for i + copies of "setenv ;" where i is the number of env vars */ + pgm_prefix_len += i * strlen("setenv ;"); + p4_dprintfl( 90, "prefix needs %d characters\n", pgm_prefix_len); + /* 256 seems to be limit of string passed to rsh through execlp */ + /* + if ( pgm_prefix_len > 256 - strlen(pgm) ) + p4_error( "environment-setting prefix would be too long: ", + pgm_prefix_len); + */ + pgm_prefix[0] = '\0'; + for (i = 0; environ[i] != NULL; i++ ) { + /* separate name from value; add setenv cmd */ + strcpy(envvar_buf, environ[i] ); + c = strtok( envvar_buf, "=" ); /* get varname */ + strcpy( varname, c ); + /* here is where to exclude some env vars */ + if ( strcmp( varname, "P4_SETS_ALL_ENVVARS" ) == 0 ) + continue; + if ( strcmp( varname, "FOO" ) == 0 ) + continue; + if ( strcmp( varname, "PWD" ) == 0 ) + continue; + if ( strcmp( varname, "MACHTYPE" ) == 0 ) + continue; + if ( strcmp( varname, "SHLVL" ) == 0 ) + continue; + if ( strcmp( varname, "SHELL" ) == 0 ) + continue; + if ( strcmp( varname, "OSTYPE" ) == 0 ) + continue; + if ( strcmp( varname, "HOSTTYPE" ) == 0 ) + continue; + if ( strcmp( varname, "TERM" ) == 0 ) + continue; + if ( strcmp( varname, "PATH" ) == 0 ) + continue; + c = strtok( NULL, "\n" ); /* get varvalue */ + if ( c ) + strcpy( varvalue, c ); + else + varvalue[0] = '\0'; + sprintf( setenv_buf, "setenv %s %s;", varname, varvalue); + p4_dprintfl( 90, "setenv_buf = :%s:\n", setenv_buf ); + strcat( pgm_prefix, setenv_buf ); + } + p4_dprintfl( 90, "prefix=:%s:\n", pgm_prefix ); + /* now prepend to pgm if not too long */ + if (strlen(pgm_prefix) + strlen(pgm) >= P4_MAX_PGM_LEN ) + p4_error("prefix too long", 0 ); + else { + strcat(pgm_prefix, pgm); + strcpy(pgm, pgm_prefix); + } + } + /* + p4_dprintf( "pgm argument to remote shell = :%s:\n", pgm ); + p4_dprintf( "length of pgm argument to remote shell = %d\n", + strlen(pgm) ); + */ + } + rc = execlp(remote_shell, remote_shell, host, #if !defined(RSH_HAS_NO_L) Index: mpid/ch_p4/p4/lib/p4_utils.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/ch_p4/p4/lib/p4_utils.c,v retrieving revision 1.41 retrieving revision 1.42 diff -c -r1.41 -r1.42 *** mpid/ch_p4/p4/lib/p4_utils.c 2002/10/10 14:49:46 1.41 --- mpid/ch_p4/p4/lib/p4_utils.c 2003/01/13 17:24:45 1.42 *************** *** 1194,1199 **** --- 1194,1206 ---- /* Construct a die message for remote listener */ if (strcmp(prev_hostname,dest_pi->host_name) != 0 || prev_port != dest_pi->port) { + /* The listener closes the connection after receiving a + message, so we need to get a new connection in order to + send it another message. Thanks to Vincent Newsum + for this fix */ + dest_listener_con_fd = net_conn_to_listener(dest_host,dest_listener,2); + if (dest_listener_con_fd == -1) + continue; msg.type = p4_i_to_n(DIE); msg.from = p4_i_to_n(my_id); p4_dprintfl(40, "zap_remote_p4_processes: sending DIE to %d on fd=%d size=%d\n", Index: mpid/ch_p4mpd/install_ch_p4mpd =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/ch_p4mpd/install_ch_p4mpd,v retrieving revision 1.7 retrieving revision 1.8 diff -c -r1.7 -r1.8 *** mpid/ch_p4mpd/install_ch_p4mpd 2002/01/22 20:58:54 1.7 --- mpid/ch_p4mpd/install_ch_p4mpd 2003/01/13 17:26:02 1.8 *************** *** 10,18 **** fi if [ -f mpid/mpd/Makefile ] ; then export XMODE ! (cd mpid/mpd ; $MAKE install UNINSTALLFILE=$UNINSTALLFILE ) ! rm -f ${bindir}/mpichboot ! cat >${bindir}/mpichboot <$DESTDIR${bindir}/mpichboot <>$UNINSTALLFILE ! rm -f ${bindir}/mpichstop ! cat >${bindir}/mpichstop <>$UNINSTALLFILE else echo "Could not find Makefile for mpid/mpd!" --- 24,37 ---- # calling process. ${bindir}/mpd -b & EOF ! chmod $XMODE $DESTDIR${bindir}/mpichboot echo "rm -f ${bindir}/mpichboot" >>$UNINSTALLFILE ! rm -f $DESTDIR${bindir}/mpichstop ! cat >$DESTDIR${bindir}/mpichstop <>$UNINSTALLFILE else echo "Could not find Makefile for mpid/mpd!" Index: mpid/ch_shmem/shdef.h =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/ch_shmem/shdef.h,v retrieving revision 1.5 retrieving revision 1.6 diff -c -r1.5 -r1.6 *** mpid/ch_shmem/shdef.h 2001/06/22 14:41:09 1.5 --- mpid/ch_shmem/shdef.h 2003/01/09 20:28:23 1.6 *************** *** 31,45 **** #define MPID_MAX_SHMEM 16777216 #else #ifdef PROCESSOR_COUNT ! #if PROCESSOR_COUNT > 32 #define MPID_MAX_PROCS PROCESSOR_COUNT #define MPID_MAX_SHMEM 4194304*(PROCESSOR_COUNT/8) #else ! #define MPID_MAX_PROCS 32 #define MPID_MAX_SHMEM 4194304 ! #endif /* PROCESSOR_COUNT > 32 */ #else ! #define MPID_MAX_PROCS 32 #define MPID_MAX_SHMEM 4194304 #endif /* PROCESSOR_COUNT */ #endif /* MPI_cspp */ --- 31,45 ---- #define MPID_MAX_SHMEM 16777216 #else #ifdef PROCESSOR_COUNT ! #if PROCESSOR_COUNT > 256 #define MPID_MAX_PROCS PROCESSOR_COUNT #define MPID_MAX_SHMEM 4194304*(PROCESSOR_COUNT/8) #else ! #define MPID_MAX_PROCS 256 #define MPID_MAX_SHMEM 4194304 ! #endif /* PROCESSOR_COUNT > 256 */ #else ! #define MPID_MAX_PROCS 256 #define MPID_MAX_SHMEM 4194304 #endif /* PROCESSOR_COUNT */ #endif /* MPI_cspp */ Index: mpid/globus2/comm.h =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/globus2/comm.h,v retrieving revision 1.45 retrieving revision 1.46 diff -c -r1.45 -r1.46 *** mpid/globus2/comm.h 2002/09/13 23:40:21 1.45 --- mpid/globus2/comm.h 2003/01/08 12:41:52 1.46 *************** *** 232,237 **** --- 232,275 ---- RETURNV(MPIR_ERROR(comm,MPI_ERR_ERRHANDLER_CORRUPT,routine_name));}} #endif + /*****************/ + /* START GRIDFTP */ + /*****************/ + + /* + * these overwrite default macros found in mpid/ch2/mpid.h + * any device that overwrites one must overwrite all three. + * + * vvvvvvvvvvvvv from mpid/ch2/mpid.h + * These macros define an interface between the device and the rest of the + * MPI code for attributes. If the device needs to use these, it *must* + * define all 3. + * + * MPID_ATTR_SET(struct MPIR_COMMUNICATOR *comm, int keyval, void *attr_value) + * is called when the user sets an attribute value for any keyval. + * + * MPID_ATTR_GET(struct MPIR_COMMUNICATOR *comm, int keyval, void *attr_value) + * is called when the user gets an attribute value The last argument is a + * pointer to a value, not a pointer to a pointer (store into the storage + * defined by the user, don't change the pointer) + * + * MPID_KEYVAL_INIT() + * The device should also call MPI_Keyval_create() for any keyvals that + * it wishes to be available for users. Otherwise, the keyvals will have + * value MPI_KEYVAL_INVALID. + * ^^^^^^^^^^^^^ from mpid/ch2/mpid.h + */ + + #define MPID_ATTR_SET(a,b,c) MPID_Attr_set((a), (b), (c)); + #define MPID_ATTR_GET(comm_ptr,keyval,attr_value_p) + #define MPID_KEYVAL_INIT() \ + MPI_Keyval_create(MPI_NULL_COPY_FN, \ + MPI_NULL_DELETE_FN, \ + &MPICHX_PARALLELSOCKETS_PARAMETERS, \ + (void *) 0); + /***************/ + /* END GRIDFTP */ + /***************/ /* * Function prototypes Index: mpid/globus2/comm_g.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/globus2/comm_g.c,v retrieving revision 1.25 retrieving revision 1.27 diff -c -r1.25 -r1.27 *** mpid/globus2/comm_g.c 2002/12/16 20:59:09 1.25 --- mpid/globus2/comm_g.c 2003/01/09 11:36:03 1.27 *************** *** 3,8 **** --- 3,14 ---- extern void * VMPI_Internal_Comm; + /* START GRIDFTP */ + extern int MPICHX_PARALLELSOCKETS_PARAMETERS; + + int enable_gridftp(struct MPIR_COMMUNICATOR *comm, void *attr_value); + /* END GRIDFTP */ + #undef DEBUG_FN_NAME #define DEBUG_FN_NAME MPID_Comm_init int MPID_Comm_init( *************** *** 150,156 **** for (i = 0; i < newcomm->np; i++) { int vlrank; - int vgrank; vlrank = newcomm->lrank_to_vlrank[i]; if (vlrank >= 0) --- 156,161 ---- *************** *** 340,348 **** newcomm->vgrank_to_vlrank = NULL; #endif /* VMPI */ ! /* fn_exit: */ if ( rc == MPI_SUCCESS && newcomm ) rc = topology_initialization(newcomm); DEBUG_FN_EXIT(DEBUG_MODULE_COMM); return rc; } --- 345,357 ---- newcomm->vgrank_to_vlrank = NULL; #endif /* VMPI */ ! #ifdef VMPI ! fn_exit: ! #endif /* VMPI */ if ( rc == MPI_SUCCESS && newcomm ) + { rc = topology_initialization(newcomm); + } /* endif */ DEBUG_FN_EXIT(DEBUG_MODULE_COMM); return rc; } *************** *** 377,379 **** --- 386,407 ---- return MPI_SUCCESS; } + /* START GRIDFTP */ + int MPID_Attr_set(struct MPIR_COMMUNICATOR *comm, int keyval, void *attr_value) + { + int rc; + + if (keyval == MPICHX_PARALLELSOCKETS_PARAMETERS) + { + rc = enable_gridftp(comm, attr_value); + } + else + { + /* I don't care about any other attr */ + rc = MPI_SUCCESS; + } /* endif */ + + return rc; + + } /* end MPID_Attr_set() */ + /* END GRIDFTP */ Index: mpid/globus2/datatype_g.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/globus2/datatype_g.c,v retrieving revision 1.9 retrieving revision 1.10 diff -c -r1.9 -r1.10 *** mpid/globus2/datatype_g.c 2002/11/06 21:21:24 1.9 --- mpid/globus2/datatype_g.c 2003/01/09 11:36:04 1.10 *************** *** 50,56 **** dtype_ptr->vmpi_cookie = MPID_DATATYPE_COOKIE; } ! fn_exit: DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("rc=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_TYPES); --- 50,56 ---- dtype_ptr->vmpi_cookie = MPID_DATATYPE_COOKIE; } ! /* fn_exit: */ DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("rc=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_TYPES); *************** *** 90,96 **** mp_type_commit(dtype_ptr->vmpi_type)); } ! fn_exit: DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("rc=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_TYPES); --- 90,96 ---- mp_type_commit(dtype_ptr->vmpi_type)); } ! /* fn_exit: */ DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("rc=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_TYPES); *************** *** 135,141 **** dtype_ptr->vmpi_cookie = 0; ! fn_exit: DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("rc=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_TYPES); --- 135,141 ---- dtype_ptr->vmpi_cookie = 0; ! /* fn_exit: */ DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("rc=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_TYPES); *************** *** 181,187 **** newtype_ptr->vmpi_cookie = MPID_DATATYPE_COOKIE; } ! fn_exit: DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("rc=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_TYPES); --- 181,187 ---- newtype_ptr->vmpi_cookie = MPID_DATATYPE_COOKIE; } ! /* fn_exit: */ DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("rc=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_TYPES); *************** *** 231,237 **** newtype_ptr->vmpi_cookie = MPID_DATATYPE_COOKIE; } ! fn_exit: DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("rc=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_TYPES); --- 231,237 ---- newtype_ptr->vmpi_cookie = MPID_DATATYPE_COOKIE; } ! /* fn_exit: */ DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("rc=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_TYPES); *************** *** 281,287 **** newtype_ptr->vmpi_cookie = MPID_DATATYPE_COOKIE; } ! fn_exit: DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("rc=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_TYPES); --- 281,287 ---- newtype_ptr->vmpi_cookie = MPID_DATATYPE_COOKIE; } ! /* fn_exit: */ DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("rc=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_TYPES); *************** *** 473,479 **** break; } /* end switch */ ! fn_exit: DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("rc=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_TYPES); --- 473,479 ---- break; } /* end switch */ ! /* fn_exit: */ DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("rc=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_TYPES); Index: mpid/globus2/global_c_symb.h =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/globus2/global_c_symb.h,v retrieving revision 1.8 retrieving revision 1.9 diff -c -r1.8 -r1.9 *** mpid/globus2/global_c_symb.h 2002/09/21 18:25:48 1.8 --- mpid/globus2/global_c_symb.h 2003/01/09 13:24:59 1.9 *************** *** 1,18 **** /* This file was automatically generated by the script ! * "rename_symb.sh". Date: Sat Sep 21 13:08:13 CDT 2002 ! * username: lacour ! * host: IRIX64 lemon 6.5 04131233 IP30 * GLOBUS_VERSION="2" ! * GLOBUS_LOCATION="/my/packages/globus/globus-2.0" * CONFIGURE_OPTIONS="--disable-f90 --disable-f90modules --without-mpe --disable-cxx" ! * DEVICE_OPTION="--with-device=globus2:-flavor=vendorcc32mpi" ! * EXTRA_CONFIG_OPT="--with-arch=IRIXN32" ! * ROOT_DIR="/sandbox/lacour/tmp/mpich" * LIBS="lib/libmpichg2.a lib/libpmpichg2.a" * OUTPUT="mpid/globus2/global_c_symb.h" ! * Number of global symbols in new macro def file: 1114 ! * FORMER_OUTPUT="mpid/globus2/global_c_symb.h.old.Sat_Sep_21_13:08:13_CDT_2002" ! * Number of global symbols in former macro def file: 1111 * PREFIX="_mpich_g2_" */ #ifndef GLOBAL_SYMB_RENAMING --- 1,18 ---- /* This file was automatically generated by the script ! * "rename_symb.sh". Date: Thu Jan 9 07:14:12 CST 2003 ! * username: karonis ! * host: Linux wiggum.mcs.anl.gov 2.4.18-w1 #1 SMP Thu May 23 15:08:41 CDT 2002 i686 unknown * GLOBUS_VERSION="2" ! * GLOBUS_LOCATION="/disks/space0/karonis/GlobusBundleMPI/INSTALL" * CONFIGURE_OPTIONS="--disable-f90 --disable-f90modules --without-mpe --disable-cxx" ! * DEVICE_OPTION="--with-device=globus2:-flavor=mpicc32dbg" ! * EXTRA_CONFIG_OPT="" ! * ROOT_DIR="/disks/space0/karonis/mpich-checkout-generate-global_c_symb.h/mpich" * LIBS="lib/libmpichg2.a lib/libpmpichg2.a" * OUTPUT="mpid/globus2/global_c_symb.h" ! * Number of global symbols in new macro def file: 1120 ! * FORMER_OUTPUT="mpid/globus2/global_c_symb.h.old.Thu_Jan_9_07:14:12_CST_2003" ! * Number of global symbols in former macro def file: 1114 * PREFIX="_mpich_g2_" */ #ifndef GLOBAL_SYMB_RENAMING *************** *** 337,348 **** --- 337,350 ---- #define Handle _mpich_g2_Handle #define Headerlen _mpich_g2_Headerlen #define LastTimeILookedAtMyWatch _mpich_g2_LastTimeILookedAtMyWatch + #define MPICHX_PARALLELSOCKETS_PARAMETERS _mpich_g2_MPICHX_PARALLELSOCKETS_PARAMETERS #define MPICHX_QOS_BANDWIDTH _mpich_g2_MPICHX_QOS_BANDWIDTH #define MPICHX_QOS_PARAMETERS _mpich_g2_MPICHX_QOS_PARAMETERS #define MPICHX_TOPOLOGY_COLORS _mpich_g2_MPICHX_TOPOLOGY_COLORS #define MPICHX_TOPOLOGY_DEPTHS _mpich_g2_MPICHX_TOPOLOGY_DEPTHS #define MPID_Abort _mpich_g2_MPID_Abort #define MPID_ArgSqueeze _mpich_g2_MPID_ArgSqueeze + #define MPID_Attr_set _mpich_g2_MPID_Attr_set #define MPID_CH_Wtick _mpich_g2_MPID_CH_Wtick #define MPID_Cancel_print_pkt _mpich_g2_MPID_Cancel_print_pkt #define MPID_Comm_free _mpich_g2_MPID_Comm_free *************** *** 876,881 **** --- 878,884 ---- #define MPI_Wtime _mpich_g2_MPI_Wtime #define MessageQueuesLock _mpich_g2_MessageQueuesLock #define MpiPostedQueue _mpich_g2_MpiPostedQueue + #define MpichG2Space _mpich_g2_MpichG2Space #define MpichGlobus2TcpBufsz _mpich_g2_MpichGlobus2TcpBufsz #define NextMsgIdCtr _mpich_g2_NextMsgIdCtr #define PMPIO_Request_c2f _mpich_g2_PMPIO_Request_c2f *************** *** 1104,1112 **** --- 1107,1118 ---- #define commworld_name_to_rowidx _mpich_g2_commworld_name_to_rowidx #define create_topology_access_keys _mpich_g2_create_topology_access_keys #define destroy_topology_access_keys _mpich_g2_destroy_topology_access_keys + #define enable_gridftp _mpich_g2_enable_gridftp #define enqueue_tcp_send _mpich_g2_enqueue_tcp_send #define extract_complete_from_buff _mpich_g2_extract_complete_from_buff #define extract_data_into_req _mpich_g2_extract_data_into_req + #define g_ftp_monitor_init _mpich_g2_g_ftp_monitor_init + #define g_ftp_monitor_reset _mpich_g2_g_ftp_monitor_reset #define g_malloc_chk_internal _mpich_g2_g_malloc_chk_internal #define get_channel _mpich_g2_get_channel #define get_channel_rowidx _mpich_g2_get_channel_rowidx Index: mpid/globus2/init_g.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/globus2/init_g.c,v retrieving revision 1.71 retrieving revision 1.73 diff -c -r1.71 -r1.73 *** mpid/globus2/init_g.c 2002/12/16 20:59:09 1.71 --- mpid/globus2/init_g.c 2003/01/09 11:36:05 1.73 *************** *** 10,15 **** --- 10,17 ---- /* allow the user to access the underlying topology */ #include "topology_access.h" + extern int MPICHX_PARALLELSOCKETS_PARAMETERS; /* GRIDFTP */ + #include #include #include *************** *** 314,319 **** --- 316,325 ---- #endif destroy_topology_access_keys(); + /* START GRIDFTP */ + if ( MPICHX_PARALLELSOCKETS_PARAMETERS != MPI_KEYVAL_INVALID ) + MPI_Keyval_free(&MPICHX_PARALLELSOCKETS_PARAMETERS); + /* END GRIDFTP */ # if defined(VMPI) { *************** *** 328,334 **** MPID_MyWorldRank)); } /* endif */ ! while (mp = MpiPostedQueue.head) { MpiPostedQueue.head = mp->next; g_free(mp); --- 334,340 ---- MPID_MyWorldRank)); } /* endif */ ! while ((mp = MpiPostedQueue.head) != NULL) { MpiPostedQueue.head = mp->next; g_free(mp); *************** *** 393,398 **** --- 399,405 ---- globus_module_deactivate(GLOBUS_NEXUS_MODULE); globus_module_deactivate(GLOBUS_IO_MODULE); + globus_module_deactivate(GLOBUS_FTP_CONTROL_MODULE); /* GRIDFTP */ globus_module_deactivate(GLOBUS_COMMON_MODULE); /* *************** *** 653,658 **** --- 660,667 ---- tp->cancel_head = tp->cancel_tail = tp->send_head = tp->send_tail = (struct tcpsendreq *) NULL; + tp->recvd_partner_port = GLOBUS_FALSE; /* GRIDFTP */ + tp->use_grid_ftp = GLOBUS_FALSE; /* GRIDFTP */ g_malloc(tp->header, globus_byte_t *, Headerlen); sscanf(cp, "%s %d %d", tp->hostname, &dummy, &lan_id_lng); *************** *** 977,982 **** --- 986,1002 ---- abort(); } /* endif */ + /* START GRIDFTP */ + rc = globus_module_activate(GLOBUS_FTP_CONTROL_MODULE); + if (rc != GLOBUS_SUCCESS) + { + globus_libc_fprintf(stderr, + "globus_init: failed " + "globus_module_activate(GLOBUS_FTP_CONTROL_MODULE)\n"); + abort(); + } /* endif */ + /* END GRIDFTP */ + /* * we have to activate the nexus and disable fault tolerance * because duroc bootstrap uses nexus AND insists on keeping *************** *** 1876,1883 **** for (i = 0; i < MPID_MyWorldSize; i++) { - struct mpi_miproto_t * mpi_miproto; - miproto = CommworldChannels[i].selected_proto; if (i == MPID_MyWorldRank) --- 1896,1901 ---- *************** *** 1909,1916 **** for (i = 0; i < MPID_MyWorldSize; i++) { - struct mpi_miproto_t * mpi_miproto; - miproto = CommworldChannels[i].selected_proto; if (VMPI_GRank_to_VGRank[i] >= 0) --- 1927,1932 ---- Index: mpid/globus2/mpid_defs.h =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/globus2/mpid_defs.h,v retrieving revision 1.7 retrieving revision 1.8 diff -c -r1.7 -r1.8 *** mpid/globus2/mpid_defs.h 2002/09/08 19:18:14 1.7 --- mpid/globus2/mpid_defs.h 2003/01/09 13:28:03 1.8 *************** *** 19,904 **** #define MPICH_RENAMING_MPI_FUNCS #define MPICH_SR_PACKED_INTRINSIC_UNSUPPORTED - /* the following symbols have already been renamed in "global_c_symb.h". - * Avoid a million warnings commenting out all the rest. */ - - /* the following is commented out because these symbols are already - * renamed in "global_c_symb.h". */ - - #if 0 - - #define MPI_Abort MPQ_Abort - #define PMPI_Abort PMPQ_Abort - - #define MPI_Add_error_class MPQ_Add_error_class - #define PMPI_Add_error_class PMPQ_Add_error_class - - #define MPI_Address MPQ_Address - #define PMPI_Address PMPQ_Address - - #define MPI_Allgather MPQ_Allgather - #define PMPI_Allgather PMPQ_Allgather - - #define MPI_Allgatherv MPQ_Allgatherv - #define PMPI_Allgatherv PMPQ_Allgatherv - - #define MPI_Alloc_mem MPQ_Alloc_mem - #define PMPI_Alloc_mem PMPQ_Alloc_mem - - #define MPI_Allreduce MPQ_Allreduce - #define PMPI_Allreduce PMPQ_Allreduce - - #define MPI_Alltoall MPQ_Alltoall - #define PMPI_Alltoall PMPQ_Alltoall - - #define MPI_Alltoallv MPQ_Alltoallv - #define PMPI_Alltoallv PMPQ_Alltoallv - - #define MPI_Attr_delete MPQ_Attr_delete - #define PMPI_Attr_delete PMPQ_Attr_delete - - #define MPI_Attr_get MPQ_Attr_get - #define PMPI_Attr_get PMPQ_Attr_get - - #define MPI_Attr_put MPQ_Attr_put - #define PMPI_Attr_put PMPQ_Attr_put - - #define MPI_Barrier MPQ_Barrier - #define PMPI_Barrier PMPQ_Barrier - - #define MPI_Bcast MPQ_Bcast - #define PMPI_Bcast PMPQ_Bcast - - #define MPI_Bsend MPQ_Bsend - #define PMPI_Bsend PMPQ_Bsend - - #define MPI_Bsend_init MPQ_Bsend_init - #define PMPI_Bsend_init PMPQ_Bsend_init - - #define MPI_Buffer_attach MPQ_Buffer_attach - #define PMPI_Buffer_attach PMPQ_Buffer_attach - - #define MPI_Buffer_detach MPQ_Buffer_detach - #define PMPI_Buffer_detach PMPQ_Buffer_detach - - #define MPI_Cancel MPQ_Cancel - #define PMPI_Cancel PMPQ_Cancel - - #define MPI_Cart_coords MPQ_Cart_coords - #define PMPI_Cart_coords PMPQ_Cart_coords - - #define MPI_Cart_create MPQ_Cart_create - #define PMPI_Cart_create PMPQ_Cart_create - - #define MPI_Cart_get MPQ_Cart_get - #define PMPI_Cart_get PMPQ_Cart_get - - #define MPI_Cart_map MPQ_Cart_map - #define PMPI_Cart_map PMPQ_Cart_map - - #define MPI_Cart_rank MPQ_Cart_rank - #define PMPI_Cart_rank PMPQ_Cart_rank - - #define MPI_Cart_shift MPQ_Cart_shift - #define PMPI_Cart_shift PMPQ_Cart_shift - - #define MPI_Cart_sub MPQ_Cart_sub - #define PMPI_Cart_sub PMPQ_Cart_sub - - #define MPI_Cartdim_get MPQ_Cartdim_get - #define PMPI_Cartdim_get PMPQ_Cartdim_get - - #define MPI_Close_port MPQ_Close_port - #define PMPI_Close_port PMPQ_Close_port - - #define MPI_Comm_call_errhandler MPQ_Comm_call_errhandler - #define PMPI_Comm_call_errhandler PMPQ_Comm_call_errhandler - - #define MPI_Comm_clone MPQ_Comm_clone - #define PMPI_Comm_clone PMPQ_Comm_clone - - #define MPI_Comm_compare MPQ_Comm_compare - #define PMPI_Comm_compare PMPQ_Comm_compare - - #define MPI_Comm_connect MPQ_Comm_connect - #define PMPI_Comm_connect PMPQ_Comm_connect - - #define MPI_Comm_create MPQ_Comm_create - #define PMPI_Comm_create PMPQ_Comm_create - - #define MPI_Comm_create_errhandler MPQ_Comm_create_errhandler - #define PMPI_Comm_create_errhandler PMPQ_Comm_create_errhandler - - #define MPI_Comm_create_keyval MPQ_Comm_create_keyval - #define PMPI_Comm_create_keyval PMPQ_Comm_create_keyval - - #define MPI_Comm_disconnect MPQ_Comm_disconnect - #define PMPI_Comm_disconnect PMPQ_Comm_disconnect - - #define MPI_Comm_dup MPQ_Comm_dup - #define PMPI_Comm_dup PMPQ_Comm_dup - - #define MPI_Comm_free MPQ_Comm_free - #define PMPI_Comm_free PMPQ_Comm_free - - #define MPI_Comm_free_keyval MPQ_Comm_free_keyval - #define PMPI_Comm_free_keyval PMPQ_Comm_free_keyval - - #define MPI_Comm_get_errhandler MPQ_Comm_get_errhandler - #define PMPI_Comm_get_errhandler PMPQ_Comm_get_errhandler - - #define MPI_Comm_get_name MPQ_Comm_get_name - #define PMPI_Comm_get_name PMPQ_Comm_get_name - - #define MPI_Comm_get_parent MPQ_Comm_get_parent - #define PMPI_Comm_get_parent PMPQ_Comm_get_parent - - #define MPI_Comm_group MPQ_Comm_group - #define PMPI_Comm_group PMPQ_Comm_group - - #define MPI_Comm_join MPQ_Comm_join - #define PMPI_Comm_join PMPQ_Comm_join - - #define MPI_Comm_rank MPQ_Comm_rank - #define PMPI_Comm_rank PMPQ_Comm_rank - - #define MPI_Comm_remote_group MPQ_Comm_remote_group - #define PMPI_Comm_remote_group PMPQ_Comm_remote_group - - #define MPI_Comm_remote_size MPQ_Comm_remote_size - #define PMPI_Comm_remote_size PMPQ_Comm_remote_size - - #define MPI_Comm_set_errhandler MPQ_Comm_set_errhandler - #define PMPI_Comm_set_errhandler PMPQ_Comm_set_errhandler - - #define MPI_Comm_set_name MPQ_Comm_set_name - #define PMPI_Comm_set_name PMPQ_Comm_set_name - - #define MPI_Comm_size MPQ_Comm_size - #define PMPI_Comm_size PMPQ_Comm_size - - #define MPI_Comm_spawn MPQ_Comm_spawn - #define PMPI_Comm_spawn PMPQ_Comm_spawn - - #define MPI_Comm_spawn_multiple MPQ_Comm_spawn_multiple - #define PMPI_Comm_spawn_multiple PMPQ_Comm_spawn_multiple - - #define MPI_Comm_split MPQ_Comm_split - #define PMPI_Comm_split PMPQ_Comm_split - - #define MPI_Comm_test_inter MPQ_Comm_test_inter - #define PMPI_Comm_test_inter PMPQ_Comm_test_inter - - #define MPI_DOUBLE_INT_var MPQ_DOUBLE_INT_var - #define PMPI_DOUBLE_INT_var PMPQ_DOUBLE_INT_var - - #define MPI_Dims_create MPQ_Dims_create - #define PMPI_Dims_create PMPQ_Dims_create - - #define MPI_Errhandler_create MPQ_Errhandler_create - #define PMPI_Errhandler_create PMPQ_Errhandler_create - - #define MPI_Errhandler_free MPQ_Errhandler_free - #define PMPI_Errhandler_free PMPQ_Errhandler_free - - #define MPI_Errhandler_get MPQ_Errhandler_get - #define PMPI_Errhandler_get PMPQ_Errhandler_get - - #define MPI_Errhandler_set MPQ_Errhandler_set - #define PMPI_Errhandler_set PMPQ_Errhandler_set - - #define MPI_Error_class MPQ_Error_class - #define PMPI_Error_class PMPQ_Error_class - - #define MPI_Error_string MPQ_Error_string - #define PMPI_Error_string PMPQ_Error_string - - #define MPI_Exscan MPQ_Exscan - #define PMPI_Exscan PMPQ_Exscan - - #define MPI_FLOAT_INT_var MPQ_FLOAT_INT_var - #define PMPI_FLOAT_INT_var PMPQ_FLOAT_INT_var - - #define MPI_File_c2f MPQ_File_c2f - #define PMPI_File_c2f PMPQ_File_c2f - - #define MPI_File_call_errhandler MPQ_File_call_errhandler - #define PMPI_File_call_errhandler PMPQ_File_call_errhandler - - #define MPI_File_close MPQ_File_close - #define PMPI_File_close PMPQ_File_close - - #define MPI_File_create_errhandler MPQ_File_create_errhandler - #define PMPI_File_create_errhandler PMPQ_File_create_errhandler - - #define MPI_File_delete MPQ_File_delete - #define PMPI_File_delete PMPQ_File_delete - - #define MPI_File_f2c MPQ_File_f2c - #define PMPI_File_f2c PMPQ_File_f2c - - #define MPI_File_get_amode MPQ_File_get_amode - #define PMPI_File_get_amode PMPQ_File_get_amode - - #define MPI_File_get_atomicity MPQ_File_get_atomicity - #define PMPI_File_get_atomicity PMPQ_File_get_atomicity - - #define MPI_File_get_byte_offset MPQ_File_get_byte_offset - #define PMPI_File_get_byte_offset PMPQ_File_get_byte_offset - - #define MPI_File_get_errhandler MPQ_File_get_errhandler - #define PMPI_File_get_errhandler PMPQ_File_get_errhandler - - #define MPI_File_get_group MPQ_File_get_group - #define PMPI_File_get_group PMPQ_File_get_group - - #define MPI_File_get_info MPQ_File_get_info - #define PMPI_File_get_info PMPQ_File_get_info - - #define MPI_File_get_position MPQ_File_get_position - #define PMPI_File_get_position PMPQ_File_get_position - - #define MPI_File_get_position_shared MPQ_File_get_position_shared - #define PMPI_File_get_position_shared PMPQ_File_get_position_shared - - #define MPI_File_get_size MPQ_File_get_size - #define PMPI_File_get_size PMPQ_File_get_size - - #define MPI_File_get_type_extent MPQ_File_get_type_extent - #define PMPI_File_get_type_extent PMPQ_File_get_type_extent - - #define MPI_File_get_view MPQ_File_get_view - #define PMPI_File_get_view PMPQ_File_get_view - - #define MPI_File_iread MPQ_File_iread - #define PMPI_File_iread PMPQ_File_iread - - #define MPI_File_iread_at MPQ_File_iread_at - #define PMPI_File_iread_at PMPQ_File_iread_at - - #define MPI_File_iread_shared MPQ_File_iread_shared - #define PMPI_File_iread_shared PMPQ_File_iread_shared - - #define MPI_File_iwrite MPQ_File_iwrite - #define PMPI_File_iwrite PMPQ_File_iwrite - - #define MPI_File_iwrite_at MPQ_File_iwrite_at - #define PMPI_File_iwrite_at PMPQ_File_iwrite_at - - #define MPI_File_iwrite_shared MPQ_File_iwrite_shared - #define PMPI_File_iwrite_shared PMPQ_File_iwrite_shared - - #define MPI_File_open MPQ_File_open - #define PMPI_File_open PMPQ_File_open - - #define MPI_File_preallocate MPQ_File_preallocate - #define PMPI_File_preallocate PMPQ_File_preallocate - - #define MPI_File_read MPQ_File_read - #define PMPI_File_read PMPQ_File_read - - #define MPI_File_read_all MPQ_File_read_all - #define PMPI_File_read_all PMPQ_File_read_all - - #define MPI_File_read_all_begin MPQ_File_read_all_begin - #define PMPI_File_read_all_begin PMPQ_File_read_all_begin - - #define MPI_File_read_all_end MPQ_File_read_all_end - #define PMPI_File_read_all_end PMPQ_File_read_all_end - - #define MPI_File_read_at MPQ_File_read_at - #define PMPI_File_read_at PMPQ_File_read_at - - #define MPI_File_read_at_all MPQ_File_read_at_all - #define PMPI_File_read_at_all PMPQ_File_read_at_all - - #define MPI_File_read_at_all_begin MPQ_File_read_at_all_begin - #define PMPI_File_read_at_all_begin PMPQ_File_read_at_all_begin - - #define MPI_File_read_at_all_end MPQ_File_read_at_all_end - #define PMPI_File_read_at_all_end PMPQ_File_read_at_all_end - - #define MPI_File_read_ordered MPQ_File_read_ordered - #define PMPI_File_read_ordered PMPQ_File_read_ordered - - #define MPI_File_read_ordered_begin MPQ_File_read_ordered_begin - #define PMPI_File_read_ordered_begin PMPQ_File_read_ordered_begin - - #define MPI_File_read_ordered_end MPQ_File_read_ordered_end - #define PMPI_File_read_ordered_end PMPQ_File_read_ordered_end - - #define MPI_File_read_shared MPQ_File_read_shared - #define PMPI_File_read_shared PMPQ_File_read_shared - - #define MPI_File_seek MPQ_File_seek - #define PMPI_File_seek PMPQ_File_seek - - #define MPI_File_seek_shared MPQ_File_seek_shared - #define PMPI_File_seek_shared PMPQ_File_seek_shared - - #define MPI_File_set_atomicity MPQ_File_set_atomicity - #define PMPI_File_set_atomicity PMPQ_File_set_atomicity - - #define MPI_File_set_errhandler MPQ_File_set_errhandler - #define PMPI_File_set_errhandler PMPQ_File_set_errhandler - - #define MPI_File_set_info MPQ_File_set_info - #define PMPI_File_set_info PMPQ_File_set_info - - #define MPI_File_set_size MPQ_File_set_size - #define PMPI_File_set_size PMPQ_File_set_size - - #define MPI_File_set_view MPQ_File_set_view - #define PMPI_File_set_view PMPQ_File_set_view - - #define MPI_File_sync MPQ_File_sync - #define PMPI_File_sync PMPQ_File_sync - - #define MPI_File_write MPQ_File_write - #define PMPI_File_write PMPQ_File_write - - #define MPI_File_write_all MPQ_File_write_all - #define PMPI_File_write_all PMPQ_File_write_all - - #define MPI_File_write_all_begin MPQ_File_write_all_begin - #define PMPI_File_write_all_begin PMPQ_File_write_all_begin - - #define MPI_File_write_all_end MPQ_File_write_all_end - #define PMPI_File_write_all_end PMPQ_File_write_all_end - - #define MPI_File_write_at MPQ_File_write_at - #define PMPI_File_write_at PMPQ_File_write_at - - #define MPI_File_write_at_all MPQ_File_write_at_all - #define PMPI_File_write_at_all PMPQ_File_write_at_all - - #define MPI_File_write_at_all_begin MPQ_File_write_at_all_begin - #define PMPI_File_write_at_all_begin PMPQ_File_write_at_all_begin - - #define MPI_File_write_at_all_end MPQ_File_write_at_all_end - #define PMPI_File_write_at_all_end PMPQ_File_write_at_all_end - - #define MPI_File_write_ordered MPQ_File_write_ordered - #define PMPI_File_write_ordered PMPQ_File_write_ordered - - #define MPI_File_write_ordered_begin MPQ_File_write_ordered_begin - #define PMPI_File_write_ordered_begin PMPQ_File_write_ordered_begin - - #define MPI_File_write_ordered_end MPQ_File_write_ordered_end - #define PMPI_File_write_ordered_end PMPQ_File_write_ordered_end - - #define MPI_File_write_shared MPQ_File_write_shared - #define PMPI_File_write_shared PMPQ_File_write_shared - - #define MPI_Finalize MPQ_Finalize - #define PMPI_Finalize PMPQ_Finalize - - #define MPI_Finalized MPQ_Finalized - #define PMPI_Finalized PMPQ_Finalized - - #define MPI_Free_mem MPQ_Free_mem - #define PMPI_Free_mem PMPQ_Free_mem - - #define MPI_Gather MPQ_Gather - #define PMPI_Gather PMPQ_Gather - - #define MPI_Gatherv MPQ_Gatherv - #define PMPI_Gatherv PMPQ_Gatherv - - #define MPI_Get MPQ_Get - #define PMPI_Get PMPQ_Get - - #define MPI_Get_address MPQ_Get_address - #define PMPI_Get_address PMPQ_Get_address - - #define MPI_Get_count MPQ_Get_count - #define PMPI_Get_count PMPQ_Get_count - - #define MPI_Get_elements MPQ_Get_elements - #define PMPI_Get_elements PMPQ_Get_elements - - #define MPI_Get_processor_name MPQ_Get_processor_name - #define PMPI_Get_processor_name PMPQ_Get_processor_name - - #define MPI_Get_version MPQ_Get_version - #define PMPI_Get_version PMPQ_Get_version - - #define MPI_Graph_create MPQ_Graph_create - #define PMPI_Graph_create PMPQ_Graph_create - - #define MPI_Graph_get MPQ_Graph_get - #define PMPI_Graph_get PMPQ_Graph_get - - #define MPI_Graph_map MPQ_Graph_map - #define PMPI_Graph_map PMPQ_Graph_map - - #define MPI_Graph_neighbors MPQ_Graph_neighbors - #define PMPI_Graph_neighbors PMPQ_Graph_neighbors - - #define MPI_Graph_neighbors_count MPQ_Graph_neighbors_count - #define PMPI_Graph_neighbors_count PMPQ_Graph_neighbors_count - - #define MPI_Graphdims_get MPQ_Graphdims_get - #define PMPI_Graphdims_get PMPQ_Graphdims_get - - #define MPI_Grequest_complete MPQ_Grequest_complete - #define PMPI_Grequest_complete PMPQ_Grequest_complete - - #define MPI_Group_compare MPQ_Group_compare - #define PMPI_Group_compare PMPQ_Group_compare - - #define MPI_Group_difference MPQ_Group_difference - #define PMPI_Group_difference PMPQ_Group_difference - - #define MPI_Group_excl MPQ_Group_excl - #define PMPI_Group_excl PMPQ_Group_excl - - #define MPI_Group_free MPQ_Group_free - #define PMPI_Group_free PMPQ_Group_free - - #define MPI_Group_incl MPQ_Group_incl - #define PMPI_Group_incl PMPQ_Group_incl - - #define MPI_Group_intersection MPQ_Group_intersection - #define PMPI_Group_intersection PMPQ_Group_intersection - - #define MPI_Group_range_excl MPQ_Group_range_excl - #define PMPI_Group_range_excl PMPQ_Group_range_excl - - #define MPI_Group_range_incl MPQ_Group_range_incl - #define PMPI_Group_range_incl PMPQ_Group_range_incl - - #define MPI_Group_rank MPQ_Group_rank - #define PMPI_Group_rank PMPQ_Group_rank - - #define MPI_Group_size MPQ_Group_size - #define PMPI_Group_size PMPQ_Group_size - - #define MPI_Group_translate_ranks MPQ_Group_translate_ranks - #define PMPI_Group_translate_ranks PMPQ_Group_translate_ranks - - #define MPI_Group_union MPQ_Group_union - #define PMPI_Group_union PMPQ_Group_union - - #define MPI_Ibsend MPQ_Ibsend - #define PMPI_Ibsend PMPQ_Ibsend - - #define MPI_Info_c2f MPQ_Info_c2f - #define PMPI_Info_c2f PMPQ_Info_c2f - - #define MPI_Info_create MPQ_Info_create - #define PMPI_Info_create PMPQ_Info_create - - #define MPI_Info_delete MPQ_Info_delete - #define PMPI_Info_delete PMPQ_Info_delete - - #define MPI_Info_dup MPQ_Info_dup - #define PMPI_Info_dup PMPQ_Info_dup - - #define MPI_Info_f2c MPQ_Info_f2c - #define PMPI_Info_f2c PMPQ_Info_f2c - - #define MPI_Info_free MPQ_Info_free - #define PMPI_Info_free PMPQ_Info_free - - #define MPI_Info_get MPQ_Info_get - #define PMPI_Info_get PMPQ_Info_get - - #define MPI_Info_get_nkeys MPQ_Info_get_nkeys - #define PMPI_Info_get_nkeys PMPQ_Info_get_nkeys - - #define MPI_Info_get_nthkey MPQ_Info_get_nthkey - #define PMPI_Info_get_nthkey PMPQ_Info_get_nthkey - - #define MPI_Info_get_valuelen MPQ_Info_get_valuelen - #define PMPI_Info_get_valuelen PMPQ_Info_get_valuelen - - #define MPI_Info_set MPQ_Info_set - #define PMPI_Info_set PMPQ_Info_set - - #define MPI_Init MPQ_Init - #define PMPI_Init PMPQ_Init - - #define MPI_Init_thread MPQ_Init_thread - #define PMPI_Init_thread PMPQ_Init_thread - - #define MPI_Initialized MPQ_Initialized - #define PMPI_Initialized PMPQ_Initialized - - #define MPI_Intercomm_create MPQ_Intercomm_create - #define PMPI_Intercomm_create PMPQ_Intercomm_create - - #define MPI_Intercomm_merge MPQ_Intercomm_merge - #define PMPI_Intercomm_merge PMPQ_Intercomm_merge - - #define MPI_Iprobe MPQ_Iprobe - #define PMPI_Iprobe PMPQ_Iprobe - - #define MPI_Irecv MPQ_Irecv - #define PMPI_Irecv PMPQ_Irecv - - #define MPI_Irsend MPQ_Irsend - #define PMPI_Irsend PMPQ_Irsend - - #define MPI_Isend MPQ_Isend - #define PMPI_Isend PMPQ_Isend - - #define MPI_Issend MPQ_Issend - #define PMPI_Issend PMPQ_Issend - - #define MPI_Keyval_create MPQ_Keyval_create - #define PMPI_Keyval_create PMPQ_Keyval_create - - #define MPI_Keyval_free MPQ_Keyval_free - #define PMPI_Keyval_free PMPQ_Keyval_free - - #define MPI_LONG_INT_var MPQ_LONG_INT_var - #define PMPI_LONG_INT_var PMPQ_LONG_INT_var - - #define MPI_Lookup_name MPQ_Lookup_name - #define PMPI_Lookup_name PMPQ_Lookup_name - - #define MPI_Name_get MPQ_Name_get - #define PMPI_Name_get PMPQ_Name_get - - #define MPI_Name_put MPQ_Name_put - #define PMPI_Name_put PMPQ_Name_put - - #define MPI_Op_create MPQ_Op_create - #define PMPI_Op_create PMPQ_Op_create - - #define MPI_Op_free MPQ_Op_free - #define PMPI_Op_free PMPQ_Op_free - - #define MPI_Open_port MPQ_Open_port - #define PMPI_Open_port PMPQ_Open_port - - #define MPI_Pack MPQ_Pack - #define PMPI_Pack PMPQ_Pack - - #define MPI_Pack_external MPQ_Pack_external - #define PMPI_Pack_external PMPQ_Pack_external - - #define MPI_Pack_size MPQ_Pack_size - #define PMPI_Pack_size PMPQ_Pack_size - - #define MPI_Pcontrol MPQ_Pcontrol - #define PMPI_Pcontrol PMPQ_Pcontrol - - #define MPI_Probe MPQ_Probe - #define PMPI_Probe PMPQ_Probe - - #define MPI_Publish_name MPQ_Publish_name - #define PMPI_Publish_name PMPQ_Publish_name - - #define MPI_Put MPQ_Put - #define PMPI_Put PMPQ_Put - - #define MPI_Query_thread MPQ_Query_thread - #define PMPI_Query_thread PMPQ_Query_thread - - #define MPI_Recv MPQ_Recv - #define PMPI_Recv PMPQ_Recv - - #define MPI_Recv_init MPQ_Recv_init - #define PMPI_Recv_init PMPQ_Recv_init - - #define MPI_Reduce MPQ_Reduce - #define PMPI_Reduce PMPQ_Reduce - - #define MPI_Reduce_scatter MPQ_Reduce_scatter - #define PMPI_Reduce_scatter PMPQ_Reduce_scatter - - #define MPI_Register_datarep MPQ_Register_datarep - #define PMPI_Register_datarep PMPQ_Register_datarep - - #define MPI_Request_c2f MPQ_Request_c2f - #define PMPI_Request_c2f PMPQ_Request_c2f - - #define MPI_Request_free MPQ_Request_free - #define PMPI_Request_free PMPQ_Request_free - - #define MPI_Request_get_status MPQ_Request_get_status - #define PMPI_Request_get_status PMPQ_Request_get_status - - #define MPI_Rsend MPQ_Rsend - #define PMPI_Rsend PMPQ_Rsend - - #define MPI_Rsend_init MPQ_Rsend_init - #define PMPI_Rsend_init PMPQ_Rsend_init - - #define MPI_SHORT_INT_var MPQ_SHORT_INT_var - #define PMPI_SHORT_INT_var PMPQ_SHORT_INT_var - - #define MPI_Scan MPQ_Scan - #define PMPI_Scan PMPQ_Scan - - #define MPI_Scatter MPQ_Scatter - #define PMPI_Scatter PMPQ_Scatter - - #define MPI_Scatterv MPQ_Scatterv - #define PMPI_Scatterv PMPQ_Scatterv - - #define MPI_Send MPQ_Send - #define PMPI_Send PMPQ_Send - - #define MPI_Send_init MPQ_Send_init - #define PMPI_Send_init PMPQ_Send_init - - #define MPI_Sendrecv MPQ_Sendrecv - #define PMPI_Sendrecv PMPQ_Sendrecv - - #define MPI_Sendrecv_replace MPQ_Sendrecv_replace - #define PMPI_Sendrecv_replace PMPQ_Sendrecv_replace - - #define MPI_Sizeof MPQ_Sizeof - #define PMPI_Sizeof PMPQ_Sizeof - - #define MPI_Ssend MPQ_Ssend - #define PMPI_Ssend PMPQ_Ssend - - #define MPI_Ssend_init MPQ_Ssend_init - #define PMPI_Ssend_init PMPQ_Ssend_init - - #define MPI_Start MPQ_Start - #define PMPI_Start PMPQ_Start - - #define MPI_Startall MPQ_Startall - #define PMPI_Startall PMPQ_Startall - - #define MPI_Status_c2f MPQ_Status_c2f - #define PMPI_Status_c2f PMPQ_Status_c2f - - #define MPI_Status_f2c MPQ_Status_f2c - #define PMPI_Status_f2c PMPQ_Status_f2c - - #define MPI_Status_set_cancelled MPQ_Status_set_cancelled - #define PMPI_Status_set_cancelled PMPQ_Status_set_cancelled - - #define MPI_Status_set_elements MPQ_Status_set_elements - #define PMPI_Status_set_elements PMPQ_Status_set_elements - - #define MPI_Test MPQ_Test - #define PMPI_Test PMPQ_Test - - #define MPI_Test_cancelled MPQ_Test_cancelled - #define PMPI_Test_cancelled PMPQ_Test_cancelled - - #define MPI_Testall MPQ_Testall - #define PMPI_Testall PMPQ_Testall - - #define MPI_Testany MPQ_Testany - #define PMPI_Testany PMPQ_Testany - - #define MPI_Testsome MPQ_Testsome - #define PMPI_Testsome PMPQ_Testsome - - #define MPI_Topo_status MPQ_Topo_status - #define PMPI_Topo_status PMPQ_Topo_status - - #define MPI_Topo_test MPQ_Topo_test - #define PMPI_Topo_test PMPQ_Topo_test - - #define MPI_Type_commit MPQ_Type_commit - #define PMPI_Type_commit PMPQ_Type_commit - - #define MPI_Type_contiguous MPQ_Type_contiguous - #define PMPI_Type_contiguous PMPQ_Type_contiguous - - #define MPI_Type_count MPQ_Type_count - #define PMPI_Type_count PMPQ_Type_count - - #define MPI_Type_create_darray MPQ_Type_create_darray - #define PMPI_Type_create_darray PMPQ_Type_create_darray - - #define MPI_Type_create_hindexed MPQ_Type_create_hindexed - #define PMPI_Type_create_hindexed PMPQ_Type_create_hindexed - - #define MPI_Type_create_indexed_block MPQ_Type_create_indexed_block - #define PMPI_Type_create_indexed_block PMPQ_Type_create_indexed_block - - #define MPI_Type_create_keyval MPQ_Type_create_keyval - #define PMPI_Type_create_keyval PMPQ_Type_create_keyval - - #define MPI_Type_create_resized MPQ_Type_create_resized - #define PMPI_Type_create_resized PMPQ_Type_create_resized - - #define MPI_Type_create_struct MPQ_Type_create_struct - #define PMPI_Type_create_struct PMPQ_Type_create_struct - - #define MPI_Type_create_subarray MPQ_Type_create_subarray - #define PMPI_Type_create_subarray PMPQ_Type_create_subarray - - #define MPI_Type_delete_attr MPQ_Type_delete_attr - #define PMPI_Type_delete_attr PMPQ_Type_delete_attr - - #define MPI_Type_dup MPQ_Type_dup - #define PMPI_Type_dup PMPQ_Type_dup - - #define MPI_Type_extent MPQ_Type_extent - #define PMPI_Type_extent PMPQ_Type_extent - - #define MPI_Type_free MPQ_Type_free - #define PMPI_Type_free PMPQ_Type_free - - #define MPI_Type_free_keyval MPQ_Type_free_keyval - #define PMPI_Type_free_keyval PMPQ_Type_free_keyval - - #define MPI_Type_get_cont MPQ_Type_get_cont - #define PMPI_Type_get_cont PMPQ_Type_get_cont - - #define MPI_Type_get_contents MPQ_Type_get_contents - #define PMPI_Type_get_contents PMPQ_Type_get_contents - - #define MPI_Type_get_env MPQ_Type_get_env - #define PMPI_Type_get_env PMPQ_Type_get_env - - #define MPI_Type_get_envelope MPQ_Type_get_envelope - #define PMPI_Type_get_envelope PMPQ_Type_get_envelope - - #define MPI_Type_get_extent MPQ_Type_get_extent - #define PMPI_Type_get_extent PMPQ_Type_get_extent - - #define MPI_Type_get_name MPQ_Type_get_name - #define PMPI_Type_get_name PMPQ_Type_get_name - - #define MPI_Type_get_true_extent MPQ_Type_get_true_extent - #define PMPI_Type_get_true_extent PMPQ_Type_get_true_extent - - #define MPI_Type_hindexed MPQ_Type_hindexed - #define PMPI_Type_hindexed PMPQ_Type_hindexed - - #define MPI_Type_hvector MPQ_Type_hvector - #define PMPI_Type_hvector PMPQ_Type_hvector - - #define MPI_Type_indexed MPQ_Type_indexed - #define PMPI_Type_indexed PMPQ_Type_indexed - - #define MPI_Type_lb MPQ_Type_lb - #define PMPI_Type_lb PMPQ_Type_lb - - #define MPI_Type_match_size MPQ_Type_match_size - #define PMPI_Type_match_size PMPQ_Type_match_size - - #define MPI_Type_set_name MPQ_Type_set_name - #define PMPI_Type_set_name PMPQ_Type_set_name - - #define MPI_Type_size MPQ_Type_size - #define PMPI_Type_size PMPQ_Type_size - - #define MPI_Type_struct MPQ_Type_struct - #define PMPI_Type_struct PMPQ_Type_struct - - #define MPI_Type_ub MPQ_Type_ub - #define PMPI_Type_ub PMPQ_Type_ub - - #define MPI_Type_vector MPQ_Type_vector - #define PMPI_Type_vector PMPQ_Type_vector - - #define MPI_Unpack MPQ_Unpack - #define PMPI_Unpack PMPQ_Unpack - - #define MPI_Unpack_external MPQ_Unpack_external - #define PMPI_Unpack_external PMPQ_Unpack_external - - #define MPI_Unpublish_name MPQ_Unpublish_name - #define PMPI_Unpublish_name PMPQ_Unpublish_name - - #define MPI_Wait MPQ_Wait - #define PMPI_Wait PMPQ_Wait - - #define MPI_Waitall MPQ_Waitall - #define PMPI_Waitall PMPQ_Waitall - - #define MPI_Waitany MPQ_Waitany - #define PMPI_Waitany PMPQ_Waitany - - #define MPI_Waitsome MPQ_Waitsome - #define PMPI_Waitsome PMPQ_Waitsome - - #define MPI_Win_call_errhandler MPQ_Win_call_errhandler - #define PMPI_Win_call_errhandler PMPQ_Win_call_errhandler - - #define MPI_Win_complete MPQ_Win_complete - #define PMPI_Win_complete PMPQ_Win_complete - - #define MPI_Win_create MPQ_Win_create - #define PMPI_Win_create PMPQ_Win_create - - #define MPI_Win_create_errhandler MPQ_Win_create_errhandler - #define PMPI_Win_create_errhandler PMPQ_Win_create_errhandler - - #define MPI_Win_create_keyval MPQ_Win_create_keyval - #define PMPI_Win_create_keyval PMPQ_Win_create_keyval - - #define MPI_Win_fence MPQ_Win_fence - #define PMPI_Win_fence PMPQ_Win_fence - - #define MPI_Win_free MPQ_Win_free - #define PMPI_Win_free PMPQ_Win_free - - #define MPI_Win_free_keyval MPQ_Win_free_keyval - #define PMPI_Win_free_keyval PMPQ_Win_free_keyval - - #define MPI_Win_get_errhandler MPQ_Win_get_errhandler - #define PMPI_Win_get_errhandler PMPQ_Win_get_errhandler - - #define MPI_Win_get_group MPQ_Win_get_group - #define PMPI_Win_get_group PMPQ_Win_get_group - - #define MPI_Win_get_name MPQ_Win_get_name - #define PMPI_Win_get_name PMPQ_Win_get_name - - #define MPI_Win_lock MPQ_Win_lock - #define PMPI_Win_lock PMPQ_Win_lock - - #define MPI_Win_post MPQ_Win_post - #define PMPI_Win_post PMPQ_Win_post - - #define MPI_Win_set_attr MPQ_Win_set_attr - #define PMPI_Win_set_attr PMPQ_Win_set_attr - - #define MPI_Win_set_errhandler MPQ_Win_set_errhandler - #define PMPI_Win_set_errhandler PMPQ_Win_set_errhandler - - #define MPI_Win_set_name MPQ_Win_set_name - #define PMPI_Win_set_name PMPQ_Win_set_name - - #define MPI_Win_start MPQ_Win_start - #define PMPI_Win_start PMPQ_Win_start - - #define MPI_Win_unlock MPQ_Win_unlock - #define PMPI_Win_unlock PMPQ_Win_unlock - - #define MPI_Win_wait MPQ_Win_wait - #define PMPI_Win_wait PMPQ_Win_wait - - #define MPI_Wtick MPQ_Wtick - #define PMPI_Wtick PMPQ_Wtick - - #define MPI_Wtime MPQ_Wtime - #define PMPI_Wtime PMPQ_Wtime - - /**************************/ - /* Begin MPI-2 Extensions */ - /**************************/ - - #define MPI_Open MPQ_Open - #define PMPI_Open PMPQ_Open - - #define MPI_Close MPQ_Close - #define PMPI_Close PMPQ_Close - - #define MPI_Comm_connect MPQ_Comm_connect - #define PMPI_Comm_connect PMPQ_Comm_connect - - #define MPI_Comm_accept MPQ_Comm_accept - #define PMPI_Comm_accept PMPQ_Comm_accept - - /************************/ - /* End MPI-2 Extensions */ - /************************/ - - #endif /* 0 */ - #endif /* !defined(MPID_DEFS_H) */ --- 19,22 ---- Index: mpid/globus2/mpirun.globus2.in =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/globus2/mpirun.globus2.in,v retrieving revision 1.13 retrieving revision 1.14 diff -c -r1.13 -r1.14 *** mpid/globus2/mpirun.globus2.in 2002/08/23 21:57:27 1.13 --- mpid/globus2/mpirun.globus2.in 2003/01/09 16:30:03 1.14 *************** *** 78,84 **** echo " (directory=\"$my_dirname\")" echo " (executable=\"$my_progname\")" else ! echo " (executable=\"\$(GLOBUSRUN_GASS_URL)$my_progname\")" fi echo ")" --- 78,84 ---- echo " (directory=\"$my_dirname\")" echo " (executable=\"$my_progname\")" else ! echo " (executable=\$(GLOBUSRUN_GASS_URL) # \"$my_progname\")" fi echo ")" Index: mpid/globus2/pr_mpi_g.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/globus2/pr_mpi_g.c,v retrieving revision 1.45 retrieving revision 1.46 diff -c -r1.45 -r1.46 *** mpid/globus2/pr_mpi_g.c 2002/11/06 21:21:24 1.45 --- mpid/globus2/pr_mpi_g.c 2003/01/09 11:36:05 1.46 *************** *** 72,78 **** MPI_Errhandler_set(MPI_COMM_WORLD, MPI_ERRORS_RETURN); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 72,78 ---- MPI_Errhandler_set(MPI_COMM_WORLD, MPI_ERRORS_RETURN); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 102,108 **** MPI_Finalize(); } ! fn_exit: DEBUG_FN_EXIT(DEBUG_MODULE_MP); } /* end mp_finalize() */ --- 102,108 ---- MPI_Finalize(); } ! /* fn_exit: */ DEBUG_FN_EXIT(DEBUG_MODULE_MP); } /* end mp_finalize() */ *************** *** 158,164 **** globus_libc_free(buff); ! fn_exit: DEBUG_FN_EXIT(DEBUG_MODULE_MP); } /* end mp_create_miproto() */ --- 158,164 ---- globus_libc_free(buff); ! /* fn_exit: */ DEBUG_FN_EXIT(DEBUG_MODULE_MP); } /* end mp_create_miproto() */ *************** *** 186,192 **** debug_check_mpi_result("MPI_Send()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 186,192 ---- debug_check_mpi_result("MPI_Send()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 218,224 **** debug_check_mpi_result("MPI_Isend()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 218,224 ---- debug_check_mpi_result("MPI_Isend()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 248,254 **** debug_check_mpi_result("MPI_Ssend()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 248,254 ---- debug_check_mpi_result("MPI_Ssend()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 280,286 **** debug_check_mpi_result("MPI_Issend()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 280,286 ---- debug_check_mpi_result("MPI_Issend()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 299,305 **** debug_check_mpi_result("MPI_Cancel()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 299,305 ---- debug_check_mpi_result("MPI_Cancel()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 334,340 **** debug_check_mpi_result("MPI_Recv()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 334,340 ---- debug_check_mpi_result("MPI_Recv()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 354,360 **** debug_check_mpi_result("MPI_Wait()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 354,360 ---- debug_check_mpi_result("MPI_Wait()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 374,380 **** debug_check_mpi_result("MPI_Test_cancelled()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 374,380 ---- debug_check_mpi_result("MPI_Test_cancelled()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 395,401 **** debug_check_mpi_result("MPI_Test()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 395,401 ---- debug_check_mpi_result("MPI_Test()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 420,426 **** debug_check_mpi_result("MPI_Probe()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 420,426 ---- debug_check_mpi_result("MPI_Probe()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 451,457 **** debug_check_mpi_result("MPI_IProbe()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 451,457 ---- debug_check_mpi_result("MPI_IProbe()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 475,481 **** debug_check_mpi_result("MPI_Get_count()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 475,481 ---- debug_check_mpi_result("MPI_Get_count()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 499,505 **** debug_check_mpi_result("MPI_Get_elements()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 499,505 ---- debug_check_mpi_result("MPI_Get_elements()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 517,523 **** rc = ((MPI_Status *) status)->MPI_SOURCE; ! fn_exit: DEBUG_PRINTF(DEBUG_MODULE_MP, DEBUG_INFO_RC, ("source=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_MP); --- 517,523 ---- rc = ((MPI_Status *) status)->MPI_SOURCE; ! /* fn_exit: */ DEBUG_PRINTF(DEBUG_MODULE_MP, DEBUG_INFO_RC, ("source=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_MP); *************** *** 536,542 **** rc = ((MPI_Status *) status)->MPI_TAG; ! fn_exit: DEBUG_PRINTF(DEBUG_MODULE_MP, DEBUG_INFO_RC, ("tag=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_MP); --- 536,542 ---- rc = ((MPI_Status *) status)->MPI_TAG; ! /* fn_exit: */ DEBUG_PRINTF(DEBUG_MODULE_MP, DEBUG_INFO_RC, ("tag=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_MP); *************** *** 555,561 **** rc = mpi_error_to_vmpi_error(((MPI_Status *) status)->MPI_ERROR); ! fn_exit: DEBUG_PRINTF(DEBUG_MODULE_MP, DEBUG_INFO_RC, ("error=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_MP); --- 555,561 ---- rc = mpi_error_to_vmpi_error(((MPI_Status *) status)->MPI_ERROR); ! /* fn_exit: */ DEBUG_PRINTF(DEBUG_MODULE_MP, DEBUG_INFO_RC, ("error=%d\n", rc)); DEBUG_FN_EXIT(DEBUG_MODULE_MP); *************** *** 605,611 **** ("vendor MPI_Comm_split() failed")); } ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_PRINTF(DEBUG_MODULE_MP | DEBUG_MODULE_COMM, DEBUG_INFO_RC, ("rc=%d\n", rc)); --- 605,611 ---- ("vendor MPI_Comm_split() failed")); } ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_PRINTF(DEBUG_MODULE_MP | DEBUG_MODULE_COMM, DEBUG_INFO_RC, ("rc=%d\n", rc)); *************** *** 641,647 **** ("vendor MPI_Comm_dup() failed")); } ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_PRINTF(DEBUG_MODULE_MP | DEBUG_MODULE_COMM, DEBUG_INFO_RC, ("rc=%d\n", rc)); --- 641,647 ---- ("vendor MPI_Comm_dup() failed")); } ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_PRINTF(DEBUG_MODULE_MP | DEBUG_MODULE_COMM, DEBUG_INFO_RC, ("rc=%d\n", rc)); *************** *** 688,694 **** ("vendor MPI_Intercomm_create() failed")); } ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_PRINTF(DEBUG_MODULE_MP | DEBUG_MODULE_COMM, DEBUG_INFO_RC, ("rc=%d\n", rc)); --- 688,694 ---- ("vendor MPI_Intercomm_create() failed")); } ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_PRINTF(DEBUG_MODULE_MP | DEBUG_MODULE_COMM, DEBUG_INFO_RC, ("rc=%d\n", rc)); *************** *** 724,730 **** ("vendor MPI_Intercomm_merge() failed")); } ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_PRINTF(DEBUG_MODULE_MP | DEBUG_MODULE_COMM, DEBUG_INFO_RC, ("rc=%d\n", rc)); --- 724,730 ---- ("vendor MPI_Intercomm_merge() failed")); } ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_PRINTF(DEBUG_MODULE_MP | DEBUG_MODULE_COMM, DEBUG_INFO_RC, ("rc=%d\n", rc)); *************** *** 754,760 **** ("vendor MPI_Comm_free() failed")); } ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_PRINTF(DEBUG_MODULE_MP | DEBUG_MODULE_COMM, DEBUG_INFO_RC, ("rc=%d\n", rc)); --- 754,760 ---- ("vendor MPI_Comm_free() failed")); } ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_PRINTF(DEBUG_MODULE_MP | DEBUG_MODULE_COMM, DEBUG_INFO_RC, ("rc=%d\n", rc)); *************** *** 776,782 **** debug_check_mpi_result("MPI_Request_free()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 776,782 ---- debug_check_mpi_result("MPI_Request_free()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 919,925 **** break; } /* end switch */ ! fn_exit: *((MPI_Datatype *) mpi_type) = rc; DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("mpi_type=%d\n", rc)); --- 919,925 ---- break; } /* end switch */ ! /* fn_exit: */ *((MPI_Datatype *) mpi_type) = rc; DEBUG_PRINTF(DEBUG_MODULE_TYPES, DEBUG_INFO_RC, ("mpi_type=%d\n", rc)); *************** *** 1041,1047 **** debug_check_mpi_result("MPI_bootstrap_Bcast()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 1041,1047 ---- debug_check_mpi_result("MPI_bootstrap_Bcast()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 1068,1074 **** debug_check_mpi_result("MPI_bootstrap_Gather()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 1068,1074 ---- debug_check_mpi_result("MPI_bootstrap_Gather()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; *************** *** 1100,1106 **** debug_check_mpi_result("MPI_bootstrap_Gatherv()", rc); ! fn_exit: rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; --- 1100,1106 ---- debug_check_mpi_result("MPI_bootstrap_Gatherv()", rc); ! /* fn_exit: */ rc = mpi_error_to_vmpi_error(rc); DEBUG_FN_EXIT(DEBUG_MODULE_MP); return rc; Index: mpid/globus2/pr_tcp_g.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/globus2/pr_tcp_g.c,v retrieving revision 1.56 retrieving revision 1.57 diff -c -r1.56 -r1.57 *** mpid/globus2/pr_tcp_g.c 2002/12/16 20:59:10 1.56 --- mpid/globus2/pr_tcp_g.c 2003/01/08 12:41:52 1.57 *************** *** 1,3 **** --- 1,4 ---- + #include "mpid.h" /* GRIDFTP */ #include "globdev.h" #include "reqalloc.h" #include "queue.h" /* for queue traversal stuff in cancelling message */ *************** *** 15,20 **** --- 16,22 ---- extern globus_size_t Headerlen; int MpichGlobus2TcpBufsz = 0; extern struct commworldchannels *CommWorldChannelsTable; + int MPICHX_PARALLELSOCKETS_PARAMETERS = MPI_KEYVAL_INVALID; /* GRIDFTP */ static void data_arrived(struct tcp_rw_handle_t *rwhp); static void send_cancel_result_over_tcp(char *msgid_src_commworld_id, *************** *** 27,33 **** --- 29,62 ---- unsigned long msgid_ctr); static globus_bool_t i_establish_socket(int dest_grank); + /*****************/ + /* START GRIDFTP */ + /*****************/ + static void gridftp_connect_read_callback(void *callback_arg, + struct globus_ftp_control_handle_s *handle, + unsigned int stripe_ndx, + globus_bool_t resuse, + globus_object_t *error); + static void gridftp_read_all_callback(void * callback_arg, + globus_ftp_control_handle_t *handle, + globus_object_t *error, + globus_byte_t *buffer, + globus_size_t length, + globus_off_t offset, + globus_bool_t eof); + void g_ftp_monitor_init(g_ftp_perf_monitor_t *monitor); + void g_ftp_monitor_reset(g_ftp_perf_monitor_t *monitor); + static void test_result(globus_result_t res, char *msg, int line_no); + static void setup_ftp_handle(globus_ftp_control_handle_t *ftp_handle, + struct gridftp_params *gfp); + static int enable_gridftp_internal(struct gridftp_params *gfp, + int partner_grank); + int enable_gridftp(struct MPIR_COMMUNICATOR *comm, void *attr_value); + /***************/ + /* END GRIDFTP */ + /***************/ + /**********************/ /* Callback functions */ /**********************/ *************** *** 396,401 **** --- 425,435 ---- * cancel_success_flag, * msgid_src_commworld_id,msgid_src_commworld_displ, * msgid_sec,msgid_usec,msgid_ctr,liba + * + * START GRIDFTP + * OR + * type==gridftp_port, partner_grank, gridftp_port + * END GRIDFTP */ globus_dc_get_int(&cp, &type, 1, (int) (rwhp->remote_format)); *************** *** 462,479 **** if (rwhp->dataorigin_bufflen) { g_malloc(rwhp->incoming_raw_data, globus_byte_t *, rwhp->dataorigin_bufflen); ! rwhp->state = await_data; ! globus_io_register_read(&(rwhp->handle), rwhp->incoming_raw_data, /* data will sit */ /* here when callback is envoked */ rwhp->dataorigin_bufflen, /* max nbytes */ rwhp->dataorigin_bufflen, /* wait for nbytes */ read_callback, (void *) rwhp); /* optional callback arg */ } else { --- 496,603 ---- if (rwhp->dataorigin_bufflen) { + struct channel_t *chp; /* GRIDFTP */ + struct tcp_miproto_t *tp; /* GRIDFTP */ + int proto; /* GRIDFTP */ + g_malloc(rwhp->incoming_raw_data, globus_byte_t *, rwhp->dataorigin_bufflen); + /* START GRIDFTP */ + /*********************************************/ + /* figuring out if this channel uses gridFTP */ + /*********************************************/ + + /* NICK: have to check whether the grank used */ + /* here assumes all comm=MPI_COMM_WORLD */ + if (!(chp = get_channel(rwhp->msg_id_src_grank))) + { + globus_libc_fprintf(stderr, + "ERROR: read_callback: await_header: " + "user_data: proc %d: failed get_channel " + "rwhp->msg_id_src_grank %d\n", + MPID_MyWorldRank, rwhp->msg_id_src_grank); + print_channels(); + exit(-1); + } + else if (!(chp->selected_proto)) + { + globus_libc_fprintf(stderr, + "ERROR: read_callback: await_header: " + "user_data: proc %d does not have selected " + "proto for rwhp->msg_id_src_grank %d\n", + MPID_MyWorldRank, rwhp->msg_id_src_grank); + print_channels(); + exit(-1); + } + else if ((proto = (chp->selected_proto)->type) != tcp) + { + globus_libc_fprintf(stderr, + "ERROR: read_callback: await_header: " + "user_data: proc %d selected proto is not " + "TCP proto for rwhp->msg_id_src_grank %d\n", + MPID_MyWorldRank, rwhp->msg_id_src_grank); + print_channels(); + exit(-1); + } /* endif */ + tp = (chp->selected_proto)->info; + if (tp->use_grid_ftp) + { + g_ftp_user_args_t ua; + globus_result_t res; + + g_ftp_monitor_reset(&(tp->read_monitor)); + + ua.monitor = &(tp->read_monitor); + ua.ftp_handle_r = &(tp->ftp_handle_r); + ua.buffer = rwhp->incoming_raw_data; + ua.nbytes = rwhp->dataorigin_bufflen; + + /* this can be used over and over again */ + + res = globus_ftp_control_data_connect_read( + ua.ftp_handle_r, + gridftp_connect_read_callback, + (void *) &ua); + if (res != GLOBUS_SUCCESS) + { + globus_libc_fprintf(stderr, + "ERROR: read_callback: await_header: " + "user_data: proc %d failed " + "globus_ftp_control_data_connect_read" + "to rwhp->msg_id_src_grank %d\n", + MPID_MyWorldRank, rwhp->msg_id_src_grank); + exit(-1); + } /* endif */ ! while(!(tp->read_monitor.done)) ! { ! G2_WAIT ! } /* endwhile */ ! ! data_arrived(rwhp); ! /* transition to 'await_header' state */ ! rwhp->state = await_header; ! globus_io_register_read(&(rwhp->handle), ! rwhp->incoming_header, /* data will sit */ ! /* here when callback is envoked */ ! rwhp->incoming_header_len, /* max nbytes */ ! rwhp->incoming_header_len, /* wait for nbytes */ ! read_callback, ! (void *) rwhp); /* optional callback arg */ ! } ! else ! { ! /* END GRIDFTP */ ! rwhp->state = await_data; ! globus_io_register_read(&(rwhp->handle), rwhp->incoming_raw_data, /* data will sit */ /* here when callback is envoked */ rwhp->dataorigin_bufflen, /* max nbytes */ rwhp->dataorigin_bufflen, /* wait for nbytes */ read_callback, (void *) rwhp); /* optional callback arg */ + } /* endif GRIDFTP */ } else { *************** *** 724,729 **** --- 848,918 ---- read_callback, (void *) rwhp); /* optional callback arg */ } + else if (type == gridftp_port) + { + /* assumes that partner_grank w.r.t. comm=MPI_COMM_WORLD */ + struct channel_t *chp; + struct tcp_miproto_t *tp; + int proto; + int partner_grank; + int gridftp_port; + + /* unpacking rest of header: partner_grank, gridftp_port */ + globus_dc_get_int(&cp, &partner_grank, 1, + (int) (rwhp->remote_format)); + globus_dc_get_int(&cp, &gridftp_port, 1, + (int) (rwhp->remote_format)); + + /* fprintf(stderr, "NICK: %d: read_callback: await_header: gridftp_port: partner_grank %d\n", MPID_MyWorldRank, partner_grank); */ + /***************************************/ + /* validating partner_grank proto==TCP */ + /***************************************/ + + if (!(chp = get_channel(partner_grank))) + { + globus_libc_fprintf(stderr, + "ERROR: read_callback: await_header: gridftp_port: " + "proc %d: failed get_channel partner_grank %d\n", + MPID_MyWorldRank, partner_grank); + print_channels(); + exit(-1); + } + else if (!(chp->selected_proto)) + { + globus_libc_fprintf(stderr, + "ERROR: read_callback: await_header: gridftp_port: " + "proc %d does not have selected proto for " + "partner_grank %d\n", + MPID_MyWorldRank, partner_grank); + print_channels(); + exit(-1); + } + else if ((proto = (chp->selected_proto)->type) != tcp) + { + globus_libc_fprintf(stderr, + "ERROR: read_callback: await_header: gridftp_port: " + "proc %d selected proto is not " + "TCP proto for partner_grank %d\n", + MPID_MyWorldRank, partner_grank); + print_channels(); + exit(-1); + } /* endif */ + + tp = (chp->selected_proto)->info; + + tp->partner_port = gridftp_port; + tp->recvd_partner_port = GLOBUS_TRUE; + + /* transition back to same state, 'await_header' */ + rwhp->state = await_header; + globus_io_register_read(&(rwhp->handle), + rwhp->incoming_header, /* data will sit */ + /* here when callback is envoked */ + rwhp->incoming_header_len, /* max nbytes */ + rwhp->incoming_header_len, /* wait for nbytes */ + read_callback, + (void *) rwhp); /* optional callback arg */ + } else { char err[1024]; *************** *** 1473,1475 **** --- 1662,2029 ---- } /* end setting i_establish_socket() */ + /*****************/ + /* START GRIDFTP */ + /*****************/ + + static void test_result(globus_result_t res, char *msg, int line_no) + { + + if(res != GLOBUS_SUCCESS) + { + printf("error:%s at line %d\n", + globus_object_printable_to_string(globus_error_get(res)), + line_no); + printf("%s\n", msg); + assert(GLOBUS_FALSE); + } /* endif */ + + } /* end test_result() */ + + static void setup_ftp_handle(globus_ftp_control_handle_t *ftp_handle, + struct gridftp_params *gfp) + { + globus_result_t res; + globus_ftp_control_tcpbuffer_t tcp_buffer; + globus_ftp_control_parallelism_t parallelism; + + /* + * set transfer type + */ + res = globus_ftp_control_handle_init(ftp_handle); + test_result(res, "setup_ftp_handle:handle_init", __LINE__); + /* NICK: put into binary mode */ + res = globus_ftp_control_local_type(ftp_handle, + GLOBUS_FTP_CONTROL_TYPE_IMAGE, + 0); + test_result(res, "setup_ftp_handle:local_type", __LINE__); + + /* + * set transfer mode + */ + /* NICK: data channel mode of ftp */ + res = globus_ftp_control_local_mode(ftp_handle, + GLOBUS_FTP_CONTROL_MODE_EXTENDED_BLOCK); + test_result(res, "setup_ftp_handle:local_mode", __LINE__); + + /* + * set parallel level + */ + /* NICK: i tell you that level of parallelism is fixed */ + parallelism.mode = GLOBUS_FTP_CONTROL_PARALLELISM_FIXED; + parallelism.fixed.size = gfp->nsocket_pairs; + res = globus_ftp_control_local_parallelism(ftp_handle, ¶llelism); + test_result(res, "setup_ftp_handle:local_parallelism", __LINE__); + + /* + * set tcp buffer size + */ + /* NICK: using cmd line arg to be set window size */ + tcp_buffer.mode = GLOBUS_FTP_CONTROL_TCPBUFFER_FIXED; + tcp_buffer.fixed.size = gfp->tcp_buffsize; + res = globus_ftp_control_local_tcp_buffer(ftp_handle, &tcp_buffer); + test_result(res, "setup_ftp_handle:tcp buffer", __LINE__); + + } /* end setup_ftp_handle() */ + + static int enable_gridftp_internal(struct gridftp_params *gfp, + int partner_grank) + { + int proto; + struct channel_t *cp; + struct tcp_miproto_t *tp; + globus_result_t res; + struct tcpsendreq *sr; + globus_ftp_control_host_port_t host_port_read; + globus_ftp_control_host_port_t host_port_write; + + /* fprintf(stderr, "NICK: %d: enter enable_gridftp_internal(): partner_grank %d\n", MPID_MyWorldRank, partner_grank); */ + + /***************************************/ + /* validating partner_grank proto==TCP */ + /***************************************/ + + if (!(cp = get_channel(partner_grank))) + { + globus_libc_fprintf(stderr, + "ERROR: enable_gridftp_internal: proc %d: failed get_channel " + "grank %d\n", + MPID_MyWorldRank, partner_grank); + print_channels(); + exit(-1); + } + else if (!(cp->selected_proto)) + { + globus_libc_fprintf(stderr, + "ERROR: enable_gridftp_internal: proc %d does not have " + "selected proto for dest %d\n", + MPID_MyWorldRank, partner_grank); + print_channels(); + exit(-1); + } + else if ((proto = (cp->selected_proto)->type) != tcp) + { + globus_libc_fprintf(stderr, + "ERROR: enable_gridftp_internal: proc %d selected proto " + "is not TCP proto for dest %d\n", + MPID_MyWorldRank, partner_grank); + print_channels(); + exit(-1); + } /* endif */ + + tp = (cp->selected_proto)->info; + + if (tp->use_grid_ftp) + { + globus_libc_fprintf(stderr, + "ERROR: enable_gridftp_internal: proc %d: partner_grank %d: " + " tp->use_grid_ftp is already TRUE\n", + MPID_MyWorldRank, partner_grank); + print_channels(); + MPID_Abort(NULL, 0, "MPICH-G2 (internal error)", "mpi_put_attr()"); + } + else if (!(tp->whandle)) + { + /* should only have to be done once */ + /* fprintf(stderr, "NICK: %d: enable_gridftp_internal(): partner_grank %d: before prime_the_line\n", MPID_MyWorldRank, partner_grank); */ + prime_the_line(tp, partner_grank); + /* fprintf(stderr, "NICK: %d: enable_gridftp_internal(): partner_grank %d: after prime_the_line\n", MPID_MyWorldRank, partner_grank); */ + + if (!(tp->whandle)) + { + globus_libc_fprintf(stderr, + "ERROR: enable_gridftp_internal: proc %d: partner_grank %d: " + " after call to prime_the_line tp->whandle is still NULL\n", + MPID_MyWorldRank, partner_grank); + print_channels(); + MPID_Abort(NULL, 0, "MPICH-G2 (internal error)", "mpi_put_attr()"); + } /* endif */ + } /* endif */ + /* fprintf(stderr, "NICK: %d: enable_gridftp_internal(): partner_grank %d: we know line is primed\n", MPID_MyWorldRank, partner_grank); */ + + /*******************************/ + /* setting up parallel sockets */ + /*******************************/ + + setup_ftp_handle(&(tp->ftp_handle_r), gfp); + setup_ftp_handle(&(tp->ftp_handle_w), gfp); + + /* START NEWGRIDFTP */ + /* tp->max_outstanding_writes = gfp->max_outstanding_writes; */ + tp->gftp_tcp_buffsize = gfp->tcp_buffsize; + /* END NEWGRIDFTP */ + + /*************/ + /* handshake */ + /*************/ + + if (i_establish_socket(partner_grank)) + { + /* fprintf(stderr, "NICK: %d: enable_gridftp_internal(): partner_grank %d: handshake: i_estab_sock = TRUE\n", MPID_MyWorldRank, partner_grank); */ + /* set up a listener for the reader */ + res = globus_io_tcp_get_local_address(tp->whandle, + host_port_read.host, + &host_port_read.port); + test_result(res, "enable_gridftp_internal", __LINE__); + host_port_read.port = 0; + res = globus_ftp_control_local_pasv(&(tp->ftp_handle_r), + &host_port_read); + test_result(res, "enable_gridftp_internal", __LINE__); + + /* send port number on control channel */ + /* packing header: type=gridftp_port,MPID_MyWorldRank,port */ + g_malloc(sr, struct tcpsendreq *, sizeof(struct tcpsendreq)); + sr->type = gridftp_port; + sr->dest_grank = partner_grank; + sr->gridftp_partner_grank = MPID_MyWorldRank; + sr->gridftp_port = (int) host_port_read.port; + enqueue_tcp_send(sr); + /* fprintf(stderr, "NICK: %d: enable_gridftp_internal(): handshake: i_estab_sock = TRUE: after enqueue_tcp_send\n", MPID_MyWorldRank); */ + + /* wait for other side's port to arrive */ + TcpOutstandingRecvReqs ++; + + /* fprintf(stderr, "NICK: %d: enable_gridftp_internal(): handshake: i_estab_sock = TRUE: TcpOutstandingRecvReqs %d: before tp->recvd_partner_port loop\n", MPID_MyWorldRank, TcpOutstandingRecvReqs); */ + while (tp->recvd_partner_port == GLOBUS_FALSE) + { + /* give all protos that are waiting for something a nudge */ + MPID_DeviceCheck(MPID_NOTBLOCKING); + } /* endwhile */ + /* fprintf(stderr, "NICK: %d: enable_gridftp_internal(): handshake: i_estab_sock = TRUE: after tp->recvd_partner_port loop\n", MPID_MyWorldRank); */ + + /* + * I got the TCP message that I was waiting for so + * I decrement TcpOutstandingRecvReqs here. + * originally I was decrementing TcpOutstandingRecvReqs in + * the read_callback state machine when the message + * arrived, but that led to a race condition where + * if multiple grid_port messages came in _before_ + * there were actual requests for them (e.g., many other + * sides were requesting parallel sockets before I got + * around to calling this function) then the TcpOutstandingRecvReqs + * was being decremented far below zero, and as a undesired + * result of that, MPID_DeviceCheck would not poll TCP. + */ + TcpOutstandingRecvReqs --; + /* fprintf(stderr, "NICK: %d: enable_gridftp_internal(): handshake: i_estab_sock = TRUE: after decrementing TcpOutstandingsRecvReqs to %d\n", MPID_MyWorldRank, TcpOutstandingRecvReqs); */ + + /* + * since ftp handle will be listening on same IP as the control + * socket we may just get the IP address from this socket. + */ + res = globus_io_tcp_get_remote_address(tp->whandle, + host_port_write.host, + &host_port_write.port); + test_result(res, "enable_gridftp_internal", __LINE__); + host_port_write.port = tp->partner_port; + + /* tell ftp_control the ip:port of the reader */ + res = globus_ftp_control_local_port(&(tp->ftp_handle_w), + &host_port_write); + test_result(res, "enable_gridftp_internal", __LINE__); + } + else + { + /* fprintf(stderr, "NICK: %d: enable_gridftp_internal(): partner_grank %d: handshake: i_estab_sock = FALSE\n", MPID_MyWorldRank, partner_grank); */ + + /* set up a listener for the reader */ + res = globus_io_tcp_get_local_address(tp->whandle, + host_port_read.host, + &host_port_read.port); + test_result(res, "enable_gridftp_internal", __LINE__); + host_port_read.port = 0; + res = globus_ftp_control_local_pasv(&(tp->ftp_handle_r), + &host_port_read); + test_result(res, "enable_gridftp_internal", __LINE__); + + /* wait for other side's port to arrive */ + TcpOutstandingRecvReqs ++; + + /* fprintf(stderr, "NICK: %d: enable_gridftp_internal(): handshake: i_estab_sock = FALSE: before waitloop\n", MPID_MyWorldRank); */ + while (tp->recvd_partner_port == GLOBUS_FALSE) + { + /* give all protos that are waiting for something a nudge */ + MPID_DeviceCheck(MPID_NOTBLOCKING); + } /* endwhile */ + /* fprintf(stderr, "NICK: %d: enable_gridftp_internal(): handshake: i_estab_sock = FALSE: after waitloop\n", MPID_MyWorldRank); */ + + /* + * I got the TCP message that I was waiting for so + * I decrement TcpOutstandingRecvReqs here. + * originally I was decrementing TcpOutstandingRecvReqs in + * the read_callback state machine when the message + * arrived, but that led to a race condition where + * if multiple grid_port messages came in _before_ + * there were actual requests for them (e.g., many other + * sides were requesting parallel sockets before I got + * around to calling this function) then the TcpOutstandingRecvReqs + * was being decremented far below zero, and as a undesired + * result of that, MPID_DeviceCheck would not poll TCP. + */ + TcpOutstandingRecvReqs --; + /* fprintf(stderr, "NICK: %d: enable_gridftp_internal(): handshake: i_estab_sock = FALSE: after decrementing TcpOutstandingsRecvReqs to %d\n", MPID_MyWorldRank, TcpOutstandingRecvReqs); */ + + /* since ftp handle will be listening on same IP as the control + * socket we may just get the IP address from this socket. + */ + res = globus_io_tcp_get_remote_address(tp->whandle, + host_port_write.host, + &host_port_write.port); + test_result(res, "enable_gridftp_internal", __LINE__); + host_port_write.port = tp->partner_port; + + /* tell ftp_control the ip:port of the reader */ + res = globus_ftp_control_local_port(&(tp->ftp_handle_w), + &host_port_write); + test_result(res, "enable_gridftp_internal", __LINE__); + + /* packing header: type=gridftp_pong,MPID_MyWorldRank,port */ + g_malloc(sr, struct tcpsendreq *, sizeof(struct tcpsendreq)); + sr->type = gridftp_port; + sr->dest_grank = partner_grank; + sr->gridftp_partner_grank = MPID_MyWorldRank; + sr->gridftp_port = (int) host_port_read.port; + enqueue_tcp_send(sr); + + } /* endif */ + + tp->use_grid_ftp = GLOBUS_TRUE; + g_ftp_monitor_init(&(tp->read_monitor)); + g_ftp_monitor_init(&(tp->write_monitor)); + + /* fprintf(stderr, "NICK: %d: exit enable_gridftp_internal(): partner_grank %d\n", MPID_MyWorldRank, partner_grank); */ + + return MPI_SUCCESS; + + } /* end enable_gridftp_internal() */ + + int enable_gridftp(struct MPIR_COMMUNICATOR *comm, void *attr_value) + { + struct gridftp_params *gfp = (struct gridftp_params *) attr_value; + int rc; + + if (gfp->partner_rank >= 0 && gfp->partner_rank < comm->np) + { + rc = enable_gridftp_internal(gfp, + comm->lrank_to_grank[gfp->partner_rank]); + } + else + { + /* globus_libc_fprintf(stderr, */ + printf( + "ERROR: MPICH-G2: enable_gridftp: MPI_COMM_WORLD rank %d: " + "specified partner rank %d for communicator with size %d\n", + MPID_MyWorldRank, gfp->partner_rank, comm->np); + rc = MPI_ERR_INTERN; + } /* endif */ + + return rc; + + } /* end enable_gridftp() */ + + static void gridftp_connect_read_callback(void *callback_arg, + struct globus_ftp_control_handle_s *handle, + unsigned int stripe_ndx, + globus_bool_t resuse, + globus_object_t *error) + { + g_ftp_user_args_t *ua = (g_ftp_user_args_t *) callback_arg; + globus_result_t res; + + res = globus_ftp_control_data_read_all(ua->ftp_handle_r, + ua->buffer, + ua->nbytes, + gridftp_read_all_callback, + (void *) ua->monitor); + test_result(res, "pr_tcp_g.c:gridftp_connect_read_callback", __LINE__); + + } /* end gridftp_connect_read_callback() */ + + static void gridftp_read_all_callback(void * callback_arg, + globus_ftp_control_handle_t * handle, + globus_object_t * error, + globus_byte_t * buffer, + globus_size_t length, + globus_off_t offset, + globus_bool_t eof) + { + g_ftp_perf_monitor_t *monitor = (g_ftp_perf_monitor_t *) callback_arg; + + if (error != GLOBUS_NULL) + { + char *errstring = globus_object_printable_to_string(error); + printf("ERROR: read_all_callback passed err: %s\n", errstring); + assert(GLOBUS_FALSE); + } /* endif */ + + if (eof) + { + monitor->done = GLOBUS_TRUE; + G2_SIGNAL + } /* endif */ + + } /* end gridftp_read_all_callback() */ + + /***************/ + /* END GRIDFTP */ + /***************/ Index: mpid/globus2/protos.h =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/globus2/protos.h,v retrieving revision 1.5 retrieving revision 1.6 diff -c -r1.5 -r1.6 *** mpid/globus2/protos.h 2000/04/18 19:36:11 1.5 --- mpid/globus2/protos.h 2003/01/08 12:41:52 1.6 *************** *** 3,8 **** --- 3,9 ---- #include #include + #include /* GRIDFTP */ /*******************/ /* Data Structures */ Index: mpid/globus2/protos_details.h =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/globus2/protos_details.h,v retrieving revision 1.12 retrieving revision 1.13 diff -c -r1.12 -r1.13 *** mpid/globus2/protos_details.h 2002/10/15 12:23:17 1.12 --- mpid/globus2/protos_details.h 2003/01/08 12:41:52 1.13 *************** *** 5,11 **** /* TCP proto stuff */ /*******************/ ! enum header_type {user_data, ack, cancel_send, cancel_result}; /* header = * type==user_data,src,tag,contextid,dataoriginbuffsize,ssendflag,packed_flag, --- 5,12 ---- /* TCP proto stuff */ /*******************/ ! enum header_type {user_data, ack, cancel_send, cancel_result, ! gridftp_port}; /* GRIDFTP */ /* header = * type==user_data,src,tag,contextid,dataoriginbuffsize,ssendflag,packed_flag, *************** *** 52,57 **** --- 53,60 ---- void * liba; int libasize; MPIR_SHANDLE *sreq; + int gridftp_port; /* GRIDFTP */ + int gridftp_partner_grank; /* GRIDFTP */ }; /* *************** *** 90,95 **** --- 93,115 ---- unsigned long msg_id_ctr; /* message id */ }; + /* START GRIDFTP */ + typedef struct g_ftp_perf_monitor_s + { + globus_bool_t done; + int count; + } g_ftp_perf_monitor_t; + + typedef struct g_ftp_user_args_s + { + g_ftp_perf_monitor_t *monitor; + globus_ftp_control_handle_t * ftp_handle_r; + globus_byte_t * buffer; + int nbytes; /* buffer length */ + int gftp_tcp_buffsize; + } g_ftp_user_args_t; + /* END GRIDFTP */ + struct tcp_miproto_t { char hostname[G2_MAXHOSTNAMELEN]; *************** *** 126,131 **** --- 146,162 ---- /* Different levels for TCP: WAN-TCP > LAN-TCP > localhost-TCP */ char *globus_lan_id; int localhost_id; + + /* START GRIDFTP */ + globus_bool_t recvd_partner_port; + globus_bool_t use_grid_ftp; + int partner_port; + int gftp_tcp_buffsize; + globus_ftp_control_handle_t ftp_handle_r; + globus_ftp_control_handle_t ftp_handle_w; + g_ftp_perf_monitor_t read_monitor; + g_ftp_perf_monitor_t write_monitor; + /* END GRIDFTP */ }; /*******************/ Index: mpid/globus2/recv_g.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/globus2/recv_g.c,v retrieving revision 1.52 retrieving revision 1.53 diff -c -r1.52 -r1.53 *** mpid/globus2/recv_g.c 2002/12/16 20:59:10 1.52 --- mpid/globus2/recv_g.c 2003/01/09 11:36:06 1.53 *************** *** 722,728 **** globus_libc_fprintf( stderr, "ERROR: send_ack_over_tcp: deteremined that Headerlen " ! "(%ld) - sizeof(int) (%ld) < waiter for ack's libasize %d" " and will therefore not fit into header\n", Headerlen, globus_dc_sizeof_int(1), --- 722,728 ---- globus_libc_fprintf( stderr, "ERROR: send_ack_over_tcp: deteremined that Headerlen " ! "(%d) - sizeof(int) (%ld) < waiter for ack's libasize %d" " and will therefore not fit into header\n", Headerlen, globus_dc_sizeof_int(1), *************** *** 990,996 **** */ int mpi_recv_or_post(MPIR_RHANDLE *in_req, int *error_code) { - int rc; int err; int flag; --- 990,995 ---- Index: mpid/globus2/send_g.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/globus2/send_g.c,v retrieving revision 1.54 retrieving revision 1.56 diff -c -r1.54 -r1.56 *** mpid/globus2/send_g.c 2002/12/16 20:59:10 1.54 --- mpid/globus2/send_g.c 2003/01/09 11:36:06 1.56 *************** *** 20,25 **** --- 20,41 ---- globus_result_t result, globus_byte_t *buff, globus_size_t nbytes); + /* START GRIDFTP */ + static void gridftp_setup_sockets_callback(void *callback_arg, + struct globus_ftp_control_handle_s *handle, + unsigned int stripe_ndx, + globus_bool_t reuse, + globus_object_t *error); + static void gridftp_write_callback(void *callback_arg, + globus_ftp_control_handle_t *handle, + globus_object_t *error, + globus_byte_t *buffer, + globus_size_t length, + globus_off_t offset, + globus_bool_t eof); + void g_ftp_monitor_init(g_ftp_perf_monitor_t *monitor); + void g_ftp_monitor_reset(g_ftp_perf_monitor_t *monitor); + /* END GRIDFTP */ static void remove_and_continue(struct tcpsendreq *sr); static void free_and_mark_sreq(struct tcpsendreq *sr, globus_bool_t data_sent); static void send_datatype(struct MPIR_COMMUNICATOR *comm, *************** *** 186,192 **** *error_code = MPI_ERR_INTERN; } /* endif */ ! /* fn_exit: */ DEBUG_FN_EXIT(DEBUG_MODULE_SEND); } /* end MPID_SendDatatype() */ --- 202,210 ---- *error_code = MPI_ERR_INTERN; } /* endif */ ! #if defined(VMPI) ! fn_exit: ! #endif DEBUG_FN_EXIT(DEBUG_MODULE_SEND); } /* end MPID_SendDatatype() */ *************** *** 476,482 **** *error_code = MPI_ERR_INTERN; } /* endif */ ! /* fn_exit: */ DEBUG_FN_EXIT(DEBUG_MODULE_SEND); } /* end MPID_SsendDatatype() */ --- 494,502 ---- *error_code = MPI_ERR_INTERN; } /* endif */ ! #if defined(VMPI) ! fn_exit: ! #endif DEBUG_FN_EXIT(DEBUG_MODULE_SEND); } /* end MPID_SsendDatatype() */ *************** *** 681,687 **** if (sreq->req_src_proto == mpi) { MPI_Status status; - struct mpircvreq * recvreq; /* normally relaxed RC semantics would require a lock here to acquire the shared sreq data, but we already did an acquire --- 701,706 ---- *************** *** 1404,1409 **** --- 1423,1480 ---- break; } /* end switch() */ + /* START GRIDFTP */ + if (tp->use_grid_ftp) + { + g_ftp_user_args_t ua; + globus_result_t res; + + g_ftp_monitor_reset(&(tp->write_monitor)); + + ua.monitor = &(tp->write_monitor); + ua.buffer = sr->src; + ua.nbytes = bufflen; + /* START NEWGRIDFTP */ + /* ua.max_outstanding_writes = tp->max_outstanding_writes; */ + ua.gftp_tcp_buffsize = tp->gftp_tcp_buffsize; + /* END NEWGRIDFTP */ + /****************/ + /* WRITE BUFFER */ + /****************/ + + /* + * this can be used over and over again ... + * it simply opens connections and deploys callback when + * ready to go + */ + res = globus_ftp_control_data_connect_write( + &(tp->ftp_handle_w), + gridftp_setup_sockets_callback, + &ua); + if (res != GLOBUS_SUCCESS) + { + globus_libc_fprintf( + stderr, + "ERROR: start_tcp_send: " + "register gridftp write payload %d failed\n", + bufflen); + remove_and_continue(sr); + free_and_mark_sreq(sr, GLOBUS_FALSE); + rc = -1; + goto fn_exit; + } /* endif */ + + while (!(tp->write_monitor.done)) + { + G2_WAIT + } /* endwhile */ + + remove_and_continue(sr); + free_and_mark_sreq(sr, GLOBUS_TRUE); + } + else + /* END GRIDFTP */ + if (globus_io_register_write(tp->whandle, sr->src, (globus_size_t) bufflen, *************** *** 1434,1439 **** --- 1505,1539 ---- } /* esac user_data */ break; + /* START GRIDFTP */ + case gridftp_port: + { + globus_result_t rc2; + + globus_dc_put_int(&cp, &sr->type, 1); + globus_dc_put_int(&cp, &sr->gridftp_partner_grank, 1); + globus_dc_put_int(&cp, &sr->gridftp_port, 1); + + /* sending header */ + rc2 = globus_io_write( + &(((struct tcp_rw_handle_t *)(tp->handlep))->handle), + tp->header, + Headerlen, + &nbytes_sent); + remove_and_continue(sr); + g_free(sr); + + if (rc2 != GLOBUS_SUCCESS) + { + globus_libc_fprintf(stderr, + "ERROR: send_ack_over_tcp: write header failed\n"); + rc = -1; + goto fn_exit; + } /* endif */ + } + break; + /* END GRIDFTP */ + case cancel_send: break; /* here only to get rid of annoying compiler warning */ *************** *** 1490,1495 **** --- 1590,1699 ---- free_and_mark_sreq(sr, GLOBUS_TRUE); } /* end write_callback */ + + /* START GRIDFTP */ + /* + * this gets called when sockets are all setup and + * you're ready to start writing. + */ + static void gridftp_setup_sockets_callback(void *callback_arg, + struct globus_ftp_control_handle_s *handle, + unsigned int stripe_ndx, + globus_bool_t reuse, + globus_object_t *error) + { + g_ftp_perf_monitor_t monitor; + int nsent; + globus_bool_t eof; + globus_result_t res; + g_ftp_user_args_t *ua = (g_ftp_user_args_t *) callback_arg; + g_ftp_perf_monitor_t *done_monitor = ua->monitor; + globus_byte_t *next_write_start; + int bytes_per_write; + + g_ftp_monitor_init(&monitor); + + /* START NEWGRIDFTP */ + #if 0 + if ((bytes_per_write = ua->nbytes/ua->max_outstanding_writes) < 1) + bytes_per_write = 1; + #else + bytes_per_write = ua->gftp_tcp_buffsize; + #endif + /* END NEWGRIDFTP */ + + nsent = 0; + next_write_start = ua->buffer; + eof = GLOBUS_FALSE; + while (!eof) + { + if (nsent + bytes_per_write >= ua->nbytes) + { + eof = GLOBUS_TRUE; + bytes_per_write = ua->nbytes - nsent; + } /* endif */ + + res = globus_ftp_control_data_write(handle, /* same ftp_handle */ + next_write_start, /* buff */ + bytes_per_write, /* buffsize */ + nsent, /* offset into payload */ + eof, /* flag */ + gridftp_write_callback, + (void *) &monitor); /* user arg */ + /* test_result(res, "connect_write_callback:data_write", __LINE__); */ + + next_write_start += bytes_per_write; + nsent += bytes_per_write; + monitor.count++; + } /* endwhile */ + + /* wait for all the callbacks to return */ + while(monitor.count != 0) + { + G2_WAIT + } /* endwhile */ + + /* signalling that write of entire payload is complete */ + done_monitor->done = GLOBUS_TRUE; + G2_SIGNAL + + } /* end gridftp_setup_sockets_callback() */ + + static void gridftp_write_callback(void *callback_arg, + globus_ftp_control_handle_t *handle, + globus_object_t *error, + globus_byte_t *buffer, + globus_size_t length, + globus_off_t offset, + globus_bool_t eof) + { + g_ftp_perf_monitor_t * monitor; + + monitor = (g_ftp_perf_monitor_t *)callback_arg; + + if(error != GLOBUS_NULL) + { + assert(GLOBUS_FALSE); + } /* endif */ + + monitor->count--; + G2_SIGNAL + + } /* end gridftp_write_callback() */ + + void g_ftp_monitor_init(g_ftp_perf_monitor_t *monitor) + { + g_ftp_monitor_reset(monitor); + } /* end g_ftp_monitor_init() */ + + void g_ftp_monitor_reset(g_ftp_perf_monitor_t *monitor) + { + monitor->done = GLOBUS_FALSE; + monitor->count = 0; + } /* end g_ftp_monitor_reset() */ + + /* END GRIDFTP */ + /* * it is assumed that upon entrance to this function: Index: mpid/globus2/setup_globus2 =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/globus2/setup_globus2,v retrieving revision 1.42 retrieving revision 1.43 diff -c -r1.42 -r1.43 *** mpid/globus2/setup_globus2 2002/10/15 13:09:59 1.42 --- mpid/globus2/setup_globus2 2003/01/08 12:41:53 1.43 *************** *** 190,196 **** fi $gmh -flavor=$flavor \ globus_common globus_gram_client globus_io globus_data_conversion \ ! globus_duroc_runtime globus_duroc_bootstrap >mpid/${DEVICE}/Makefile.mpich.header if test $? != 0 ; then print_error "ERROR: failed globus-makefile-header: missing Globus components" cat mpid/${DEVICE}/Makefile.mpich.header --- 190,197 ---- fi $gmh -flavor=$flavor \ globus_common globus_gram_client globus_io globus_data_conversion \ ! globus_duroc_runtime globus_duroc_bootstrap globus_ftp_control \ ! >mpid/${DEVICE}/Makefile.mpich.header if test $? != 0 ; then print_error "ERROR: failed globus-makefile-header: missing Globus components" cat mpid/${DEVICE}/Makefile.mpich.header Index: mpid/mpd/Makefile.in =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/mpd/Makefile.in,v retrieving revision 1.47 retrieving revision 1.49 diff -c -r1.47 -r1.49 *** mpid/mpd/Makefile.in 2002/01/18 18:02:15 1.47 --- mpid/mpd/Makefile.in 2003/01/13 17:26:02 1.49 *************** *** 122,157 **** # Installation target # This installation target isn't ready yet; it needs to be more careful # of modes (particularly setting a+x) install: # startdaemons at least temporarily obsolete # sed -e "s/^DIR=.*$/DIR=${bindir}/g" ${top_srcdir}/mpid/mpd/startdaemons.in ${bindir}/startdaemons ! # chmod ${XMODE} ${bindir}/startdaemons ! if [ ! -d ${bindir} ] ; then \ ! mkdir -p ${bindir} ;\ fi ! cp -f mpd ${bindir}/mpd ! cp -f mpdcon ${bindir}/mpdcon @if [ "`whoami`" = "root" ] ; then \ ! echo "chmod 4755 ${bindir}/mpdcon" ;\ ! chmod 4755 ${bindir}/mpdcon ;\ fi ! cp -f mpdman ${bindir}/mpdman # if [ -f startdaemons -a mpd.hosts ] ; then \ ! # cp startdaemons ${bindir}/startdaemons ;\ ! # cp mpd.hosts ${bindir}/mpd.hosts ;\ # fi -@for cmd in ${CMDS_FROM_CON} ; do \ ! rm -f ${bindir}/$$cmd ; \ ! @LN_S@ -f ${bindir}/mpdcon ${bindir}/$$cmd ; done # Some other part of mpich install might have created an mpirun ! /bin/rm -f ${bindir}/mpirun ! @LN_S@ -f ${bindir}/mpdcon ${bindir}/mpirun -@if [ -n "${UNINSTALLFILE}" ] ; then \ for file in mpd mpdcon mpdman mpdtrace mpddump mpdexit mpirun \ mpdallexit mpdbomb mpdhelp mpdcleanup mpdmpexec \ mpdclean \ mpigdb mpdmandump mpdlistjobs mpdkilljob mpdringtest mpdringsize mpdshutdown; do \ ! echo "/bin/rm -f ${bindir}/$$file" >> "${UNINSTALLFILE}" ; \ done ; \ fi # --- 122,159 ---- # Installation target # This installation target isn't ready yet; it needs to be more careful # of modes (particularly setting a+x) + # Note that it uses relative paths for the symlinks. This is cleaner + # and works with RPM install: # startdaemons at least temporarily obsolete # sed -e "s/^DIR=.*$/DIR=${bindir}/g" ${top_srcdir}/mpid/mpd/startdaemons.in ${bindir}/startdaemons ! # chmod ${XMODE} ${DESTDIR}${bindir}/startdaemons ! if [ ! -d ${DESTDIR}${bindir} ] ; then \ ! mkdir -p ${DESTDIR}${bindir} ;\ fi ! cp -f mpd ${DESTDIR}${bindir}/mpd ! cp -f mpdcon ${DESTDIR}${bindir}/mpdcon @if [ "`whoami`" = "root" ] ; then \ ! echo "chmod 4755 ${DESTDIR}${bindir}/mpdcon" ;\ ! chmod 4755 ${DESTDIR}${bindir}/mpdcon ;\ fi ! cp -f mpdman ${DESTDIR}${bindir}/mpdman # if [ -f startdaemons -a mpd.hosts ] ; then \ ! # cp startdaemons ${DESTDIR}${bindir}/startdaemons ;\ ! # cp mpd.hosts ${DESTDIR}${bindir}/mpd.hosts ;\ # fi -@for cmd in ${CMDS_FROM_CON} ; do \ ! rm -f ${DESTDIR}${bindir}/$$cmd ; \ ! (cd ${DESTDIR}${bindir} && @LN_S@ -f mpdcon $$cmd ); done # Some other part of mpich install might have created an mpirun ! /bin/rm -f ${DESTDIR}${bindir}/mpirun ! (cd ${DESTDIR}${bindir} && @LN_S@ -f mpdcon mpirun ) -@if [ -n "${UNINSTALLFILE}" ] ; then \ for file in mpd mpdcon mpdman mpdtrace mpddump mpdexit mpirun \ mpdallexit mpdbomb mpdhelp mpdcleanup mpdmpexec \ mpdclean \ mpigdb mpdmandump mpdlistjobs mpdkilljob mpdringtest mpdringsize mpdshutdown; do \ ! echo "/bin/rm -f ${DESTDIR}${bindir}/$$file" >> "${UNINSTALLFILE}" ; \ done ; \ fi # Index: mpid/nt_server/winmpd/mpd/launch.cpp =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/nt_server/winmpd/mpd/launch.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -c -r1.24 -r1.25 *** mpid/nt_server/winmpd/mpd/launch.cpp 2002/12/10 22:10:35 1.24 --- mpid/nt_server/winmpd/mpd/launch.cpp 2003/01/09 23:17:40 1.25 *************** *** 31,36 **** --- 31,37 ---- bool bUseDebugFlag; int priorityClass; int priority; + bool bAttachToWorkstation; int nPid; int nKRank; *************** *** 60,65 **** --- 61,67 ---- bUseDebugFlag = false; priorityClass = BELOW_NORMAL_PRIORITY_CLASS; priority = THREAD_PRIORITY_NORMAL; + bAttachToWorkstation = false; nPid = -1; nKRank = 0; *************** *** 382,392 **** bool bProcessAborted = false; SYSTEMTIME stime; char timestamp[256]; pArg->Print(); - HANDLE hIn, hOut, hErr; - int nError; if (strlen(pArg->pszEnv)) { sprintf(pszStr, "|MPD_ID=%s", pArg->pszSrcId); --- 384,394 ---- bool bProcessAborted = false; SYSTEMTIME stime; char timestamp[256]; + HANDLE hIn, hOut, hErr; + int nError; pArg->Print(); if (strlen(pArg->pszEnv)) { sprintf(pszStr, "|MPD_ID=%s", pArg->pszSrcId); Index: mpid/nt_server/winmpd/mpd/launchprocess.cpp =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/nt_server/winmpd/mpd/launchprocess.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -c -r1.11 -r1.12 *** mpid/nt_server/winmpd/mpd/launchprocess.cpp 2002/12/05 22:37:13 1.11 --- mpid/nt_server/winmpd/mpd/launchprocess.cpp 2003/01/09 23:17:40 1.12 *************** *** 179,184 **** --- 179,224 ---- return hUser; } + HANDLE GetUserHandleNoCache(char *account, char *domain, char *password, int *pError) + { + HANDLE hUser; + int error; + int num_tries = 3; + + // logon the user + while (!LogonUser( + account, + domain, + password, + LOGON32_LOGON_INTERACTIVE, + LOGON32_PROVIDER_DEFAULT, + &hUser)) + { + error = GetLastError(); + if (error == ERROR_NO_LOGON_SERVERS) + { + if (num_tries) + Sleep(250); + else + { + *pError = error; + return INVALID_HANDLE_VALUE; + } + num_tries--; + } + else + { + *pError = error; + return INVALID_HANDLE_VALUE; + } + } + + // cache the user handle + CacheUserHandle(account, domain, password, hUser); + + return hUser; + } + // Function name : SetEnvironmentVariables // Description : // Return type : void *************** *** 368,373 **** --- 408,415 ---- saInfo.hStdInput = hPipeStdinR; saInfo.hStdOutput = hPipeStdoutW; saInfo.dwFlags = STARTF_USESTDHANDLES; + //saInfo.lpDesktop = "WinSta0\\Default"; + //saInfo.wShowWindow = SW_SHOW; SetEnvironmentVariables(env); pEnv = GetEnvironmentStrings(); *************** *** 456,462 **** } } ! bool ValidateUser(char *pszAccount, char *pszPassword, int *pError) { HANDLE hUser; char account[100], domain[100] = "", *pszDomain; --- 498,504 ---- } } ! bool ValidateUser(char *pszAccount, char *pszPassword, bool bUseCache, int *pError) { HANDLE hUser; char account[100], domain[100] = "", *pszDomain; *************** *** 467,476 **** else pszDomain = domain; ! hUser = GetUserHandle(account, pszDomain, pszPassword, pError); return (hUser != INVALID_HANDLE_VALUE); } HANDLE LaunchProcessLogon(char *domainaccount, char *password, char *cmd, char *env, char *map, char *dir, int priorityClass, int priority, HANDLE *hIn, HANDLE *hOut, HANDLE *hErr, int *pdwPid, int *nError, char *pszError, bool bDebug) { HANDLE hStdin, hStdout, hStderr; --- 509,588 ---- else pszDomain = domain; ! if (bUseCache) ! hUser = GetUserHandle(account, pszDomain, pszPassword, pError); ! else ! hUser = GetUserHandleNoCache(account, pszDomain, pszPassword, pError); ! ! // does hUser need to be closed? ! return (hUser != INVALID_HANDLE_VALUE); } + //#define USE_WINDOW_STATIONS + #undef USE_WINDOW_STATIONS + + #ifdef USE_WINDOW_STATIONS + + // Insert code here to figure out a way to launch a process in the interactive WorkStation and Desktop + + HWINSTA hwinstaSave = NULL; + HDESK hdeskSave = NULL; + HWINSTA hwinstaUser = NULL; + HDESK hdeskUser = NULL; + + bool AttachToWorkstation() + { + DWORD dwThreadId; + + // Ensure connection to service window station and desktop, and + // save their handles. + + hwinstaSave = GetProcessWindowStation(); + dwThreadId = GetCurrentThreadId(); + hdeskSave = GetThreadDesktop(dwThreadId); + + // connect to the User's window station and desktop. + + //RpcImpersonateClient(h); + hwinstaUser = OpenWindowStation("WinSta0", TRUE, MAXIMUM_ALLOWED); + if (hwinstaUser == NULL) + { + //RpcRevertToSelf(); + err_printf("AttachToWorkstation:OpenWindowStation failed, error %d.\n", GetLastError()); + return false; + } + SetProcessWindowStation(hwinstaUser); + hdeskUser = OpenInputDesktop(DF_ALLOWOTHERACCOUNTHOOK, TRUE, MAXIMUM_ALLOWED); + /* + DESKTOP_CREATEMENU | DESKTOP_CREATEWINDOW | DESKTOP_ENUMERATE | + DESKTOP_HOOKCONTROL | DESKTOP_JOURNALPLAYBACK | DESKTOP_JOURNALRECORD | + DESKTOP_READOBJECTS | DESKTOP_SWITCHDESKTOP | DESKTOP_WRITEOBJECTS); + */ + //RpcRevertToSelf(); + if (hdeskUser == NULL) + { + SetProcessWindowStation(hwinstaSave); + CloseWindowStation(hwinstaUser); + err_printf("AttachToWorkstation:OpenInputDesktop failed, error %d\n", GetLastError()); + return false; + } + SetThreadDesktop(hdeskUser); + + return true; + } + + bool DetachFromWorkstation() + { + // Restore window station and desktop. + SetThreadDesktop(hdeskSave); + SetProcessWindowStation(hwinstaSave); + CloseDesktop(hdeskUser); + CloseWindowStation(hwinstaUser); + return true; + } + #endif /* USE_WINDOW_STATIONS */ + HANDLE LaunchProcessLogon(char *domainaccount, char *password, char *cmd, char *env, char *map, char *dir, int priorityClass, int priority, HANDLE *hIn, HANDLE *hOut, HANDLE *hErr, int *pdwPid, int *nError, char *pszError, bool bDebug) { HANDLE hStdin, hStdout, hStderr; *************** *** 602,607 **** --- 714,721 ---- saInfo.hStdOutput = hPipeStdoutW; saInfo.hStdError = hPipeStderrW; saInfo.dwFlags = STARTF_USESTDHANDLES; + //saInfo.lpDesktop = "WinSta0\\Default"; + //saInfo.wShowWindow = SW_SHOW; SetEnvironmentVariables(env); pEnv = GetEnvironmentStrings(); *************** *** 645,651 **** CREATE_SUSPENDED | CREATE_NO_WINDOW | priorityClass; if (bDebug) launch_flag = launch_flag | DEBUG_PROCESS; ! num_tries = 4; do { --- 759,769 ---- CREATE_SUSPENDED | CREATE_NO_WINDOW | priorityClass; if (bDebug) launch_flag = launch_flag | DEBUG_PROCESS; ! ! #ifdef USE_WINDOW_STATIONS ! AttachToWorkstation(); ! #endif ! num_tries = 4; do { *************** *** 689,694 **** --- 807,815 ---- } } while (num_tries); //RevertToSelf(); // If you call RevertToSelf, the network mapping goes away. + #ifdef USE_WINDOW_STATIONS + DetachFromWorkstation(); + #endif } else { Index: mpid/nt_server/winmpd/mpd/mpd.h =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/nt_server/winmpd/mpd/mpd.h,v retrieving revision 1.9 retrieving revision 1.10 diff -c -r1.9 -r1.10 *** mpid/nt_server/winmpd/mpd/mpd.h 2002/06/25 17:53:44 1.9 --- mpid/nt_server/winmpd/mpd/mpd.h 2003/01/08 22:23:04 1.10 *************** *** 4,10 **** #define COPYRIGHT "Copyright 2002 Argonne National Lab" #define VERSION_RELEASE 1 #define VERSION_MAJOR 2 ! #define VERSION_MINOR 4 #define MAX_CMD_LENGTH 8192 #define MAX_HOST_LENGTH 64 --- 4,10 ---- #define COPYRIGHT "Copyright 2002 Argonne National Lab" #define VERSION_RELEASE 1 #define VERSION_MAJOR 2 ! #define VERSION_MINOR 5 #define MAX_CMD_LENGTH 8192 #define MAX_HOST_LENGTH 64 *************** *** 24,30 **** #define CONSOLE_STR_LENGTH 10*MAX_CMD_LENGTH ! #define MPD_DEFAULT_TIMEOUT 30 ! #define MPD_SHORT_TIMEOUT 10 #endif --- 24,30 ---- #define CONSOLE_STR_LENGTH 10*MAX_CMD_LENGTH ! #define MPD_DEFAULT_TIMEOUT 45 ! #define MPD_SHORT_TIMEOUT 20 #endif Index: mpid/nt_server/winmpd/mpd/mpdconsole.cpp =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/nt_server/winmpd/mpd/mpdconsole.cpp,v retrieving revision 1.23 retrieving revision 1.24 diff -c -r1.23 -r1.24 *** mpid/nt_server/winmpd/mpd/mpdconsole.cpp 2002/12/10 22:10:36 1.23 --- mpid/nt_server/winmpd/mpd/mpdconsole.cpp 2003/01/09 23:17:40 1.24 *************** *** 1373,1379 **** } else if (strnicmp(p->pszIn, "validate ", 9) == 0) { ! char pszAccount[100], pszPassword[300]; int error; _snprintf(pszStr, MAX_CMD_LENGTH, "FAIL - invalid arguments"); if (GetStringOpt(&p->pszIn[9], "a", pszAccount)) --- 1373,1380 ---- } else if (strnicmp(p->pszIn, "validate ", 9) == 0) { ! char pszAccount[100], pszPassword[300], pszCache[10]; ! bool bUseCache = true; int error; _snprintf(pszStr, MAX_CMD_LENGTH, "FAIL - invalid arguments"); if (GetStringOpt(&p->pszIn[9], "a", pszAccount)) *************** *** 1381,1387 **** if (GetStringOpt(&p->pszIn[9], "p", pszPassword)) { DecodePassword(pszPassword); ! if (ValidateUser(pszAccount, pszPassword, &error)) { _snprintf(pszStr, MAX_CMD_LENGTH, "SUCCESS"); } --- 1382,1393 ---- if (GetStringOpt(&p->pszIn[9], "p", pszPassword)) { DecodePassword(pszPassword); ! if (GetStringOpt(&p->pszIn[9], "c", pszCache)) ! { ! if (stricmp(pszCache, "no") == 0) ! bUseCache = false; ! } ! if (ValidateUser(pszAccount, pszPassword, bUseCache, &error)) { _snprintf(pszStr, MAX_CMD_LENGTH, "SUCCESS"); } Index: mpid/nt_server/winmpd/mpd/mpdimpl.h =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/nt_server/winmpd/mpd/mpdimpl.h,v retrieving revision 1.23 retrieving revision 1.24 diff -c -r1.23 -r1.24 *** mpid/nt_server/winmpd/mpd/mpdimpl.h 2002/12/10 22:10:36 1.23 --- mpid/nt_server/winmpd/mpd/mpdimpl.h 2003/01/09 23:17:41 1.24 *************** *** 208,214 **** void UpdateMPICHd(char *pszFileName); void ConcatenateProcessesToString(char *pszStr); void GetNameKeyValue(char *str, char *name, char *key, char *value); ! bool ValidateUser(char *pszAccount, char *pszPassword, int *pError); HANDLE LaunchProcess(char *cmd, char *env, char *dir, int priorityClass, int priority, HANDLE *hIn, HANDLE *hOut, HANDLE *hErr, int *pdwPid, int *nError, char *pszError, bool bDebug); HANDLE LaunchProcessLogon(char *domainaccount, char *password, char *cmd, char *env, char *map, char *dir, int priorityClass, int priority, HANDLE *hIn, HANDLE *hOut, HANDLE *hErr, int *pdwPid, int *nError, char *pszError, bool bDebug); void DebugWaitForProcess(bool &bAborted, char *pszError); --- 208,214 ---- void UpdateMPICHd(char *pszFileName); void ConcatenateProcessesToString(char *pszStr); void GetNameKeyValue(char *str, char *name, char *key, char *value); ! bool ValidateUser(char *pszAccount, char *pszPassword, bool bUseCache, int *pError); HANDLE LaunchProcess(char *cmd, char *env, char *dir, int priorityClass, int priority, HANDLE *hIn, HANDLE *hOut, HANDLE *hErr, int *pdwPid, int *nError, char *pszError, bool bDebug); HANDLE LaunchProcessLogon(char *domainaccount, char *password, char *cmd, char *env, char *map, char *dir, int priorityClass, int priority, HANDLE *hIn, HANDLE *hOut, HANDLE *hErr, int *pdwPid, int *nError, char *pszError, bool bDebug); void DebugWaitForProcess(bool &bAborted, char *pszError); Index: mpid/nt_server/winmpd/mpd/updatempich.cpp =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/nt_server/winmpd/mpd/updatempich.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -c -r1.1 -r1.2 *** mpid/nt_server/winmpd/mpd/updatempich.cpp 2002/04/08 23:17:38 1.1 --- mpid/nt_server/winmpd/mpd/updatempich.cpp 2003/01/08 22:23:05 1.2 *************** *** 14,19 **** --- 14,30 ---- if (len == 0) { + if (GetSystemWindowsDirectory(pszStr, 4096)) + { + strcat(pszStr, "\\system32\\mpich.dll"); + if (!MoveFileEx(pszFileName, pszStr, MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING)) + { + error = GetLastError(); + Translate_Error(error, pszStr); + err_printf("Unable to move '%s' to '%s'\nError: %s\n", pszFileName, filename, pszStr); + return; + } + } err_printf("unable to find mpich.dll\n"); return; } *************** *** 50,55 **** --- 61,77 ---- if (len == 0) { + if (GetSystemWindowsDirectory(pszStr, 4096)) + { + strcat(pszStr, "\\system32\\mpichd.dll"); + if (!MoveFileEx(pszFileName, pszStr, MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING)) + { + error = GetLastError(); + Translate_Error(error, pszStr); + err_printf("Unable to move '%s' to '%s'\nError: %s\n", pszFileName, filename, pszStr); + return; + } + } err_printf("unable to find mpichd.dll\n"); return; } Index: mpid/nt_server/winmpd/mpich1/MPIRegister/MPIRegister.cpp =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/nt_server/winmpd/mpich1/MPIRegister/MPIRegister.cpp,v retrieving revision 1.6 retrieving revision 1.9 diff -c -r1.6 -r1.9 *** mpid/nt_server/winmpd/mpich1/MPIRegister/MPIRegister.cpp 2002/10/25 21:54:48 1.6 --- mpid/nt_server/winmpd/mpich1/MPIRegister/MPIRegister.cpp 2003/01/10 18:22:27 1.9 *************** *** 26,47 **** int nPort = MPD_DEFAULT_PORT; SOCKET sock; int error; if ((argc > 1) && (stricmp(argv[1], "-remove") == 0)) { if (DeleteCurrentPasswordRegistryEntry()) printf("Account and password removed from the Registry.\n"); else printf("Error: Unable to remove the encrypted password.\n"); return; } ! if ((argc > 1) && (stricmp(argv[1], "-validate") == 0)) { if (SetupCryptoClient()) { if (ReadPasswordFromRegistry(account, password)) { if (!GetOpt(argc, argv, "-host", pszHost)) { DWORD len = 100; --- 26,53 ---- int nPort = MPD_DEFAULT_PORT; SOCKET sock; int error; + bool bUseCache = true; if ((argc > 1) && (stricmp(argv[1], "-remove") == 0)) { if (DeleteCurrentPasswordRegistryEntry()) + { + DeleteCachedPassword(); printf("Account and password removed from the Registry.\n"); + } else printf("Error: Unable to remove the encrypted password.\n"); return; } ! if (GetOpt(argc, argv, "-validate")) { if (SetupCryptoClient()) { if (ReadPasswordFromRegistry(account, password)) { + if (GetOpt(argc, argv, "-nocache")) + bUseCache = false; if (!GetOpt(argc, argv, "-host", pszHost)) { DWORD len = 100; *************** *** 54,60 **** if ((error = ConnectToMPD(pszHost, nPort, pszPassPhrase, &sock)) == 0) { pszEncoded = EncodePassword(password); ! sprintf(pszStr, "validate a=%s p=%s", account, pszEncoded); WriteString(sock, pszStr); strcpy(pszStr, "FAIL"); ReadStringTimeout(sock, pszStr, 20); --- 60,66 ---- if ((error = ConnectToMPD(pszHost, nPort, pszPassPhrase, &sock)) == 0) { pszEncoded = EncodePassword(password); ! sprintf(pszStr, "validate a=%s p=%s c=%s", account, pszEncoded, bUseCache ? "yes" : "no"); WriteString(sock, pszStr); strcpy(pszStr, "FAIL"); ReadStringTimeout(sock, pszStr, 20); Index: mpid/nt_server/winmpd/mpich1/MPIRun/LaunchProcess.cpp =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/nt_server/winmpd/mpich1/MPIRun/LaunchProcess.cpp,v retrieving revision 1.20 retrieving revision 1.21 diff -c -r1.20 -r1.21 *** mpid/nt_server/winmpd/mpich1/MPIRun/LaunchProcess.cpp 2002/12/17 20:54:28 1.20 --- mpid/nt_server/winmpd/mpich1/MPIRun/LaunchProcess.cpp 2003/01/09 23:17:41 1.21 *************** *** 69,78 **** --- 69,80 ---- char pszIOE[10]; char *dbg_str = "no"; char *pszMap = NULL; + bool bLocalStartup = false; if (arg->bUseDebugFlag) dbg_str = "yes"; + /* if (arg->i == 0 && HostIsLocal(arg->pszHost)) { CreateInProcessMPD(); *************** *** 82,88 **** --- 84,95 ---- { error = ConnectToMPD(arg->pszHost, nPort, arg->pszPassPhrase, &sock); } + */ + if (arg->i == 0 && HostIsLocal(arg->pszHost)) + bLocalStartup = true; + error = ConnectToMPD(arg->pszHost, nPort, arg->pszPassPhrase, &sock); + //printf("MPIRunLaunchProcess:connecting to %s:%d rank %d\n", arg->pszHost, nPort, arg->i);fflush(stdout); //if ((error = ConnectToMPD(arg->pszHost, nPort, arg->pszPassPhrase, &sock)) == 0) if (error == 0) *************** *** 246,341 **** delete pszMap; } //printf("MPIRunLaunchProcess:launch command = %s\n", pszStr);fflush(stdout); ! if (WriteString(sock, pszStr) == SOCKET_ERROR) { ! printf("ERROR: Unable to send launch command to '%s'\r\nError %d", arg->pszHost, WSAGetLastError()); ! easy_closesocket(sock); ! SetEvent(g_hAbortEvent); ! delete arg; ! return; ! } ! if (!ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT)) ! { ! printf("ERROR: Unable to read the result of the launch command on '%s'\r\nError %d", arg->pszHost, WSAGetLastError()); ! easy_closesocket(sock); ! SetEvent(g_hAbortEvent); ! delete arg; ! return; ! } ! launchid = atoi(pszStr); ! // save the launch id, get the pid ! sprintf(pszStr, "getpid %d", launchid); ! if (WriteString(sock, pszStr) == SOCKET_ERROR) ! { ! printf("ERROR: Unable to send getpid command to '%s'\r\nError %d", arg->pszHost, WSAGetLastError()); ! easy_closesocket(sock); ! SetEvent(g_hAbortEvent); ! delete arg; ! return; ! } ! // the following timeout needs to be longer than MPIRUN_SHORT_TIMEOUT because the CreateProcess command may take ! // a while to start the process if it lives in a shared directory ! if (!ReadStringTimeout(sock, pszStr, g_nMPIRUN_CREATE_PROCESS_TIMEOUT)) ! { ! error = WSAGetLastError(); ! if (error == ERROR_TIMEOUT || error == 0) ! { ! printf("Launch process error: Timed out waiting for the result of the process launch command sent to host '%s'\r\n", arg->pszHost); ! } ! else ! { ! printf("Launch process error: Unable to read the result of the getpid command on '%s'\r\nError %d", arg->pszHost, error); ! fflush(stdout); ! } ! printf("Attempt to launch '%s' on '%s' failed.\n", arg->pszCmdLine, arg->pszHost); ! fflush(stdout); ! easy_closesocket(sock); ! SetEvent(g_hAbortEvent); ! delete arg; ! return; } ! nPid = atoi(pszStr); ! if (nPid == -1) { - sprintf(pszStr, "geterror %d", launchid); if (WriteString(sock, pszStr) == SOCKET_ERROR) { ! printf("ERROR: Unable to send geterror command after an unsuccessful launch on '%s'\r\nError %d", arg->pszHost, WSAGetLastError()); easy_closesocket(sock); SetEvent(g_hAbortEvent); delete arg; return; } if (!ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT)) { ! printf("ERROR: Unable to read the result of the geterror command on '%s'\r\nError %d", arg->pszHost, WSAGetLastError()); easy_closesocket(sock); SetEvent(g_hAbortEvent); delete arg; return; } ! if (strcmp(pszStr, "ERROR_SUCCESS")) { ! if (arg->i == 0 && !g_bNoMPI) { ! printf("Failed to launch the root process:\n%s\n%s\n", arg->pszCmdLine, pszStr);fflush(stdout); } else { ! printf("Failed to launch process %d:\n'%s'\n%s\n", arg->i, arg->pszCmdLine, pszStr);fflush(stdout); } ! ! sprintf(pszStr, "freeprocess %d", launchid); ! WriteString(sock, pszStr); ! ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT); ! WriteString(sock, "done"); easy_closesocket(sock); SetEvent(g_hAbortEvent); delete arg; return; } } ! // Get the port number and redirect input to the first process if (arg->i == 0 && !g_bNoMPI) { --- 253,356 ---- delete pszMap; } //printf("MPIRunLaunchProcess:launch command = %s\n", pszStr);fflush(stdout); ! if (bLocalStartup) { ! // launch process ! nPid = -1; } ! else { if (WriteString(sock, pszStr) == SOCKET_ERROR) { ! printf("ERROR: Unable to send launch command to '%s'\r\nError %d", arg->pszHost, WSAGetLastError()); easy_closesocket(sock); SetEvent(g_hAbortEvent); delete arg; return; } if (!ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT)) + { + printf("ERROR: Unable to read the result of the launch command on '%s'\r\nError %d", arg->pszHost, WSAGetLastError()); + easy_closesocket(sock); + SetEvent(g_hAbortEvent); + delete arg; + return; + } + launchid = atoi(pszStr); + // save the launch id, get the pid + sprintf(pszStr, "getpid %d", launchid); + if (WriteString(sock, pszStr) == SOCKET_ERROR) { ! printf("ERROR: Unable to send getpid command to '%s'\r\nError %d", arg->pszHost, WSAGetLastError()); easy_closesocket(sock); SetEvent(g_hAbortEvent); delete arg; return; } ! // the following timeout needs to be longer than MPIRUN_SHORT_TIMEOUT because the CreateProcess command may take ! // a while to start the process if it lives in a shared directory ! if (!ReadStringTimeout(sock, pszStr, g_nMPIRUN_CREATE_PROCESS_TIMEOUT)) { ! error = WSAGetLastError(); ! if (error == ERROR_TIMEOUT || error == 0) { ! printf("Launch process error: Timed out waiting for the result of the process launch command sent to host '%s'\r\n", arg->pszHost); } else { ! printf("Launch process error: Unable to read the result of the getpid command on '%s'\r\nError %d", arg->pszHost, error); ! fflush(stdout); } ! printf("Attempt to launch '%s' on '%s' failed.\n", arg->pszCmdLine, arg->pszHost); ! fflush(stdout); easy_closesocket(sock); SetEvent(g_hAbortEvent); delete arg; return; } + nPid = atoi(pszStr); + if (nPid == -1) + { + sprintf(pszStr, "geterror %d", launchid); + if (WriteString(sock, pszStr) == SOCKET_ERROR) + { + printf("ERROR: Unable to send geterror command after an unsuccessful launch on '%s'\r\nError %d", arg->pszHost, WSAGetLastError()); + easy_closesocket(sock); + SetEvent(g_hAbortEvent); + delete arg; + return; + } + if (!ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT)) + { + printf("ERROR: Unable to read the result of the geterror command on '%s'\r\nError %d", arg->pszHost, WSAGetLastError()); + easy_closesocket(sock); + SetEvent(g_hAbortEvent); + delete arg; + return; + } + if (strcmp(pszStr, "ERROR_SUCCESS")) + { + if (arg->i == 0 && !g_bNoMPI) + { + printf("Failed to launch the root process:\n%s\n%s\n", arg->pszCmdLine, pszStr);fflush(stdout); + } + else + { + printf("Failed to launch process %d:\n'%s'\n%s\n", arg->i, arg->pszCmdLine, pszStr);fflush(stdout); + } + + sprintf(pszStr, "freeprocess %d", launchid); + WriteString(sock, pszStr); + ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT); + WriteString(sock, "done"); + easy_closesocket(sock); + SetEvent(g_hAbortEvent); + delete arg; + return; + } + } } ! // Get the port number and redirect input to the first process if (arg->i == 0 && !g_bNoMPI) { *************** *** 393,456 **** } else { ! sprintf(pszStr, "getexitcode %d", launchid); ! if (WriteString(sock, pszStr) == SOCKET_ERROR) { ! printf("Error: Unable to send a getexitcode command to '%s'\r\nError %d", ! arg->pszHost, WSAGetLastError());fflush(stdout); ! easy_closesocket(sock); ! SetEvent(g_hAbortEvent); ! delete arg; ! return; } ! if (!ReadStringTimeout(sock, pszStr, g_nLaunchTimeout)) ! { ! printf("ERROR: Unable to read the result of the root getexitcode command on '%s': error %d", ! arg->pszHost, WSAGetLastError()); ! sprintf(pszStr, "freeprocess %d", launchid); ! WriteString(sock, pszStr); ! ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT); ! WriteString(sock, "done"); ! easy_closesocket(sock); ! SetEvent(g_hAbortEvent); ! delete arg; ! return; ! } ! if (stricmp(pszStr, "ACTIVE") == 0) { ! printf("ERROR: timed-out waiting for the root process to call MPI_Init\n"); ! if (g_bUseJobHost) { ! // Save this process's information to the job database ! PutJobProcessInDatabase(arg, nPid); } ! } ! else ! { ! printf("ERROR: The root process has unexpectedly exited.\n"); ! if (g_bUseJobHost) { ! sprintf(pszStr, "geterror %d", launchid); WriteString(sock, pszStr); - pszStr[0] = '\0'; ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT); ! // Save this process's information to the job database ! PutJobProcessInDatabase(arg, nPid); ! UpdateJobKeyValue(0, "error", pszStr); } sprintf(pszStr, "freeprocess %d", launchid); WriteString(sock, pszStr); ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT); - WriteString(sock, "done"); - easy_closesocket(sock); - SetEvent(g_hAbortEvent); - delete arg; - return; } - - sprintf(pszStr, "freeprocess %d", launchid); - WriteString(sock, pszStr); - ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT); } WriteString(sock, "done"); easy_closesocket(sock); --- 408,478 ---- } else { ! if (bLocalStartup) { ! // check to see if the process is still running } ! else { ! sprintf(pszStr, "getexitcode %d", launchid); ! if (WriteString(sock, pszStr) == SOCKET_ERROR) { ! printf("Error: Unable to send a getexitcode command to '%s'\r\nError %d", ! arg->pszHost, WSAGetLastError());fflush(stdout); ! easy_closesocket(sock); ! SetEvent(g_hAbortEvent); ! delete arg; ! return; } ! if (!ReadStringTimeout(sock, pszStr, g_nLaunchTimeout)) { ! printf("ERROR: Unable to read the result of the root getexitcode command on '%s': error %d", ! arg->pszHost, WSAGetLastError()); ! sprintf(pszStr, "freeprocess %d", launchid); WriteString(sock, pszStr); ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT); ! WriteString(sock, "done"); ! easy_closesocket(sock); ! SetEvent(g_hAbortEvent); ! delete arg; ! return; } + if (stricmp(pszStr, "ACTIVE") == 0) + { + printf("ERROR: timed-out waiting for the root process to call MPI_Init\n"); + if (g_bUseJobHost) + { + // Save this process's information to the job database + PutJobProcessInDatabase(arg, nPid); + } + } + else + { + printf("ERROR: The root process has unexpectedly exited.\n"); + if (g_bUseJobHost) + { + sprintf(pszStr, "geterror %d", launchid); + WriteString(sock, pszStr); + pszStr[0] = '\0'; + ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT); + // Save this process's information to the job database + PutJobProcessInDatabase(arg, nPid); + UpdateJobKeyValue(0, "error", pszStr); + } + sprintf(pszStr, "freeprocess %d", launchid); + WriteString(sock, pszStr); + ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT); + WriteString(sock, "done"); + easy_closesocket(sock); + SetEvent(g_hAbortEvent); + delete arg; + return; + } + sprintf(pszStr, "freeprocess %d", launchid); WriteString(sock, pszStr); ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT); } } WriteString(sock, "done"); easy_closesocket(sock); *************** *** 478,486 **** if (id == launchid) { printf("ERROR: root process has unexpectedly exited. Exit code = %d\n", x); ! sprintf(pszStr, "freeprocess %d", launchid); ! WriteString(sock, pszStr); ! ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT); WriteString(sock, "done"); easy_closesocket(sock); SetEvent(g_hAbortEvent); --- 500,511 ---- if (id == launchid) { printf("ERROR: root process has unexpectedly exited. Exit code = %d\n", x); ! if (bLocalStartup) ! { ! sprintf(pszStr, "freeprocess %d", launchid); ! WriteString(sock, pszStr); ! ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT); ! } WriteString(sock, "done"); easy_closesocket(sock); SetEvent(g_hAbortEvent); *************** *** 492,500 **** else { printf("ERROR: barrier failed on '%s':\n%s", arg->pszHost, pszStr); ! sprintf(pszStr, "freeprocess %d", launchid); ! WriteString(sock, pszStr); ! ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT); WriteString(sock, "done"); easy_closesocket(sock); SetEvent(g_hAbortEvent); --- 517,528 ---- else { printf("ERROR: barrier failed on '%s':\n%s", arg->pszHost, pszStr); ! if (bLocalStartup) ! { ! sprintf(pszStr, "freeprocess %d", launchid); ! WriteString(sock, pszStr); ! ReadStringTimeout(sock, pszStr, g_nMPIRUN_SHORT_TIMEOUT); ! } WriteString(sock, "done"); easy_closesocket(sock); SetEvent(g_hAbortEvent); *************** *** 585,600 **** } // Wait for the process to exit ! sprintf(pszStr, "getexitcodewait %d", launchid); ! if (WriteString(sock, pszStr) == SOCKET_ERROR) { ! printf("Error: Unable to send a getexitcodewait command to '%s'\r\nError %d", arg->pszHost, WSAGetLastError());fflush(stdout); ! easy_closesocket(sock); ! SetEvent(g_hAbortEvent); ! delete arg; ! return; } - //printf("getexitcodewait %d socket: 0x%p:%d\n", arg->i, sock, sock);fflush(stdout); int i = InterlockedIncrement(&g_nNumProcessSockets) - 1; g_pProcessSocket[i] = sock; --- 613,635 ---- } // Wait for the process to exit ! if (bLocalStartup) ! { ! // send a simulated getexitcodewait command to the local process ! } ! else { ! sprintf(pszStr, "getexitcodewait %d", launchid); ! if (WriteString(sock, pszStr) == SOCKET_ERROR) ! { ! printf("Error: Unable to send a getexitcodewait command to '%s'\r\nError %d", arg->pszHost, WSAGetLastError());fflush(stdout); ! easy_closesocket(sock); ! SetEvent(g_hAbortEvent); ! delete arg; ! return; ! } ! //printf("getexitcodewait %d socket: 0x%p:%d\n", arg->i, sock, sock);fflush(stdout); } int i = InterlockedIncrement(&g_nNumProcessSockets) - 1; g_pProcessSocket[i] = sock; Index: mpid/nt_server/winmpd/mpich1/MPIRun/localonly.cpp =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/nt_server/winmpd/mpich1/MPIRun/localonly.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -c -r1.4 -r1.5 *** mpid/nt_server/winmpd/mpich1/MPIRun/localonly.cpp 2002/02/22 18:28:45 1.4 --- mpid/nt_server/winmpd/mpich1/MPIRun/localonly.cpp 2003/01/10 18:23:30 1.5 *************** *** 291,296 **** --- 291,298 ---- { Translate_Error(GetLastError(), error_msg, "ReadFile failed "); printf(error_msg); + CloseHandle(hFile); + DeleteFile(pszExtra); return; } if (num_read == 0) *************** *** 299,304 **** --- 301,308 ---- { printf("Wait for process 0 to write port to temporary file timed out\n"); TerminateProcess(hProcess, 0); + CloseHandle(hFile); + DeleteFile(pszExtra); return; } Sleep(100); Index: mpid/server/aclocal.m4 =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/server/aclocal.m4,v retrieving revision 1.8 retrieving revision 1.9 diff -c -r1.8 -r1.9 *** mpid/server/aclocal.m4 2001/04/03 15:44:27 1.8 --- mpid/server/aclocal.m4 2003/01/09 21:03:07 1.9 *************** *** 61,72 **** found_ssl_in_cache="no" ]) if test "$found_ssl_in_cache" = "no"; then ! AC_FIND_USER_INCLUDE(ssl,, ac_cv_sys_ssl="yes", ac_cv_sys_ssl="no") else AC_MSG_RESULT($ac_cv_sys_ssl) fi if test "$ac_cv_sys_ssl" = "yes"; then ! AC_FIND_USER_INCLUDE(ssllib,,ac_cvs_sys_ssl="yes",ac_cv_sys_ssl="no") fi if test "$ac_cv_sys_ssl" = "yes"; then AC_DEFINE(HAVE_SSL) --- 61,72 ---- found_ssl_in_cache="no" ]) if test "$found_ssl_in_cache" = "no"; then ! AC_FIND_USER_INCLUDE(ssl,/usr/local/openssl, ac_cv_sys_ssl="yes", ac_cv_sys_ssl="no") else AC_MSG_RESULT($ac_cv_sys_ssl) fi if test "$ac_cv_sys_ssl" = "yes"; then ! AC_FIND_USER_INCLUDE(ssllib,/usr/local/openssl,ac_cvs_sys_ssl="yes",ac_cv_sys_ssl="no") fi if test "$ac_cv_sys_ssl" = "yes"; then AC_DEFINE(HAVE_SSL) *************** *** 127,133 **** /opt/$1 \ /opt/local \ /opt/local/$1 \ ! /local/encap/$1 ; do if test -r $dir/$1.h ; then ac_find_inc_dir=$dir break --- 127,133 ---- /opt/$1 \ /opt/local \ /opt/local/$1 \ ! /local/encap/$1 $USER_INCLUDE_DIRS ; do if test -r $dir/$1.h ; then ac_find_inc_dir=$dir break Index: mpid/server/configure =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/server/configure,v retrieving revision 1.17 retrieving revision 1.18 diff -c -r1.17 -r1.18 *** mpid/server/configure 2001/04/03 15:44:27 1.17 --- mpid/server/configure 2003/01/09 21:03:07 1.18 *************** *** 12,19 **** ac_default_prefix=/usr/local # Any additions from configure.in: ac_help="$ac_help ! --enable-IWAY support IWAYl" ac_help="$ac_help --enable-cflags=... additional flags for c compiler" # Initialize some variables set by options. --- 12,22 ---- ac_default_prefix=/usr/local # Any additions from configure.in: ac_help="$ac_help ! --enable-IWAY support IWAYl" ac_help="$ac_help + --with-include=dirs - add dirs to the list of directories to search for + tools such as ssl " + ac_help="$ac_help --enable-cflags=... additional flags for c compiler" # Initialize some variables set by options. *************** *** 525,531 **** # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:529: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 528,534 ---- # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:532: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 555,561 **** # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:559: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 558,564 ---- # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:562: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 606,612 **** # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:610: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 609,615 ---- # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:613: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 638,644 **** fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:642: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. --- 641,647 ---- fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ! echo "configure:645: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. *************** *** 649,660 **** cat > conftest.$ac_ext << EOF ! #line 653 "configure" #include "confdefs.h" main(){return(0);} EOF ! if { (eval echo configure:658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then --- 652,663 ---- cat > conftest.$ac_ext << EOF ! #line 656 "configure" #include "confdefs.h" main(){return(0);} EOF ! if { (eval echo configure:661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then *************** *** 680,691 **** { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:684: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:689: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 683,694 ---- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ! echo "configure:687: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ! echo "configure:692: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 694,700 **** yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:698: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no --- 697,703 ---- yes; #endif EOF ! if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:701: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no *************** *** 713,719 **** ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:717: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 716,722 ---- ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ! echo "configure:720: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 747,753 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:751: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 750,756 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ! echo "configure:754: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 779,785 **** echo $ac_n "checking for virtual path format""... $ac_c" 1>&6 ! echo "configure:783: checking for virtual path format" >&5 rm -rf conftest* mkdir conftestdir cat >conftestdir/a.c <&6 ! echo "configure:786: checking for virtual path format" >&5 rm -rf conftest* mkdir conftestdir cat >conftestdir/a.c <&6 ! echo "configure:823: checking for library containing xdr_array" >&5 if eval "test \"`echo '$''{'ac_cv_search_xdr_array'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_xdr_array="no" cat > conftest.$ac_ext <&6 ! echo "configure:826: checking for library containing xdr_array" >&5 if eval "test \"`echo '$''{'ac_cv_search_xdr_array'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_xdr_array="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_xdr_array="none required" else --- 840,846 ---- xdr_array() ; return 0; } EOF ! if { (eval echo configure:844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_xdr_array="none required" else *************** *** 848,854 **** test "$ac_cv_search_xdr_array" = "no" && for i in nsl; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_xdr_array="-l$i" break --- 862,868 ---- xdr_array() ; return 0; } EOF ! if { (eval echo configure:866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_xdr_array="-l$i" break *************** *** 881,894 **** fi echo $ac_n "checking for library containing socket""... $ac_c" 1>&6 ! echo "configure:885: checking for library containing socket" >&5 if eval "test \"`echo '$''{'ac_cv_search_socket'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_socket="no" cat > conftest.$ac_ext <&6 ! echo "configure:888: checking for library containing socket" >&5 if eval "test \"`echo '$''{'ac_cv_search_socket'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_socket="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_socket="none required" else --- 902,908 ---- socket() ; return 0; } EOF ! if { (eval echo configure:906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_socket="none required" else *************** *** 910,916 **** test "$ac_cv_search_socket" = "no" && for i in socket; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_socket="-l$i" break --- 924,930 ---- socket() ; return 0; } EOF ! if { (eval echo configure:928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_socket="-l$i" break *************** *** 945,958 **** save_LIBS="$LIBS" echo $ac_n "checking for library containing crypt""... $ac_c" 1>&6 ! echo "configure:949: checking for library containing crypt" >&5 if eval "test \"`echo '$''{'ac_cv_search_crypt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_crypt="no" cat > conftest.$ac_ext <&6 ! echo "configure:952: checking for library containing crypt" >&5 if eval "test \"`echo '$''{'ac_cv_search_crypt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_crypt="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_crypt="none required" else --- 966,972 ---- crypt() ; return 0; } EOF ! if { (eval echo configure:970: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_crypt="none required" else *************** *** 974,980 **** test "$ac_cv_search_crypt" = "no" && for i in crypt; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_crypt="-l$i" break --- 988,994 ---- crypt() ; return 0; } EOF ! if { (eval echo configure:992: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_crypt="-l$i" break *************** *** 1011,1017 **** fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:1015: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= --- 1014,1020 ---- fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ! echo "configure:1018: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= *************** *** 1026,1038 **** # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1036: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 1029,1041 ---- # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1039: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** *** 1043,1055 **** rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1053: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 1046,1058 ---- rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1056: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** *** 1060,1072 **** rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1070: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : --- 1063,1075 ---- rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1073: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : *************** *** 1094,1110 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:1098: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1108: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 1097,1113 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:1101: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1111: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 1134,1150 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:1138: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1148: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 1137,1153 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:1141: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1151: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 1174,1190 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:1178: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1188: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 1177,1193 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:1181: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1191: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 1214,1230 **** do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:1218: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1228: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 1217,1233 ---- do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:1221: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1231: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 1253,1264 **** for ac_func in index rindex do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:1257: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:1260: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 1284,1290 ---- ; return 0; } EOF ! if { (eval echo configure:1288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 1308,1319 **** for ac_func in seteuid setresuid do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:1312: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:1315: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 1339,1345 ---- ; return 0; } EOF ! if { (eval echo configure:1343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 1361,1367 **** done echo $ac_n "checking for Kerberos (/usr/kerberos)""... $ac_c" 1>&6 ! echo "configure:1365: checking for Kerberos (/usr/kerberos)" >&5 used_cache=yes if eval "test \"`echo '$''{'ac_cv_sys_kerberos'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1364,1370 ---- done echo $ac_n "checking for Kerberos (/usr/kerberos)""... $ac_c" 1>&6 ! echo "configure:1368: checking for Kerberos (/usr/kerberos)" >&5 used_cache=yes if eval "test \"`echo '$''{'ac_cv_sys_kerberos'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 1371,1382 **** if test -d /usr/kerberos ; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for ka_UserAuthenticateGeneral""... $ac_c" 1>&6 ! echo "configure:1375: checking for ka_UserAuthenticateGeneral" >&5 if eval "test \"`echo '$''{'ac_cv_func_ka_UserAuthenticateGeneral'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 echo $ac_n "checking for ka_UserAuthenticateGeneral""... $ac_c" 1>&6 ! echo "configure:1378: checking for ka_UserAuthenticateGeneral" >&5 if eval "test \"`echo '$''{'ac_cv_func_ka_UserAuthenticateGeneral'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_ka_UserAuthenticateGeneral=yes" else --- 1402,1408 ---- ; return 0; } EOF ! if { (eval echo configure:1406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_ka_UserAuthenticateGeneral=yes" else *************** *** 1433,1439 **** fi echo $ac_n "checking for AFS (/usr/afsws)""... $ac_c" 1>&6 ! echo "configure:1437: checking for AFS (/usr/afsws)" >&5 if eval "test \"`echo '$''{'ac_cv_sys_afs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1436,1442 ---- fi echo $ac_n "checking for AFS (/usr/afsws)""... $ac_c" 1>&6 ! echo "configure:1440: checking for AFS (/usr/afsws)" >&5 if eval "test \"`echo '$''{'ac_cv_sys_afs'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1441,1457 **** afs_avail=1 ac_safe=`echo "afs/kauth.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for afs/kauth.h""... $ac_c" 1>&6 ! echo "configure:1445: checking for afs/kauth.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1455: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 1444,1460 ---- afs_avail=1 ac_safe=`echo "afs/kauth.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for afs/kauth.h""... $ac_c" 1>&6 ! echo "configure:1448: checking for afs/kauth.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1458: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 1475,1491 **** ac_safe=`echo "afs/kautils.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for afs/kautils.h""... $ac_c" 1>&6 ! echo "configure:1479: checking for afs/kautils.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1489: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 1478,1494 ---- ac_safe=`echo "afs/kautils.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for afs/kautils.h""... $ac_c" 1>&6 ! echo "configure:1482: checking for afs/kautils.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1492: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 1509,1525 **** ac_safe=`echo "afs/auth.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for afs/auth.h""... $ac_c" 1>&6 ! echo "configure:1513: checking for afs/auth.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1523: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 1512,1528 ---- ac_safe=`echo "afs/auth.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for afs/auth.h""... $ac_c" 1>&6 ! echo "configure:1516: checking for afs/auth.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1526: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 1561,1567 **** echo "$ac_t""$ac_cv_sys_afs" 1>&6 echo $ac_n "checking for SSL in cache""... $ac_c" 1>&6 ! echo "configure:1565: checking for SSL in cache" >&5 found_ssl_in_cache="yes" if eval "test \"`echo '$''{'ac_cv_sys_ssl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 1564,1570 ---- echo "$ac_t""$ac_cv_sys_afs" 1>&6 echo $ac_n "checking for SSL in cache""... $ac_c" 1>&6 ! echo "configure:1568: checking for SSL in cache" >&5 found_ssl_in_cache="yes" if eval "test \"`echo '$''{'ac_cv_sys_ssl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** *** 1574,1582 **** if test "$found_ssl_in_cache" = "no"; then echo $ac_n "checking for include directory for ssl""... $ac_c" 1>&6 ! echo "configure:1578: checking for include directory for ssl" >&5 ac_find_inc_dir="" ! for dir in \ /usr \ /usr/include \ /usr/local \ --- 1577,1585 ---- if test "$found_ssl_in_cache" = "no"; then echo $ac_n "checking for include directory for ssl""... $ac_c" 1>&6 ! echo "configure:1581: checking for include directory for ssl" >&5 ac_find_inc_dir="" ! for dir in /usr/local/openssl \ /usr \ /usr/include \ /usr/local \ *************** *** 1587,1593 **** /opt/ssl \ /opt/local \ /opt/local/ssl \ ! /local/encap/ssl ; do if test -r $dir/ssl.h ; then ac_find_inc_dir=$dir break --- 1590,1596 ---- /opt/ssl \ /opt/local \ /opt/local/ssl \ ! /local/encap/ssl $USER_INCLUDE_DIRS ; do if test -r $dir/ssl.h ; then ac_find_inc_dir=$dir break *************** *** 1612,1620 **** if test "$ac_cv_sys_ssl" = "yes"; then echo $ac_n "checking for include directory for ssllib""... $ac_c" 1>&6 ! echo "configure:1616: checking for include directory for ssllib" >&5 ac_find_inc_dir="" ! for dir in \ /usr \ /usr/include \ /usr/local \ --- 1615,1623 ---- if test "$ac_cv_sys_ssl" = "yes"; then echo $ac_n "checking for include directory for ssllib""... $ac_c" 1>&6 ! echo "configure:1619: checking for include directory for ssllib" >&5 ac_find_inc_dir="" ! for dir in /usr/local/openssl \ /usr \ /usr/include \ /usr/local \ *************** *** 1625,1631 **** /opt/ssllib \ /opt/local \ /opt/local/ssllib \ ! /local/encap/ssllib ; do if test -r $dir/ssllib.h ; then ac_find_inc_dir=$dir break --- 1628,1634 ---- /opt/ssllib \ /opt/local \ /opt/local/ssllib \ ! /local/encap/ssllib $USER_INCLUDE_DIRS ; do if test -r $dir/ssllib.h ; then ac_find_inc_dir=$dir break *************** *** 1656,1662 **** if test "${enable_IWAY+set}" = set; then enableval="$enable_IWAY" echo $ac_n "checking for IWAY (/usr/local/iway)""... $ac_c" 1>&6 ! echo "configure:1660: checking for IWAY (/usr/local/iway)" >&5 if eval "test \"`echo '$''{'ac_cv_sys_iway'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1659,1665 ---- if test "${enable_IWAY+set}" = set; then enableval="$enable_IWAY" echo $ac_n "checking for IWAY (/usr/local/iway)""... $ac_c" 1>&6 ! echo "configure:1663: checking for IWAY (/usr/local/iway)" >&5 if eval "test \"`echo '$''{'ac_cv_sys_iway'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1678,1698 **** fi for ac_hdr in strings.h string.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:1686: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1696: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* --- 1681,1713 ---- fi + # Check whether --with-INCLUDE or --without-INCLUDE was given. + if test "${with_INCLUDE+set}" = set; then + withval="$with_INCLUDE" + : + else + with_include=none + fi + + if test "$with_include" != "none" ; then + # This variable is used in the FIND_USER_INCLUDE command + USER_INCLUDE_DIRS="$with_include" + fi for ac_hdr in strings.h string.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:1701: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:1711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* *************** *** 1721,1732 **** for ac_func in getopt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:1725: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:1740: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 1764,1770 ---- ; return 0; } EOF ! if { (eval echo configure:1768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 1776,1787 **** for ac_func in strerror do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:1780: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:1795: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 1819,1825 ---- ; return 0; } EOF ! if { (eval echo configure:1823: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 1830,1836 **** found_ps_funcs="yes" echo $ac_n "checking for posix signal in cache""... $ac_c" 1>&6 ! echo "configure:1834: checking for posix signal in cache" >&5 if eval "test \"`echo '$''{'ac_cv_check_posix_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1845,1851 ---- found_ps_funcs="yes" echo $ac_n "checking for posix signal in cache""... $ac_c" 1>&6 ! echo "configure:1849: checking for posix signal in cache" >&5 if eval "test \"`echo '$''{'ac_cv_check_posix_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1845,1856 **** for ac_func in sigaction sigemptyset sigaddset sigprocmask waitpid do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:1849: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:1864: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 1888,1894 ---- ; return 0; } EOF ! if { (eval echo configure:1892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 1919,1930 **** if test "$ac_cv_check_posix_signal" = "no" ; then echo $ac_n "checking for union wait""... $ac_c" 1>&6 ! echo "configure:1923: checking for union wait" >&5 if eval "test \"`echo '$''{'ac_cv_type_union_wait'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 1934,1945 ---- if test "$ac_cv_check_posix_signal" = "no" ; then echo $ac_n "checking for union wait""... $ac_c" 1>&6 ! echo "configure:1938: checking for union wait" >&5 if eval "test \"`echo '$''{'ac_cv_type_union_wait'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** *** 1933,1939 **** ; return 0; } EOF ! if { (eval echo configure:1937: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_union_wait=yes cat >> confdefs.h <<\EOF --- 1948,1954 ---- ; return 0; } EOF ! if { (eval echo configure:1952: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_union_wait=yes cat >> confdefs.h <<\EOF *************** *** 1953,1959 **** echo "$ac_t""$ac_cv_type_union_wait" 1>&6 echo $ac_n "checking for wait3 that fills in rusage""... $ac_c" 1>&6 ! echo "configure:1957: checking for wait3 that fills in rusage" >&5 if eval "test \"`echo '$''{'ac_cv_func_wait3_rusage'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 1968,1974 ---- echo "$ac_t""$ac_cv_type_union_wait" 1>&6 echo $ac_n "checking for wait3 that fills in rusage""... $ac_c" 1>&6 ! echo "configure:1972: checking for wait3 that fills in rusage" >&5 if eval "test \"`echo '$''{'ac_cv_func_wait3_rusage'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 1961,1967 **** ac_cv_func_wait3_rusage=no else cat > conftest.$ac_ext < #include --- 1976,1982 ---- ac_cv_func_wait3_rusage=no else cat > conftest.$ac_ext < #include *************** *** 1992,1998 **** } } EOF ! if { (eval echo configure:1996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_wait3_rusage=yes else --- 2007,2013 ---- } } EOF ! if { (eval echo configure:2011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_wait3_rusage=yes else *************** *** 2018,2029 **** for ac_func in setpgrp do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:2022: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:2037: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else --- 2061,2067 ---- ; return 0; } EOF ! if { (eval echo configure:2065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else *************** *** 2071,2077 **** done echo $ac_n "checking whether setpgrp takes no argument""... $ac_c" 1>&6 ! echo "configure:2075: checking whether setpgrp takes no argument" >&5 if eval "test \"`echo '$''{'ac_cv_func_setpgrp_void'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else --- 2086,2092 ---- done echo $ac_n "checking whether setpgrp takes no argument""... $ac_c" 1>&6 ! echo "configure:2090: checking whether setpgrp takes no argument" >&5 if eval "test \"`echo '$''{'ac_cv_func_setpgrp_void'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else *************** *** 2079,2085 **** { echo "configure: error: cannot check setpgrp if cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_setpgrp_void=no else --- 2114,2120 ---- } EOF ! if { (eval echo configure:2118: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_setpgrp_void=no else *************** *** 2130,2138 **** # the arguments *should* be. found_sockopt_type=0 echo $ac_n "checking if getsockopt wants socklen_t""... $ac_c" 1>&6 ! echo "configure:2134: checking if getsockopt wants socklen_t" >&5 cat > conftest.$ac_ext < #include --- 2145,2153 ---- # the arguments *should* be. found_sockopt_type=0 echo $ac_n "checking if getsockopt wants socklen_t""... $ac_c" 1>&6 ! echo "configure:2149: checking if getsockopt wants socklen_t" >&5 cat > conftest.$ac_ext < #include *************** *** 2141,2147 **** rc = getsockopt(skt,SOL_SOCKET,SO_SNDBUF,ssz,&dummy); ; return 0; } EOF ! if { (eval echo configure:2145: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* found_sockopt_type=1 else --- 2156,2162 ---- rc = getsockopt(skt,SOL_SOCKET,SO_SNDBUF,ssz,&dummy); ; return 0; } EOF ! if { (eval echo configure:2160: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* found_sockopt_type=1 else *************** *** 2160,2166 **** # This case is harder. size_t is a valid type, but it may not be the # one that getsockopt etc wants. echo $ac_n "checking if getsockopt wants size_t""... $ac_c" 1>&6 ! echo "configure:2164: checking if getsockopt wants size_t" >&5 found_sockopt_type=2 if test -z "$pac_TRY_COMPLILE_CLEAN" ; then --- 2175,2181 ---- # This case is harder. size_t is a valid type, but it may not be the # one that getsockopt etc wants. echo $ac_n "checking if getsockopt wants size_t""... $ac_c" 1>&6 ! echo "configure:2179: checking if getsockopt wants size_t" >&5 found_sockopt_type=2 if test -z "$pac_TRY_COMPLILE_CLEAN" ; then Index: mpid/server/configure.in =================================================================== RCS file: /home/MPI/cvsMaster/mpich/mpid/server/configure.in,v retrieving revision 1.13 retrieving revision 1.14 diff -c -r1.13 -r1.14 *** mpid/server/configure.in 2000/08/24 16:19:06 1.13 --- mpid/server/configure.in 2003/01/09 21:03:07 1.14 *************** *** 1,5 **** dnl ! dnl rcsid = $Header: /home/MPI/cvsMaster/mpich/mpid/server/configure.in,v 1.13 2000/08/24 16:19:06 gropp Exp $ dnl dnl Caching is usually WRONG for systems with cross-mounted file systems dnl (the cache file may correspond to a different system). Since configure --- 1,5 ---- dnl ! dnl rcsid = $Header: /home/MPI/cvsMaster/mpich/mpid/server/configure.in,v 1.14 2003/01/09 21:03:07 gropp Exp $ dnl dnl Caching is usually WRONG for systems with cross-mounted file systems dnl (the cache file may correspond to a different system). Since configure *************** *** 44,50 **** dnl HAVE_SSL AC_CHECK_SSL dnl IWAY ! AC_ARG_ENABLE(IWAY, --enable-IWAY support IWAYl,AC_CHECK_IWAY) AC_CHECK_HEADERS(strings.h string.h) AC_CHECK_FUNCS(getopt) AC_CHECK_FUNCS(strerror) --- 44,57 ---- dnl HAVE_SSL AC_CHECK_SSL dnl IWAY ! AC_ARG_ENABLE(IWAY,[ --enable-IWAY support IWAYl],AC_CHECK_IWAY) ! AC_ARG_WITH(INCLUDE, ! [ --with-include=dirs - add dirs to the list of directories to search for ! tools such as ssl ],,with_include=none) ! if test "$with_include" != "none" ; then ! # This variable is used in the FIND_USER_INCLUDE command ! USER_INCLUDE_DIRS="$with_include" ! fi AC_CHECK_HEADERS(strings.h string.h) AC_CHECK_FUNCS(getopt) AC_CHECK_FUNCS(strerror) Index: romio/Makefile.in =================================================================== RCS file: /home/MPI/cvsMaster/romio/Makefile.in,v retrieving revision 1.24 retrieving revision 1.25 diff -c -r1.24 -r1.25 *** romio/Makefile.in 2002/11/20 14:05:49 1.24 --- romio/Makefile.in 2003/01/10 16:25:55 1.25 *************** *** 7,13 **** NOF77 = @NOF77@ NOPROFILE = @NOPROFILE@ MPI = @MPI@ ! PREFIX = @PREFIX@ FROM_MPICH = @FROM_MPICH@ FROM_MPICH2 = @FROM_MPICH2@ BUILD_MPI_INFO = @BUILD_MPI_INFO@ --- 7,13 ---- NOF77 = @NOF77@ NOPROFILE = @NOPROFILE@ MPI = @MPI@ ! PREFIX = @prefix@ FROM_MPICH = @FROM_MPICH@ FROM_MPICH2 = @FROM_MPICH2@ BUILD_MPI_INFO = @BUILD_MPI_INFO@ Index: romio/configure =================================================================== RCS file: /home/MPI/cvsMaster/romio/configure,v retrieving revision 1.73 retrieving revision 1.78 diff -c -r1.73 -r1.78 *** romio/configure 2002/08/29 19:09:25 1.73 --- romio/configure 2003/01/13 21:55:58 1.78 *************** *** 256,262 **** -cflags=* | --cflags=*) package="`echo $arg|sed 's/-*cflags=//'`" USER_CFLAGS="$package" ! CFLAGS="$CFLAGS $package" ;; -fflags=* | --fflags=*) package="`echo $arg|sed 's/-*fflags=//'`" --- 256,262 ---- -cflags=* | --cflags=*) package="`echo $arg|sed 's/-*cflags=//'`" USER_CFLAGS="$package" ! CFLAGS="$package $CFLAGS" ;; -fflags=* | --fflags=*) package="`echo $arg|sed 's/-*fflags=//'`" *************** *** 2472,2483 **** { test -n "$verbose" && \ ! echo " defining" inline to be empty ! echo "#define" inline >> confdefs.h ! DEFS="$DEFS -Dinline=" ! SEDDEFS="${SEDDEFS}\${SEDdA}inline\${SEDdB}inline\${SEDdC}\${SEDdD} ! \${SEDuA}inline\${SEDuB}inline\${SEDuC}\${SEDuD} ! \${SEDeA}inline\${SEDeB}inline\${SEDeC}\${SEDeD} " } --- 2472,2483 ---- { test -n "$verbose" && \ ! echo " defining inline" ! echo "#define" inline 1 >> confdefs.h ! DEFS="$DEFS -Dinline=1" ! SEDDEFS="${SEDDEFS}\${SEDdA}inline\${SEDdB}inline\${SEDdC}1\${SEDdD} ! \${SEDuA}inline\${SEDuB}inline\${SEDuC}1\${SEDuD} ! \${SEDeA}inline\${SEDeB}inline\${SEDeC}1\${SEDeD} " } *************** *** 3824,3829 **** --- 3824,3830 ---- #include "confdefs.h" #pragma weak PFoo = Foo + extern int PFoo(int); int Foo(a) { return a; } int main() { return 0; } *************** *** 3879,3889 **** --- 3880,3892 ---- fi rm -f conftest* cat >>conftest1.c <>conftest2.c <>conftest1.c <>conftest2.c < test/tmp + mv test/tmp test/fcoll_test.f + sed 5d test/pfcoll_test.f > test/tmp + mv test/tmp test/fcoll_test.f + sed 5d test/fperf.f > test/tmp + mv test/tmp test/fperf.f + sed 5d test/fmisc.f > test/tmp + mv test/tmp test/fmisc.f fi if test $FROM_MPICH = 0 -a $FROM_MPICH2 = 0 ; then AC_MSG_RESULT([Configure done. Now type make]) Index: romio/adio/common/flatten.c =================================================================== RCS file: /home/MPI/cvsMaster/romio/adio/common/flatten.c,v retrieving revision 1.7 retrieving revision 1.9 diff -c -r1.7 -r1.9 *** romio/adio/common/flatten.c 2002/10/24 17:01:14 1.7 --- romio/adio/common/flatten.c 2003/01/08 19:31:22 1.9 *************** *** 1,6 **** /* -*- Mode: C; c-basic-offset:4 ; -*- */ /* ! * $Id: flatten.c,v 1.7 2002/10/24 17:01:14 gropp Exp $ * * Copyright (C) 1997 University of Chicago. * See COPYRIGHT notice in top-level directory. --- 1,6 ---- /* -*- Mode: C; c-basic-offset:4 ; -*- */ /* ! * $Id: flatten.c,v 1.9 2003/01/08 19:31:22 thakur Exp $ * * Copyright (C) 1997 University of Chicago. * See COPYRIGHT notice in top-level directory. *************** *** 91,96 **** --- 91,105 ---- MPI_Type_get_contents(datatype, nints, nadds, ntypes, ints, adds, types); switch (combiner) { + #ifdef MPICH2 + case MPI_COMBINER_DUP: + MPI_Type_get_envelope(types[0], &old_nints, &old_nadds, + &old_ntypes, &old_combiner); + ADIOI_Datatype_iscontig(types[0], &old_is_contig); + if ((old_combiner != MPI_COMBINER_NAMED) && (!old_is_contig)) + ADIOI_Flatten(types[0], flat, st_offset, curr_index); + break; + #endif case MPI_COMBINER_CONTIGUOUS: top_count = ints[0]; MPI_Type_get_envelope(types[0], &old_nints, &old_nadds, *************** *** 437,442 **** --- 446,461 ---- MPI_Type_get_contents(datatype, nints, nadds, ntypes, ints, adds, types); switch (combiner) { + #ifdef MPICH2 + case MPI_COMBINER_DUP: + MPI_Type_get_envelope(types[0], &old_nints, &old_nadds, + &old_ntypes, &old_combiner); + ADIOI_Datatype_iscontig(types[0], &old_is_contig); + if ((old_combiner != MPI_COMBINER_NAMED) && (!old_is_contig)) + count = ADIOI_Count_contiguous_blocks(types[0], curr_index); + else count = 1; + break; + #endif case MPI_COMBINER_CONTIGUOUS: top_count = ints[0]; MPI_Type_get_envelope(types[0], &old_nints, &old_nadds, Index: romio/adio/common/iscontig.c =================================================================== RCS file: /home/MPI/cvsMaster/romio/adio/common/iscontig.c,v retrieving revision 1.6 retrieving revision 1.7 diff -c -r1.6 -r1.7 *** romio/adio/common/iscontig.c 2002/11/16 20:27:46 1.6 --- romio/adio/common/iscontig.c 2003/01/07 21:31:16 1.7 *************** *** 1,6 **** /* -*- Mode: C; c-basic-offset:4 ; -*- */ /* ! * $Id: iscontig.c,v 1.6 2002/11/16 20:27:46 gropp Exp $ * * Copyright (C) 1997 University of Chicago. * See COPYRIGHT notice in top-level directory. --- 1,6 ---- /* -*- Mode: C; c-basic-offset:4 ; -*- */ /* ! * $Id: iscontig.c,v 1.7 2003/01/07 21:31:16 thakur Exp $ * * Copyright (C) 1997 University of Chicago. * See COPYRIGHT notice in top-level directory. *************** *** 11,17 **** #include "mpisgi2.h" #endif ! #if defined(MPICH) /* MPICH2 also provides this routine */ void MPIR_Datatype_iscontig(MPI_Datatype datatype, int *flag); --- 11,17 ---- #include "mpisgi2.h" #endif ! #if (defined(MPICH) || defined(MPICH2)) /* MPICH2 also provides this routine */ void MPIR_Datatype_iscontig(MPI_Datatype datatype, int *flag); Index: romio/adio/include/mpipr.h =================================================================== RCS file: /home/MPI/cvsMaster/romio/adio/include/mpipr.h,v retrieving revision 1.5 retrieving revision 1.6 diff -c -r1.5 -r1.6 *** romio/adio/include/mpipr.h 2002/11/15 16:26:23 1.5 --- romio/adio/include/mpipr.h 2003/01/07 21:31:22 1.6 *************** *** 1,5 **** /* -*- Mode: C; c-basic-offset:4 ; -*- */ ! /* $Id: mpipr.h,v 1.5 2002/11/15 16:26:23 gropp Exp $ * * (C) 2001 by Argonne National Laboratory. * See COPYRIGHT in top-level directory. --- 1,5 ---- /* -*- Mode: C; c-basic-offset:4 ; -*- */ ! /* $Id: mpipr.h,v 1.6 2003/01/07 21:31:22 thakur Exp $ * * (C) 2001 by Argonne National Laboratory. * See COPYRIGHT in top-level directory. *************** *** 331,342 **** #define MPI_Win_c2f PMPI_Win_c2f #undef MPI_Win_f2c #define MPI_Win_f2c PMPI_Win_f2c #undef MPI_Status_c2f #define MPI_Status_c2f PMPI_Status_c2f #undef MPI_Status_f2c #define MPI_Status_f2c PMPI_Status_f2c - */ #ifndef MPI_INFO_SRC /* everywhere except in info source directory */ #undef MPI_Info_create #define MPI_Info_create PMPI_Info_create --- 331,343 ---- #define MPI_Win_c2f PMPI_Win_c2f #undef MPI_Win_f2c #define MPI_Win_f2c PMPI_Win_f2c + */ #undef MPI_Status_c2f #define MPI_Status_c2f PMPI_Status_c2f #undef MPI_Status_f2c #define MPI_Status_f2c PMPI_Status_f2c + #ifndef MPI_INFO_SRC /* everywhere except in info source directory */ #undef MPI_Info_create #define MPI_Info_create PMPI_Info_create *************** *** 356,365 **** #define MPI_Info_dup PMPI_Info_dup #undef MPI_Info_free #define MPI_Info_free PMPI_Info_free ! #undef MPI_Info_c2f #define MPI_Info_c2f PMPI_Info_c2f #undef MPI_Info_f2c #define MPI_Info_f2c PMPI_Info_f2c #endif #ifdef MPIO_FORTRAN_SRC /* only in MPI-IO Fortran source directory */ --- 357,367 ---- #define MPI_Info_dup PMPI_Info_dup #undef MPI_Info_free #define MPI_Info_free PMPI_Info_free ! /* #undef MPI_Info_c2f #define MPI_Info_c2f PMPI_Info_c2f #undef MPI_Info_f2c #define MPI_Info_f2c PMPI_Info_f2c + */ #endif #ifdef MPIO_FORTRAN_SRC /* only in MPI-IO Fortran source directory */ Index: romio/test/Makefile.in =================================================================== RCS file: /home/MPI/cvsMaster/romio/test/Makefile.in,v retrieving revision 1.17 retrieving revision 1.19 diff -c -r1.17 -r1.19 *** romio/test/Makefile.in 2002/12/19 20:20:35 1.17 --- romio/test/Makefile.in 2003/01/13 15:06:50 1.19 *************** *** 1,7 **** CC = @TEST_CC@ F77 = @TEST_F77@ INCLUDE_DIR = @ROMIO_INCLUDE@ ! LIBS = @TEST_LIBNAME@ @MPI_LIB@ USER_CFLAGS = @USER_CFLAGS@ $(INCLUDE_DIR) USER_FFLAGS = @USER_FFLAGS@ $(INCLUDE_DIR) srcdir=@srcdir@ --- 1,7 ---- CC = @TEST_CC@ F77 = @TEST_F77@ INCLUDE_DIR = @ROMIO_INCLUDE@ ! LIBS = @TEST_LIBNAME@ @MPI_LIB@ ${LDFLAGS} ${LIBS} USER_CFLAGS = @USER_CFLAGS@ $(INCLUDE_DIR) USER_FFLAGS = @USER_FFLAGS@ $(INCLUDE_DIR) srcdir=@srcdir@ Index: romio/test/noncontig_coll2.c =================================================================== RCS file: /home/MPI/cvsMaster/romio/test/noncontig_coll2.c,v retrieving revision 1.5 retrieving revision 1.6 diff -c -r1.5 -r1.6 *** romio/test/noncontig_coll2.c 2003/01/02 23:32:27 1.5 --- romio/test/noncontig_coll2.c 2003/01/08 16:53:40 1.6 *************** *** 243,249 **** } /* chop off that last comma */ dest[strlen(dest) - 1] = '\0'; ! MPI_Bcast(dest, len+1, MPI_CHAR, 0, MPI_COMM_WORLD); } void reverse_str(int mynod, int len, ADIO_cb_name_array array, char *dest) { --- 243,249 ---- } /* chop off that last comma */ dest[strlen(dest) - 1] = '\0'; ! MPI_Bcast(dest, len, MPI_CHAR, 0, MPI_COMM_WORLD); } void reverse_str(int mynod, int len, ADIO_cb_name_array array, char *dest) { *************** *** 257,263 **** } } dest[strlen(dest) - 1] = '\0'; ! MPI_Bcast(dest, len+1, MPI_CHAR, 0, MPI_COMM_WORLD); } void reverse_alternating_str(int mynod, int len, ADIO_cb_name_array array, char *dest) --- 257,263 ---- } } dest[strlen(dest) - 1] = '\0'; ! MPI_Bcast(dest, len, MPI_CHAR, 0, MPI_COMM_WORLD); } void reverse_alternating_str(int mynod, int len, ADIO_cb_name_array array, char *dest) *************** *** 278,284 **** } } dest[strlen(dest) - 1] = '\0'; ! MPI_Bcast(dest, len+1, MPI_CHAR, 0, MPI_COMM_WORLD); } void simple_shuffle_str(int mynod, int len, ADIO_cb_name_array array, char *dest) --- 278,284 ---- } } dest[strlen(dest) - 1] = '\0'; ! MPI_Bcast(dest, len, MPI_CHAR, 0, MPI_COMM_WORLD); } void simple_shuffle_str(int mynod, int len, ADIO_cb_name_array array, char *dest) *************** *** 297,303 **** } } dest[strlen(dest) - 1] = '\0'; ! MPI_Bcast(dest, len+1, MPI_CHAR, 0, MPI_COMM_WORLD); } int main(int argc, char **argv) --- 297,303 ---- } } dest[strlen(dest) - 1] = '\0'; ! MPI_Bcast(dest, len, MPI_CHAR, 0, MPI_COMM_WORLD); } int main(int argc, char **argv) *************** *** 356,361 **** --- 356,362 ---- /* +1: space for either a , or \0 if last */ cb_config_len += strlen(array->names[i]) + 1; } + ++cb_config_len; } MPI_Bcast(&cb_config_len, 1, MPI_INT, 0, MPI_COMM_WORLD); if ( (cb_config_string = malloc(cb_config_len)) == NULL ) { Index: romio/util/romioinstall.in =================================================================== RCS file: /home/MPI/cvsMaster/romio/util/romioinstall.in,v retrieving revision 1.8 retrieving revision 1.9 diff -c -r1.8 -r1.9 *** romio/util/romioinstall.in 2001/07/13 12:59:29 1.8 --- romio/util/romioinstall.in 2003/01/10 16:23:33 1.9 *************** *** 11,17 **** # # in the top-level romio directory # ! PREFIX=@PREFIX@ ROMIO_HOME=@ROMIO_HOME@ ARCH=@ARCH@ RANLIB=@RANLIB@ --- 11,17 ---- # # in the top-level romio directory # ! PREFIX=@prefix@ ROMIO_HOME=@ROMIO_HOME@ ARCH=@ARCH@ RANLIB=@RANLIB@ *************** *** 38,43 **** --- 38,44 ---- MODE=0644 XMODE=0755 replace=1 + verbose=0 # Shell procedures to copy files and create directories # *************** *** 46,51 **** --- 47,55 ---- # replace #...# and @...@ in files CP=cp # + MkDir() { + if [ ! -e $1 ]; then mkdir $1 ; fi + } CopyFile() { if [ -z "$3" ] ; then mode=$MODE *************** *** 125,130 **** --- 129,135 ---- # Uninstall filename if [ -z "$UNINSTALLFILE" ] ; then UNINSTALLFILE="$sbindir/romiouninstall" + MkDir `dirname $UNINSTALLFILE` fi # LAM top-level switch to install or uninstall *************** *** 139,145 **** MkDir $docdir for file in COPYRIGHT README users-guide.ps.gz ; do CopyFile $ROMIO_HOME/$file $docdir ! fi echo "copying directory include to $includedir" MkDir $includedir --- 144,150 ---- MkDir $docdir for file in COPYRIGHT README users-guide.ps.gz ; do CopyFile $ROMIO_HOME/$file $docdir ! done echo "copying directory include to $includedir" MkDir $includedir Index: src/fortran/src/mpif77.in =================================================================== RCS file: /home/MPI/cvsMaster/mpich/src/fortran/src/mpif77.in,v retrieving revision 1.20 retrieving revision 1.21 diff -c -r1.20 -r1.21 *** src/fortran/src/mpif77.in 2002/12/02 23:23:25 1.20 --- src/fortran/src/mpif77.in 2003/01/09 21:54:19 1.21 *************** *** 339,345 **** # See the comment in mpicc about UseSharedLib # Also, don't use if the shared libraries don't exist yet # (because -lmpichfarg.a won't exist yet) ! if [ "$SHAREDKIND" != "ignore" -a $UseSharedLib = "yes" -a \ -s ${libdir}/lib${FLIBNAME}farg.a ] ; then # We also add a library containing MPI_Init and the routines # that it uses to call getarg/iarg. --- 339,349 ---- # See the comment in mpicc about UseSharedLib # Also, don't use if the shared libraries don't exist yet # (because -lmpichfarg.a won't exist yet) ! # ALSO, if sharedlibdir is the same as libdir, we must also add the ! # farg support library, since the linker is likely to prefer the ! # shared library to the unshared one. ! if [ "$SHAREDKIND" != "ignore" -a \ ! \( $UseSharedLib = "yes" -o "$sharedlibdir" = "$libdir" \) -a \ -s ${libdir}/lib${FLIBNAME}farg.a ] ; then # We also add a library containing MPI_Init and the routines # that it uses to call getarg/iarg. Index: src/pt2pt/test.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/src/pt2pt/test.c,v retrieving revision 1.9 retrieving revision 1.10 diff -c -r1.9 -r1.10 *** src/pt2pt/test.c 2002/03/15 18:51:55 1.9 --- src/pt2pt/test.c 2003/01/09 20:48:41 1.10 *************** *** 1,5 **** /* ! * $Id: test.c,v 1.9 2002/03/15 18:51:55 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. --- 1,5 ---- /* ! * $Id: test.c,v 1.10 2003/01/09 20:48:41 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. *************** *** 34,40 **** Output Parameter: + flag - true if operation completed (logical) ! - status - status object (Status). May be 'MPI_STATUS_NULL'. .N waitstatus --- 34,40 ---- Output Parameter: + flag - true if operation completed (logical) ! - status - status object (Status). May be 'MPI_STATUS_IGNORE'. .N waitstatus Index: src/pt2pt/testall.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/src/pt2pt/testall.c,v retrieving revision 1.25 retrieving revision 1.26 diff -c -r1.25 -r1.26 *** src/pt2pt/testall.c 2002/03/15 18:51:55 1.25 --- src/pt2pt/testall.c 2003/01/09 20:48:41 1.26 *************** *** 1,5 **** /* ! * $Id: testall.c,v 1.25 2002/03/15 18:51:55 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. --- 1,5 ---- /* ! * $Id: testall.c,v 1.26 2003/01/09 20:48:41 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. *************** *** 38,44 **** Output Parameters: + flag - (logical) - array_of_statuses - array of status objects (array of Status). May be ! 'MPI_STATUSES_NULL'. Notes: 'flag' is true only if all requests have completed. Otherwise, flag is --- 38,44 ---- Output Parameters: + flag - (logical) - array_of_statuses - array of status objects (array of Status). May be ! 'MPI_STATUSES_IGNORE'. Notes: 'flag' is true only if all requests have completed. Otherwise, flag is Index: src/pt2pt/testany.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/src/pt2pt/testany.c,v retrieving revision 1.18 retrieving revision 1.19 diff -c -r1.18 -r1.19 *** src/pt2pt/testany.c 2002/03/15 15:21:16 1.18 --- src/pt2pt/testany.c 2003/01/09 20:48:41 1.19 *************** *** 1,5 **** /* ! * $Id: testany.c,v 1.18 2002/03/15 15:21:16 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. --- 1,5 ---- /* ! * $Id: testany.c,v 1.19 2003/01/09 20:48:41 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. *************** *** 45,51 **** + index - index of operation that completed, or 'MPI_UNDEFINED' if none completed (integer) . flag - true if one of the operations is complete (logical) ! - status - status object (Status). May be 'MPI_STATUS_NULL'. .N waitstatus --- 45,51 ---- + index - index of operation that completed, or 'MPI_UNDEFINED' if none completed (integer) . flag - true if one of the operations is complete (logical) ! - status - status object (Status). May be 'MPI_STATUS_IGNORE'. .N waitstatus Index: src/pt2pt/testsome.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/src/pt2pt/testsome.c,v retrieving revision 1.13 retrieving revision 1.14 diff -c -r1.13 -r1.14 *** src/pt2pt/testsome.c 2002/03/15 15:21:16 1.13 --- src/pt2pt/testsome.c 2003/01/09 20:48:41 1.14 *************** *** 1,5 **** /* ! * $Id: testsome.c,v 1.13 2002/03/15 15:21:16 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. --- 1,5 ---- /* ! * $Id: testsome.c,v 1.14 2003/01/09 20:48:41 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. *************** *** 40,46 **** . array_of_indices - array of indices of operations that completed (array of integers) - array_of_statuses - array of status objects for ! operations that completed (array of Status). May be 'MPI_STATUSES_NULL'. .N waitstatus --- 40,46 ---- . array_of_indices - array of indices of operations that completed (array of integers) - array_of_statuses - array of status objects for ! operations that completed (array of Status). May be 'MPI_STATUSES_IGNORE'. .N waitstatus Index: src/pt2pt/wait.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/src/pt2pt/wait.c,v retrieving revision 1.8 retrieving revision 1.9 diff -c -r1.8 -r1.9 *** src/pt2pt/wait.c 2002/03/15 18:51:55 1.8 --- src/pt2pt/wait.c 2003/01/09 20:48:42 1.9 *************** *** 1,5 **** /* ! * $Id: wait.c,v 1.8 2002/03/15 18:51:55 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. --- 1,5 ---- /* ! * $Id: wait.c,v 1.9 2003/01/09 20:48:42 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. *************** *** 34,40 **** . request - request (handle) Output Parameter: ! . status - status object (Status) . May be 'MPI_STATUS_NULL'. .N waitstatus --- 34,40 ---- . request - request (handle) Output Parameter: ! . status - status object (Status) . May be 'MPI_STATUS_IGNORE'. .N waitstatus Index: src/pt2pt/waitall.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/src/pt2pt/waitall.c,v retrieving revision 1.23 retrieving revision 1.24 diff -c -r1.23 -r1.24 *** src/pt2pt/waitall.c 2002/11/27 19:58:17 1.23 --- src/pt2pt/waitall.c 2003/01/09 20:48:42 1.24 *************** *** 1,5 **** /* ! * $Id: waitall.c,v 1.23 2002/11/27 19:58:17 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. --- 1,5 ---- /* ! * $Id: waitall.c,v 1.24 2003/01/09 20:48:42 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. *************** *** 37,43 **** Output Parameter: . array_of_statuses - array of status objects (array of Status). May be ! 'MPI_STATUSES_NULL' .N waitstatus --- 37,43 ---- Output Parameter: . array_of_statuses - array of status objects (array of Status). May be ! 'MPI_STATUSES_IGNORE' .N waitstatus Index: src/pt2pt/waitany.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/src/pt2pt/waitany.c,v retrieving revision 1.19 retrieving revision 1.20 diff -c -r1.19 -r1.20 *** src/pt2pt/waitany.c 2002/11/27 19:58:17 1.19 --- src/pt2pt/waitany.c 2003/01/09 20:48:42 1.20 *************** *** 1,5 **** /* ! * $Id: waitany.c,v 1.19 2002/11/27 19:58:17 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. --- 1,5 ---- /* ! * $Id: waitany.c,v 1.20 2003/01/09 20:48:42 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. *************** *** 42,48 **** Output Parameters: + index - index of handle for operation that completed (integer). In the range '0' to 'count-1'. In Fortran, the range is '1' to 'count'. ! - status - status object (Status). May be 'MPI_STATUS_NULL'. Notes: If all of the requests are 'MPI_REQUEST_NULL', then 'index' is returned as --- 42,48 ---- Output Parameters: + index - index of handle for operation that completed (integer). In the range '0' to 'count-1'. In Fortran, the range is '1' to 'count'. ! - status - status object (Status). May be 'MPI_STATUS_IGNORE'. Notes: If all of the requests are 'MPI_REQUEST_NULL', then 'index' is returned as Index: src/pt2pt/waitsome.c =================================================================== RCS file: /home/MPI/cvsMaster/mpich/src/pt2pt/waitsome.c,v retrieving revision 1.13 retrieving revision 1.14 diff -c -r1.13 -r1.14 *** src/pt2pt/waitsome.c 2002/03/15 15:21:18 1.13 --- src/pt2pt/waitsome.c 2003/01/09 20:48:42 1.14 *************** *** 1,5 **** /* ! * $Id: waitsome.c,v 1.13 2002/03/15 15:21:18 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. --- 1,5 ---- /* ! * $Id: waitsome.c,v 1.14 2003/01/09 20:48:42 gropp Exp $ * * (C) 1993 by Argonne National Laboratory and Mississipi State University. * See COPYRIGHT in top-level directory. *************** *** 40,46 **** . array_of_indices - array of indices of operations that completed (array of integers) - array_of_statuses - array of status objects for ! operations that completed (array of Status). May be 'MPI_STATUSES_NULL'. Notes: The array of indicies are in the range '0' to 'incount - 1' for C and --- 40,46 ---- . array_of_indices - array of indices of operations that completed (array of integers) - array_of_statuses - array of status objects for ! operations that completed (array of Status). May be 'MPI_STATUSES_IGNORE'. Notes: The array of indicies are in the range '0' to 'incount - 1' for C and Index: util/findnosuccess2 =================================================================== RCS file: /home/MPI/cvsMaster/mpich/util/findnosuccess2,v retrieving revision 1.31 retrieving revision 1.32 diff -c -r1.31 -r1.32 *** util/findnosuccess2 2003/01/03 22:12:29 1.31 --- util/findnosuccess2 2003/01/09 20:48:56 1.32 *************** *** 90,95 **** --- 90,96 ---- '^added manifest', # java message 'Note: Some input files use', # java message 'Note: Recompile with -deprecation', # java message + 'Warning: JIT compiler', # java message '^[-\/A-Za-z0-9\._]*:\s*$', # icc echos file name! ); # pgCC echos file name! Index: util/mpicc.in =================================================================== RCS file: /home/MPI/cvsMaster/mpich/util/mpicc.in,v retrieving revision 1.43 retrieving revision 1.44 diff -c -r1.43 -r1.44 *** util/mpicc.in 2002/12/02 23:23:24 1.43 --- util/mpicc.in 2003/01/09 21:54:20 1.44 *************** *** 351,357 **** # Since that enviroment variable would then need to be set for all # hosts where the program might run (since rsh doesn't propagate # the environment), we don't make this the default. ! if [ "${SHAREDKIND}" != "ignore" -a $UseSharedLib = "yes" ] ; then clibpath="-L${sharedlibdir}" if [ -n "${SHARED_LIB_SEARCH_PATH_LEADER}" ] ; then clibpath="${SHARED_LIB_SEARCH_PATH_LEADER}${sharedlibdir} $clibpath" --- 351,358 ---- # Since that enviroment variable would then need to be set for all # hosts where the program might run (since rsh doesn't propagate # the environment), we don't make this the default. ! if [ "${SHAREDKIND}" != "ignore" -a \ ! \( $UseSharedLib = "yes" -o "$libdir" = "$sharedlibdir" \) ] ; then clibpath="-L${sharedlibdir}" if [ -n "${SHARED_LIB_SEARCH_PATH_LEADER}" ] ; then clibpath="${SHARED_LIB_SEARCH_PATH_LEADER}${sharedlibdir} $clibpath" Index: util/mpich-scyld.spec =================================================================== RCS file: /home/MPI/cvsMaster/mpich/util/mpich-scyld.spec,v retrieving revision 1.4 retrieving revision 1.5 diff -c -r1.4 -r1.5 *** util/mpich-scyld.spec 2003/01/05 14:54:17 1.4 --- util/mpich-scyld.spec 2003/01/07 21:32:55 1.5 *************** *** 242,246 **** --- 242,248 ---- /usr/man/man4/* %changelog + * Sat Jan 4 2003 William Gropp + - Update for 1.2.5 version number. * Thu Apr 26 2001 Frederick (Rick) A Niles - Initial version Index: util/mpich.spec =================================================================== RCS file: /home/MPI/cvsMaster/mpich/util/mpich.spec,v retrieving revision 1.3 retrieving revision 1.9 diff -c -r1.3 -r1.9 *** util/mpich.spec 2003/01/05 14:54:17 1.3 --- util/mpich.spec 2003/01/13 22:19:18 1.9 *************** *** 3,10 **** Version: 1.2.5 Vendor: Argonne National Laboratory Packager: William Gropp ! Copyright: BSD Group: System Environment/Libraries # # This spec file was inspired by spec files created by others for MPICH, # including the Scyld version, written by Frederick (Rick) Niles of Scyld, and --- 3,11 ---- Version: 1.2.5 Vendor: Argonne National Laboratory Packager: William Gropp ! Copyright: BSD-like Group: System Environment/Libraries + URL: http://www.mcs.anl.gov/mpi/mpich/ # # This spec file was inspired by spec files created by others for MPICH, # including the Scyld version, written by Frederick (Rick) Niles of Scyld, and *************** *** 12,18 **** # # Construct the source RPM with # mkdir ... ! # rpm mpich.spec .... # This spec file requires a suitably recent version of RPM. Is there an # RPM version tag that we should set? --- 13,19 ---- # # Construct the source RPM with # mkdir ... ! # rpm -ba mpich.spec .... # This spec file requires a suitably recent version of RPM. Is there an # RPM version tag that we should set? *************** *** 35,40 **** --- 36,43 ---- # clusters of SMPs. %define device ch_p4mpd %define other_device_opts %{nil} + # (warning: you cannot comment out a macro definition because they + # are apparently evaluated *before* comment processing (!!!) # for ch_p4: # define device ch_p4 # define other_device_opts -comm=shared *************** *** 53,61 **** --- 56,81 ---- # Define this to +pvfs if pvfs is available. %define other_file_systems %{nil} + # + # Define any other options for configure. For example, + # Turn off mpe + # define other_config_opts --without-mpe + # Turn off building the logfile viewers + # define other_config_opts -mpe-opts=--disable-viewers + %define other_config_opts %{nil} + + # + # Define the release value; this will be used, along with the compiler + # choice, to specify an actual Release name %define rel 1 # + # Set update_paths to 1 when building an RPM for distribution. Set it + # to 0 when building a test RPM that you want to tryout when a BUILDRROOT + # is specified (if update_paths is 1, then the MPICH commands that need + # to know the file locations are edited to remove the BUILDROOT). + %define update_paths 1 + # # These definitions are approximate. They are taken in part from the # mpich-scyld.spec file, though the choices here rely more on the MPICH # configure to find the correct options for the compilers. Not all have *************** *** 116,142 **** %endif Release: %{release} ! Source0: ftp://ftp.mcs.anl.gov/pub/mpi/%{name}-%{version}.tar.gz Buildroot: %{_tmppath}/%{name}-root #BuildRequires: %{c_compiler} Provides: libmpich.so.1 %define prefixdir %{?buildroot:%{buildroot}}%{_prefix} ! %define sharedir %{?buildroot:%{buildroot}}%{_datadir}/%{name} ! %define libdir %{?buildroot:%{buildroot}}%{_libdir}/%{name} ! %define mandir %{?buildroot:%{buildroot}}%{_mandir} ! ! %package devel ! Summary: Static libraries and header files for MPI. ! Group: Development/Libraries ! PreReq: %{name} = %{version} ! ! %description devel ! Static libraries and header files for MPI. ! ! %description ! An implementation of the Message-Passing Interface (MPI) by Argonne ! National Laboratory. %prep %setup -q -n mpich-%{version} --- 136,201 ---- %endif Release: %{release} ! Source0: ftp://ftp.mcs.anl.gov/pub/mpi/%{name}-%{version}-1.tar.gz Buildroot: %{_tmppath}/%{name}-root #BuildRequires: %{c_compiler} Provides: libmpich.so.1 + # Define alternate root directories for installation here + %define _prefix /usr/local/cca + %define _mandir /usr/local/cca/man + %define _docdir /usr/local/cca/doc + + %define fullname %{name}-%{version} + + # These directories are defined in terms of the above directories (-prefix + # and _mandir) + %define _webdir %{_prefix}/%{fullname}/www + + # + # If these are changed, make sure that you change the directories selected + # under the files step. + %define prefixdir %{?buildroot:%{buildroot}}%{_prefix} ! %define sharedir %{?buildroot:%{buildroot}}%{_datadir}/%{fullname} ! %define libdir %{?buildroot:%{buildroot}}%{_libdir}/%{fullname} ! ! # Choose whether the man pages go into a common directory or an mpich one ! # define mandir %{?buildroot:%{buildroot}}%{_mandir} ! %define mandir %{?buildroot:%{buildroot}}%{_mandir}/%{fullname} ! ! %define exec_prefix %{?buildroot:%{buildroot}}%{_exec_prefix}/%{fullname} ! %define bindir %{?buildroot:%{buildroot}}%{_bindir} ! %define sbindir %{?buildroot:%{buildroot}}%{_sbindir} ! %define datadir %{?buildroot:%{buildroot}}%{_datadir} ! %define docdir %{?buildroot:%{buildroot}}%{_docdir} ! ! # Choose whether you want all .h files in a common include dir or one ! # with the mpich name in it ! # define includedir %{?buildroot:%{buildroot}}%{_includedir} ! %define includedir %{?buildroot:%{buildroot}}%{_includedir}/%{fullname} ! ! %define sharedstatedir %{?buildroot:%{buildroot}}%{_sharedstatedir} ! %define webdir %{?buildroot:%{buildroot}}%{_webdir} ! ! #package devel ! #Summary: Static libraries and header files for MPI. ! #Group: Development/Libraries ! #PreReq: %{name} = %{version} ! ! #description devel ! #Static libraries and header files for MPI. ! ! %description ! MPICH is an open-source and portable implementation of the Message-Passing ! Interface (MPI, www.mpi-forum.org). MPI is a library for parallel programming, ! and is available on a wide range of parallel machines, from single laptops to ! massively parallel vector parallel processors. ! MPICH includes all of the routines in MPI 1.2, along with the I/O routines ! from MPI-2 and some additional routines from MPI-2, including those supporting ! MPI Info and some of the additional datatype constructors. MPICH was ! developed by Argonne National Laboratory. See www.mcs.anl.gov/mpi/mpich for ! more information. %prep %setup -q -n mpich-%{version} *************** *** 154,169 **** %build %setenvs ./configure --prefix=%{prefixdir} \ ! --exec-prefix=%{_exec_prefix} \ ! --bindir=%{_bindir} \ ! --sbindir=%{_sbindir} \ ! --datadir=%{_datadir}/mpich/ \ ! --includedir=%{_includedir} \ --libdir=%{libdir} \ ! --sharedstatedir=%{_sharedstatedir} \ --mandir=%{mandir} \ --with-device=%{device} --enable-sharedlib=%{libdir} \ ! %{other_device_opts} \ --with-romio=--file_system=nfs+ufs%{other_file_systems} %{__make} --- 213,230 ---- %build %setenvs ./configure --prefix=%{prefixdir} \ ! --exec-prefix=%{exec_prefix} \ ! --bindir=%{bindir} \ ! --sbindir=%{sbindir} \ ! --datadir=%{datadir}/%{fullname}/ \ ! --includedir=%{includedir} \ --libdir=%{libdir} \ ! --docdir=%{docdir} \ ! --sharedstatedir=%{sharedstatedir} \ --mandir=%{mandir} \ + --wwwdir=%{webdir} \ --with-device=%{device} --enable-sharedlib=%{libdir} \ ! %{other_device_opts} %{other_config_opts} \ --with-romio=--file_system=nfs+ufs%{other_file_systems} %{__make} *************** *** 184,189 **** --- 245,251 ---- rm -f %{sharedir}/examples/mpirun # Fix the paths in the shell scripts + if [ %{update_paths} = 1 ] ; then for i in `find %{sharedir} %{prefixdir}/bin -type f` do sed 's@%{?buildroot:%{buildroot}}@@g' $i > tmpfile *************** *** 194,200 **** chmod 0644 $i fi done ! %post -p /sbin/ldconfig %postun -p /sbin/ldconfig --- 256,262 ---- chmod 0644 $i fi done ! fi %post -p /sbin/ldconfig %postun -p /sbin/ldconfig *************** *** 207,227 **** %files %defattr(-,root,root) %doc README COPYRIGHT doc/mpichman-chp4.ps.gz doc/mpichman-chp4mpd.ps.gz ! %doc doc/mpichman-chshmem.ps.gz doc/mpeman.ps.gz ! /usr/bin/* ! #/usr/sbin/* ! /usr/lib/%{name}/*.so.* ! %{_mandir}/man1/* - %files devel - %defattr(-,root,root) - /usr/share/* - /usr/include/* - /usr/lib/%{name}/*.a - /usr/lib/%{name}/*.so - %{_mandir}/man3/* - %{_mandir}/man4/* %changelog ! * Thu Apr 25 2002 William (Bill) Gropp - Initial version --- 269,301 ---- %files %defattr(-,root,root) %doc README COPYRIGHT doc/mpichman-chp4.ps.gz doc/mpichman-chp4mpd.ps.gz ! %doc doc/mpichman-chshmem.ps.gz doc/mpeman.ps.gz ! %doc doc/mpeman.pdf doc/mpeman.ps.gz doc/mpiman.ps ! %doc doc/mpichman-chp4.pdf doc/mpichman-chp4mpd.pdf ! %doc doc/mpichman-chshmem.pdf ! %doc doc/mpichman-globus2.pdf doc/mpichman-globus2.ps.gz ! %{_bindir}/* ! %{_sbindir}/* ! #%{_webdir}/* ! %{_docdir}/* ! %{_libdir}/%{fullname}/*.so.* ! %{_libdir}/%{fullname}/*.a ! %{_libdir}/%{fullname}/*.so ! %{_libdir}/%{fullname}/mpe_prof.o ! %{_mandir}/%{fullname}/man1/* ! %{_mandir}/%{fullname}/man3/* ! %{_mandir}/%{fullname}/man4/* ! %{_mandir}/%{fullname}/mandesc ! %{_datadir}/%{fullname} ! %{_prefix}/share/upshot ! %{_prefix}/share/jumpshot-3 ! %{_prefix}/share/jumpshot-2 ! %{_exec_prefix}/%{fullname} ! %{_includedir}/%{fullname}/* %changelog ! * Fri Jan 10 2003 Willam Gropp ! - Update to MPICH 1.2.5 and fixed buildroot ! * Thu Apr 25 2002 William Gropp - Initial version Index: util/mpiinstall.in =================================================================== RCS file: /home/MPI/cvsMaster/mpich/util/mpiinstall.in,v retrieving revision 1.114 retrieving revision 1.115 diff -c -r1.114 -r1.115 *** util/mpiinstall.in 2002/08/12 15:55:38 1.114 --- util/mpiinstall.in 2003/01/13 17:26:02 1.115 *************** *** 186,192 **** # Uninstall filename if [ -z "$UNINSTALLFILE" ] ; then ! UNINSTALLFILE="$sbindir/mpiuninstall" fi if [ -z "$APREFIX" ] ; then --- 186,192 ---- # Uninstall filename if [ -z "$UNINSTALLFILE" ] ; then ! UNINSTALLFILE="$DESTDIR$sbindir/mpiuninstall" fi if [ -z "$APREFIX" ] ; then *************** *** 222,231 **** else mode=$3 fi ! if [ -d $2 ] ; then ! dest=$2/`basename $1` else ! dest=$2 fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi --- 222,232 ---- else mode=$3 fi ! dest=$DESTDIR$2 ! if [ -d $dest ] ; then ! dest=$dest/`basename $1` else ! dest=$dest fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi *************** *** 274,281 **** # Make the given directory. This handles building intermediate directories # as required, and maintains a list of created directories in dirlist. MkDir() { ! if [ ! -d $1 ] ; then ! dir_to_make=`echo $1 | sed 's%/% /%g'` path_to_date='' for path in $dir_to_make ; do path_to_date="$path_to_date$path" --- 275,282 ---- # Make the given directory. This handles building intermediate directories # as required, and maintains a list of created directories in dirlist. MkDir() { ! if [ ! -d $DESTDIR$1 ] ; then ! dir_to_make=`echo $DESTDIR$1 | sed 's%/% /%g'` path_to_date='' for path in $dir_to_make ; do path_to_date="$path_to_date$path" *************** *** 310,319 **** # perl program. mpireconfig can use FixupFile2 . # FixupFile() { ! if [ -d $2 ] ; then ! dest=$2/`basename $1` else ! dest=$2 fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi --- 311,321 ---- # perl program. mpireconfig can use FixupFile2 . # FixupFile() { ! dest=$DESTDIR$2 ! if [ -d $dest ] ; then ! dest=$dest/`basename $1` else ! dest=$dest fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi *************** *** 349,355 **** else mode=$3 fi ! $Show chmod $mode $2 rc=$? if [ $rc != 0 ] ; then echo "**Error setting mode on file $2**" --- 351,357 ---- else mode=$3 fi ! $Show chmod $mode $dest rc=$? if [ $rc != 0 ] ; then echo "**Error setting mode on file $2**" *************** *** 362,371 **** # This version merely replaces builddir versions with the master versions # FixupFile2() { ! if [ -d $2 ] ; then ! dest=$2/`basename $1` else ! dest=$2 fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi --- 364,374 ---- # This version merely replaces builddir versions with the master versions # FixupFile2() { ! dest=$DESTDIR$2 ! if [ -d $dest ] ; then ! dest=$dest/`basename $1` else ! dest=$dest fi if [ $replace = 0 -a -f $dest ] ; then if [ $verbose = 1 ] ; then echo "$dest exists; not changed" ; fi *************** *** 402,408 **** else mode=$3 fi ! $Show chmod $mode $2 rc=$? if [ $rc != 0 ] ; then echo "**Error setting mode on file $2**" --- 405,411 ---- else mode=$3 fi ! $Show chmod $mode $dest rc=$? if [ $rc != 0 ] ; then echo "**Error setting mode on file $2**" *************** *** 478,484 **** CopyFile util/mpichlib.conf ${sysconfdir} # # mpiman ! $Show /bin/rm -f $bindir/mpiman FixupFile2 bin/mpiman $bindir/mpiman $XMODE # # mpirun et al. This would be a good place to identify --- 481,487 ---- CopyFile util/mpichlib.conf ${sysconfdir} # # mpiman ! $Show /bin/rm -f $DESTDIR$bindir/mpiman FixupFile2 bin/mpiman $bindir/mpiman $XMODE # # mpirun et al. This would be a good place to identify *************** *** 511,517 **** CopyFile $top_srcdir/bin/tarch $bindir $XMODE fi # ! $Show /bin/rm -f $bindir/mpireconfig if [ $verbose = 1 ] ; then echo "Creating mpireconfig from util/mpireconfig.in" fi --- 514,520 ---- CopyFile $top_srcdir/bin/tarch $bindir $XMODE fi # ! $Show /bin/rm -f $DESTDIR$bindir/mpireconfig if [ $verbose = 1 ] ; then echo "Creating mpireconfig from util/mpireconfig.in" fi *************** *** 542,549 **** -e "s%^MPIF77=\([^/ ]*\)/.*\$%MPIF77=$bindir/mpif77%g" \ -e "s%^MPIF90=\([^/ ]*\)/.*\$%MPIF90=$bindir/mpif90%g" \ -e "s%^MPICPLUSPLUS=\([^/ ]*\)/.*\$%MPICPLUSPLUS=$bindir/mpiCC%g" \ ! config.status > ${bindir}/mpireconfig.dat ! chmod $XMODE ${bindir}/mpireconfig.dat echo "/bin/rm -f ${bindir}/mpireconfig.dat" >> $UNINSTALLFILE else echo "Construct new ${bindir}/mpireconfig.dat from config.status" --- 545,552 ---- -e "s%^MPIF77=\([^/ ]*\)/.*\$%MPIF77=$bindir/mpif77%g" \ -e "s%^MPIF90=\([^/ ]*\)/.*\$%MPIF90=$bindir/mpif90%g" \ -e "s%^MPICPLUSPLUS=\([^/ ]*\)/.*\$%MPICPLUSPLUS=$bindir/mpiCC%g" \ ! config.status > ${DESTDIR}${bindir}/mpireconfig.dat ! chmod $XMODE ${DESTDIR}${bindir}/mpireconfig.dat echo "/bin/rm -f ${bindir}/mpireconfig.dat" >> $UNINSTALLFILE else echo "Construct new ${bindir}/mpireconfig.dat from config.status" *************** *** 828,835 **** # # Handle the case of a weak-symbol profiling library ! if [ ! -s $libdir/libp@MPILIBNAME@.a ] ; then ! (cd $libdir ; ln -s lib@MPILIBNAME@.a libp@MPILIBNAME@.a ) echo "/bin/rm -f $libdir/libp@MPILIBNAME@.a" >> $UNINSTALLFILE fi # Message queue routine for debuggers must be built with the proper prefix. --- 831,838 ---- # # Handle the case of a weak-symbol profiling library ! if [ ! -s $DESTDIR$libdir/libp@MPILIBNAME@.a ] ; then ! (cd $DESTDIR$libdir ; ln -s lib@MPILIBNAME@.a libp@MPILIBNAME@.a ) echo "/bin/rm -f $libdir/libp@MPILIBNAME@.a" >> $UNINSTALLFILE fi # Message queue routine for debuggers must be built with the proper prefix. *************** *** 968,978 **** # prefix=@prefix@ when ever prefix= starts in the first column (!) # It also does this with exec_prefix (!!) prefix=$APREFIX ! (cd $prefix/examples ; $bindir/mpireconfig Makefile ) echo "(cd $prefix/examples ; $MAKE clean)" >> $UNINSTALLFILE echo "/bin/rm -f $prefix/examples/Makefile" >> $UNINSTALLFILE prefix=$Savevar ! CopyFile $prefix/examples/Makefile $datadir/Makefile.sample CopyFile $top_srcdir/installtest/cpi.c $prefix/examples CopyFile $top_srcdir/installtest/cpip.c $prefix/examples CopyFile $top_srcdir/installtest/cpilog.c $prefix/examples --- 971,981 ---- # prefix=@prefix@ when ever prefix= starts in the first column (!) # It also does this with exec_prefix (!!) prefix=$APREFIX ! (cd $DESTDIR$prefix/examples ; $DESTDIR$bindir/mpireconfig Makefile ) echo "(cd $prefix/examples ; $MAKE clean)" >> $UNINSTALLFILE echo "/bin/rm -f $prefix/examples/Makefile" >> $UNINSTALLFILE prefix=$Savevar ! CopyFile $DESTDIR$prefix/examples/Makefile $datadir/Makefile.sample CopyFile $top_srcdir/installtest/cpi.c $prefix/examples CopyFile $top_srcdir/installtest/cpip.c $prefix/examples CopyFile $top_srcdir/installtest/cpilog.c $prefix/examples *************** *** 990,1004 **** CopyFile $top_srcdir/installtest/README $prefix/examples # # Test build the examples ! $Show "(cd $prefix/examples ; /bin/rm -f mpirun ; \ ln -s ../bin/mpirun mpirun )" echo "/bin/rm -f $prefix/examples/mpirun" >> $UNINSTALLFILE # echo "About to run installation test..." ! $Show "(cd $prefix/examples; $MAKE all ; $MAKE clean )" ! if [ @SHAREDKIND@ != "ignore" ] ; then echo "About to run installation test for shared libraries ..." ! $Show "(cd $prefix/examples; MPICH_USE_SHLIB="yes"; export MPICH_USE_SHLIB; $MAKE all ; $MAKE clean )" fi # # This SHOULD use mpireconfig... --- 993,1010 ---- CopyFile $top_srcdir/installtest/README $prefix/examples # # Test build the examples ! $Show "(cd $DESTDIR$prefix/examples ; /bin/rm -f mpirun ; \ ln -s ../bin/mpirun mpirun )" echo "/bin/rm -f $prefix/examples/mpirun" >> $UNINSTALLFILE # echo "About to run installation test..." ! if [ "x$DESTDIR" = "x" ]; then ! # only works when DESTDIR is blank, and installing on final location. ! $Show "(cd $DESTDIR$prefix/examples; $MAKE all ; $MAKE clean )" ! if [ @SHAREDKIND@ != "ignore" ] ; then echo "About to run installation test for shared libraries ..." ! $Show "(cd $DESTDIR$prefix/examples; MPICH_USE_SHLIB="yes"; export MPICH_USE_SHLIB; $MAKE all ; $MAKE clean )" ! fi fi # # This SHOULD use mpireconfig... *************** *** 1048,1054 **** echo "if [ -d $dir ] ; then rmdir $dir ; fi" >> $UNINSTALLFILE done # ! echo installed MPICH in $prefix echo $UNINSTALLFILE may be used to remove the installation. # if [ $errs -gt 0 ] ; then --- 1054,1060 ---- echo "if [ -d $dir ] ; then rmdir $dir ; fi" >> $UNINSTALLFILE done # ! echo installed MPICH in $prefix echo $UNINSTALLFILE may be used to remove the installation. # if [ $errs -gt 0 ] ; then Index: util/mpirun_dbg.totalview.in =================================================================== RCS file: /home/MPI/cvsMaster/mpich/util/mpirun_dbg.totalview.in,v retrieving revision 1.4 retrieving revision 1.5 diff -c -r1.4 -r1.5 *** util/mpirun_dbg.totalview.in 2001/12/05 15:47:34 1.4 --- util/mpirun_dbg.totalview.in 2003/01/13 18:46:26 1.5 *************** *** 38,42 **** --- 38,52 ---- # Note that this is run from within the mpirun.ch_p4 script only (!), so # the argument list is p4 specific. FIX ME! # + # mpirun.ch_p4 exports nolocal and machinehead if not a local run. + if [ "$nolocal" = 1 ] ; then + # Note that mpirun.ch_p4 exports P4_RSHCOMMAND + rshcommand=${P4_RSHCOMMAND-ssh} + if [ "$rshcommand" = "ssh" ] ; then + doitall="$doitall $rshcommand -X $machinehead" + else + doitall="$doitall $rshcommand env DISPLAY=$DISPLAY" + fi + fi $doitall $tvcommand $prognamemain -a $cmdLineArgs -p4pg $p4pgfile -p4wd $p4workdir -mpichtv .