File pvm-3.4.5.dif of Package pvm
--- Makefile
+++ Makefile
@@ -6,7 +6,8 @@
SHELL = /bin/sh
-AIMKSTR = -here -f ./conf/`./lib/pvmtmparch`.def -f ./Makefile.aimk
+ARCH = $(shell ./lib/pvmtmparch)
+AIMKSTR = -here -f ./conf/$(ARCH).def -f ./Makefile.aimk
default:
./lib/aimk $(AIMKSTR) default
--- conf/LINUXPPC64.def
+++ conf/LINUXPPC64.def
@@ -0,0 +1,24 @@
+#
+# Notes on readline Usage:
+#
+# If your Linux system has readline, then you may append the
+# following flags to the defines below:
+#
+# ARCHCFLAGS = . . . -DHASREADLINE
+# ARCHLIB = . . . -lreadline
+#
+# and recompile PVM.
+#
+# On some Linux systems, readline requires ncurses, so you
+# must also add "-lncurses" to the ARCHLIB define.
+#
+ARCHCFLAGS = -DRSHCOMMAND=\"/usr/bin/rsh\" \
+ -DNEEDENDIAN -DFDSETNOTSTRUCT -DHASERRORVARS -DNOTMPNAM \
+ -DHASREADLINE
+ARCHDLIB =
+ARCHDOBJ =
+ARCHLIB = -lreadline -lncurses
+HASRANLIB = t
+AR = ar
+PVM_ARCH = LINUXPPC64
+MAKE = make
--- conf/LINUXPPC64.m4
+++ conf/LINUXPPC64.m4
@@ -0,0 +1,19 @@
+divert(-1)
+undefine(`len')
+#
+# append an underscore to FORTRAN function names
+#
+define(`FUNCTION',`$1_')
+#
+# FORTRAN character strings are passed as follows:
+# a pointer to the base of the string is passed in the normal
+# argument list, and the length is passed by value as an extra
+# argument, after all of the other arguments.
+#
+define(`ARGS',`($1`'undivert(1))')
+define(`SAVE',`divert(1)$1`'divert(0)')
+define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
+define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
+define(`STRING_LEN',`$1_len')
+define(`STRING_PTR',`$1_ptr')
+divert(0)
--- conf/LINUXS390.def
+++ conf/LINUXS390.def
@@ -0,0 +1,24 @@
+#
+# Notes on readline Usage:
+#
+# If your Linux system has readline, then you may append the
+# following flags to the defines below:
+#
+# ARCHCFLAGS = . . . -DHASREADLINE
+# ARCHLIB = . . . -lreadline
+#
+# and recompile PVM.
+#
+# On some Linux systems, readline requires ncurses, so you
+# must also add "-lncurses" to the ARCHLIB define.
+#
+ARCHCFLAGS = -DRSHCOMMAND=\"/usr/bin/rsh\" \
+ -DHASSTDLIB -DNEEDENDIAN -DFDSETNOTSTRUCT \
+ -DHASERRORVARS -DHASREADLINE -DNOTMPNAM
+ARCHDLIB =
+ARCHDOBJ =
+ARCHLIB = -lreadline -lncurses
+HASRANLIB = t
+AR = ar
+PVM_ARCH = LINUXS390
+MAKE = make
--- conf/LINUXS390.m4
+++ conf/LINUXS390.m4
@@ -0,0 +1,19 @@
+divert(-1)
+undefine(`len')
+#
+# append an underscore to FORTRAN function names
+#
+define(`FUNCTION',`$1_')
+#
+# FORTRAN character strings are passed as follows:
+# a pointer to the base of the string is passed in the normal
+# argument list, and the length is passed by value as an extra
+# argument, after all of the other arguments.
+#
+define(`ARGS',`($1`'undivert(1))')
+define(`SAVE',`divert(1)$1`'divert(0)')
+define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
+define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
+define(`STRING_LEN',`$1_len')
+define(`STRING_PTR',`$1_ptr')
+divert(0)
--- lib/aimk
+++ lib/aimk
@@ -36,12 +36,20 @@
done
case "x$PVM_ROOT" in x )
-# if [ -d $HOME/pvm3 ]; then
-# PVM_ROOT=$HOME/pvm3
-# else
+ if [ -d /usr/lib/pvm3 ]; then
+ PVM_ROOT=/usr/lib/pvm3
+ elif [ -d /usr/share/pvm3 ]; then
+ PVM_ROOT=/usr/share/pvm3
+ elif [ -d /usr/local/lib/pvm3 ]; then
+ PVM_ROOT=/usr/local/lib/pvm3
+ elif [ -d /usr/pvm/pvm3 ]; then
+ PVM_ROOT=/usr/pvm/pvm3
+ elif [ -d $HOME/pvm3 ]; then
+ PVM_ROOT=$HOME/pvm3
+ else
echo aimk: PVM_ROOT not defined >&2
exit 1
-# fi
+ fi
;; esac
case "x$PVM_ARCH" in x | xUNKNOWN )
--- lib/pvm
+++ lib/pvm
@@ -22,13 +22,21 @@
if [ -d $PVM_ROOT ]; then
export PVM_ROOT
else
- if [ -d $HOME/pvm3 ]; then
+ if [ -d /usr/lib/pvm3 ]; then
+ PVM_ROOT=/usr/lib/pvm3
+ elif [ -d /usr/share/pvm3 ]; then
+ PVM_ROOT=/usr/share/pvm3
+ elif [ -d /usr/local/lib/pvm3 ]; then
+ PVM_ROOT=/usr/local/lib/pvm3
+ elif [ -d /usr/pvm/pvm3 ]; then
+ PVM_ROOT=/usr/pvm/pvm3
+ elif [ -d $HOME/pvm3 ]; then
PVM_ROOT=$HOME/pvm3
- export PVM_ROOT
else
echo pvm: PVM_ROOT not defined >&2
exit 1
fi
+ export PVM_ROOT
fi
;; esac
--- lib/pvmd
+++ lib/pvmd
@@ -13,25 +13,33 @@
# 03 Jun 1994 Manchek
#
+
case "x$PVM_ROOT" in x )
case "$0" in
/*) PVM_ROOT="$0" ;;
*) PVM_ROOT=`pwd`/"$0" ;;
esac
- PVM_ROOT=`echo "$PVM_ROOT" | sed -e 's/\/lib\/pvmd//'`
+ PVM_ROOT=`echo "$PVM_ROOT" | sed -e 's/\/lib\/pvm//'`
if [ -d $PVM_ROOT ]; then
export PVM_ROOT
else
- if [ -d $HOME/pvm3 ]; then
+ if [ -d /usr/lib/pvm3 ]; then
+ PVM_ROOT=/usr/lib/pvm3
+ elif [ -d /usr/share/pvm3 ]; then
+ PVM_ROOT=/usr/share/pvm3
+ elif [ -d /usr/local/lib/pvm3 ]; then
+ PVM_ROOT=/usr/local/lib/pvm3
+ elif [ -d /usr/pvm/pvm3 ]; then
+ PVM_ROOT=/usr/pvm/pvm3
+ elif [ -d $HOME/pvm3 ]; then
PVM_ROOT=$HOME/pvm3
- export PVM_ROOT
else
- echo pvmd: PVM_ROOT not defined >&2
+ echo pvm: PVM_ROOT not defined >&2
exit 1
fi
+ export PVM_ROOT
fi
;; esac
-
#
# these lines let you set environment variables on systems
# where a shell profile doesn't get read when rshing in.
--- lib/wrapper
+++ lib/wrapper
@@ -0,0 +1,84 @@
+#! /bin/sh
+#
+# Wrapper for pvm binaries on various OS systems
+# Install this as e.g. pvmfoo in /usr/bin/ and this
+# script tries to start
+#
+# $PVM_ROOT/bin/$PVM_ARCH/pvmfoo
+# $PVM_ROOT/lib/$PVM_ARCH/pvmfoo
+#
+# Adapted from the pvm script for SuSE Linux: <werner@suse.de>
+#
+
+wrapped="`basename $0`"
+
+if test -z "$PVM_ROOT"; then
+ case "$0" in
+ /*) PVM_ROOT="$0" ;;
+ *) PVM_ROOT="`pwd`/$0" ;;
+ esac
+ PVM_ROOT="`echo \"$PVM_ROOT\" | sed -e \"s:/lib/${wrapped}::\"`"
+ if [ -d $PVM_ROOT ]; then
+ export PVM_ROOT
+ else
+ if test -d /usr/lib/pvm3 ; then
+ PVM_ROOT=/usr/lib/pvm3
+ elif test -d /usr/share/pvm3 ; then
+ PVM_ROOT=/usr/share/pvm3
+ elif test -d /usr/local/lib/pvm3 ; then
+ PVM_ROOT=/usr/local/lib/pvm3
+ elif test -d /usr/pvm/pvm3 ; then
+ PVM_ROOT=/usr/pvm/pvm3
+ elif test -d $HOME/pvm3 ; then
+ PVM_ROOT=$HOME/pvm3
+ else
+ echo pvm: PVM_ROOT not defined >&2
+ exit 1
+ fi
+ export PVM_ROOT
+ fi
+fi
+
+#
+# these lines let you set environment variables on systems
+# where a shell profile doesn't get read when rshing in.
+#
+if test -f $PVM_ROOT/.pvmprofile ; then
+ . $PVM_ROOT/.pvmprofile
+fi
+if test -f $HOME/.pvmprofile ; then
+ . $HOME/.pvmprofile
+fi
+
+if test -z "$PVM_ARCH" -o "$PVM_ARCH" = "UNKNOWN" ; then
+ PVM_ARCH="`$PVM_ROOT/lib/pvmgetarch`"
+ if test -z "$PVM_ARCH"; then
+ echo pvm: can\'t set arch >&2
+ exit 1
+ fi
+fi
+
+if test "$1" = "-exe" ; then
+ sfx=".exe"
+ shift
+else
+ sfx=""
+fi
+
+err=""
+for d in bin lib ; do
+ program="${PVM_ROOT}/${d}/${PVM_ARCH}/${wrapped}${sfx}"
+ if test -x ${program} ; then
+ export PVM_ARCH
+ exec ${program} $@
+ exit 1
+ fi
+ err="$program $err"
+done
+
+for p in $err ; do
+ echo "${wrapped}: $p doesn't exist." >&2
+done
+echo "Make sure PVM is built and PVM_ROOT is set correctly" >&2
+exit 1
+
--- lib/xpvm
+++ lib/xpvm
@@ -14,22 +14,31 @@
# 11 May 1995 Manchek, from Convex version
#
+
case "x$PVM_ROOT" in x )
case "$0" in
/*) PVM_ROOT="$0" ;;
*) PVM_ROOT=`pwd`/"$0" ;;
esac
- PVM_ROOT=`echo "$PVM_ROOT" | sed -e 's/\/lib\/xpvm//'`
+ PVM_ROOT=`echo "$PVM_ROOT" | sed -e 's/\/lib\/pvm//'`
if [ -d $PVM_ROOT ]; then
export PVM_ROOT
else
- if [ -d $HOME/pvm3 ]; then
+ if [ -d /usr/lib/pvm3 ]; then
+ PVM_ROOT=/usr/lib/pvm3
+ elif [ -d /usr/share/pvm3 ]; then
+ PVM_ROOT=/usr/share/pvm3
+ elif [ -d /usr/local/lib/pvm3 ]; then
+ PVM_ROOT=/usr/local/lib/pvm3
+ elif [ -d /usr/pvm/pvm3 ]; then
+ PVM_ROOT=/usr/pvm/pvm3
+ elif [ -d $HOME/pvm3 ]; then
PVM_ROOT=$HOME/pvm3
- export PVM_ROOT
else
- echo xpvm: PVM_ROOT not defined >&2
+ echo pvm: PVM_ROOT not defined >&2
exit 1
fi
+ export PVM_ROOT
fi
;; esac
--- man/man1/pvm_intro.1
+++ man/man1/pvm_intro.1
@@ -130,6 +130,12 @@
LINUXSPARC
Sparc running Linux
.TP
+LINUX64
+IA64 running Linux
+.TP
+LINUXS390
+S390 running Linux
+.TP
M88K
Motorola M88100 running Real/IX
.TP
--- shmd/sem.c
+++ shmd/sem.c
@@ -16,7 +16,7 @@
#include <unistd.h> /* needed for usleep */
#include <stdio.h>
-#ifdef XXX_IMA_LINUX
+#ifdef LINUX
/* Seems to be O.K. on latest Linux systems now. JAK - 9/25/01 */
union semun forth_arg; /* XXXX optional under all OSs except Linux ! */
#endif
@@ -46,7 +46,7 @@
int sem_is (int sem, int n)
{
-#ifdef XXX_IMA_LINUX
+#ifdef LINUX
/* Seems to be O.K. on latest Linux systems now. JAK - 9/25/01 */
return (semctl( sem, n, GETVAL, forth_arg));
#else
@@ -82,7 +82,7 @@
if((semid=semget (k, n, 0)) !=-1) {
printf("[init_sem] sem key %lx exists with id of %d\n",
(long) k, semid);
-#ifdef XXX_IMA_LINUX
+#ifdef LINUX
/* Seems to be O.K. on latest Linux systems now. JAK - 9/25/01 */
semctl (semid, 0, IPC_RMID, forth_arg); /* existing sem destroy */
#else
@@ -106,7 +106,7 @@
void del_sem (int semid)
{
-#ifdef XXX_IMA_LINUX
+#ifdef LINUX
/* Seems to be O.K. on latest Linux systems now. JAK - 9/25/01 */
semctl (semid, 0, IPC_RMID, forth_arg); /* existing sem destroy */
#else
--- src/Makefile.aimk
+++ src/Makefile.aimk
@@ -74,6 +74,8 @@
LIBPREFIX = lib
LIBPVM = $(LIBPREFIX)pvm3
+LIBVERSION = 3
+SHLIBPVM = -shared -Wl,-soname,$(LIBPVM).so.$(LIBVERSION)
#
# GNU Regular Expression Defines - set if needed
@@ -212,7 +214,7 @@
OS2TARGETS = $(LIBDIR)/pvmd3-os2 $(LIBDIR)/lib-os2
-all: pvmd3$(EXESFX) $(LIBPVM).a
+all: pvmd3$(EXESFX) $(LIBPVM).a $(LIBPVM).so
all-shm: pvmd3-shm lib-shm $(LIBPVM)s.a
@@ -222,7 +224,7 @@
all-os2: pvmd3-os2 lib-os2
-install: $(LIBDIR) $(LIBDIR)/pvmd3$(EXESFX) $(LIBDIR)/$(LIBPVM).a
+install: $(LIBDIR) $(LIBDIR)/pvmd3$(EXESFX) $(LIBDIR)/$(LIBPVM).a $(LIBDIR)/$(LIBPVM).so
install-shm: $(LIBDIR) $(SHMEMTARGETS)
@@ -243,6 +245,9 @@
$(LIBDIR)/$(LIBPVM).a: $(LIBPVM).a
cp $(LIBPVM).a $(LIBDIR)
+$(LIBDIR)/$(LIBPVM).so: $(LIBPVM).so
+ cp $(LIBPVM).so $(LIBDIR)
+
# libdir shm pvmd3 & libpvm3*.a
$(LIBDIR)/pvmd3-shm: pvmd3-shm
@@ -288,10 +293,22 @@
$(LOPT) $(ARCHDLIB)
$(LIBPVM).a: $(REGEXCONF) $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
- rm -f $(LIBPVM).a
+ @echo -------------------------------
+ @echo --- Building static Library ---
+ @echo -------------------------------
+ rm -f $(LIBPVM).a $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ) $(REGEXDIR)/pvmregex.o $(REGEXDIR)/regex.o
+ $(MAKE) CFLOPTS="$(CFLOPTS)" $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
$(AR) cr $(LIBPVM).a $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
case x$(HASRANLIB) in xt ) echo ranlib; ranlib $(LIBPVM).a ;; esac
+$(LIBPVM).so: regexconfig
+ @echo -------------------------------
+ @echo --- Building shared Library ---
+ @echo -------------------------------
+ rm -f $(LIBPVM).so $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ) $(REGEXDIR)/pvmregex.o $(REGEXDIR)/regex.o
+ $(MAKE) CFLOPTS="-fPIC $(CFLOPTS)" $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
+ $(CC) $(SHLIBPVM) -o $(LIBPVM).so $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ) -lc
+
# shm pvmd3 & libpvm3*.a
pvmd3-shm: $(REGEXCONF) $(DOBJ) $(SHMEMDOBJ)
--- src/patch4linux
+++ src/patch4linux
@@ -0,0 +1,89 @@
+--- Makefile
++++ Makefile 2000/02/22 16:08:17
+@@ -56,6 +56,8 @@
+ # REGEXCONF, REGEXCONFOS2, REGEXOBJS
+ #
+
++include $(PVM_ROOT)/conf/$(PVM_ARCH).def
++
+ SHELL = /bin/sh
+ PVMDIR = ../..
+ SDIR = $(PVMDIR)/src
+@@ -73,19 +75,21 @@
+
+ LIBPREFIX = lib
+ LIBPVM = $(LIBPREFIX)pvm3
++LIBVERSION = 3
++SHLIBPVM = -shared -Wl,-soname,$(LIBPVM).so.$(LIBVERSION)
+
+ #
+ # GNU Regular Expression Defines - set if needed
+ #
+
+-REGEXCONF =
+-#REGEXCONF = regexconfig
++REGEXCONF =
++#REGEXCONF = regexconfig
+
+ REGEXCONFOS2 =
+ #REGEXCONFOS2 = regexconfig-os2
+
+-REGEXOBJS =
+-#REGEXOBJS = pvmregex.o regex.o
++REGEXOBJS =
++#REGEXOBJS = pvmregex.o regex.o
+
+ #
+ # PVM Daemon & Library Objects
+@@ -211,7 +215,7 @@
+
+ OS2TARGETS = $(LIBDIR)/pvmd3-os2 $(LIBDIR)/lib-os2
+
+-all: pvmd3$(EXESFX) $(LIBPVM).a
++all: pvmd3$(EXESFX) $(LIBPVM).a $(LIBPVM).so
+
+ all-shm: pvmd3-shm lib-shm $(LIBPVM)s.a
+
+@@ -221,7 +225,7 @@
+
+ all-os2: pvmd3-os2 lib-os2
+
+-install: $(LIBDIR) $(LIBDIR)/pvmd3$(EXESFX) $(LIBDIR)/$(LIBPVM).a
++install: $(LIBDIR) $(LIBDIR)/pvmd3$(EXESFX) $(LIBDIR)/$(LIBPVM).a $(LIBDIR)/$(LIBPVM).so
+
+ install-shm: $(LIBDIR) $(SHMEMTARGETS)
+
+@@ -242,6 +246,9 @@
+ $(LIBDIR)/$(LIBPVM).a: $(LIBPVM).a
+ cp $(LIBPVM).a $(LIBDIR)
+
++$(LIBDIR)/$(LIBPVM).so: $(LIBPVM).so
++ cp $(LIBPVM).so $(LIBDIR)
++
+ # libdir shm pvmd3 & libpvm3*.a
+
+ $(LIBDIR)/pvmd3-shm: pvmd3-shm
+@@ -287,9 +294,22 @@
+ $(LOPT) $(ARCHDLIB)
+
+ $(LIBPVM).a: $(REGEXCONF) $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
+- rm -f $(LIBPVM).a
++ @echo -------------------------------
++ @echo --- Building static Library ---
++ @echo -------------------------------
++ rm -f $(LIBPVM).a $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ) $(REGEXDIR)/pvmregex.o $(REGEXDIR)/regex.o
++ $(MAKE) CFLOPTS="$(CFLOPTS)" $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
+ $(AR) cr $(LIBPVM).a $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
+ case x$(HASRANLIB) in xt ) echo ranlib; ranlib $(LIBPVM).a ;; esac
++
++$(LIBPVM).so: regexconfig
++ @echo -------------------------------
++ @echo --- Building shared Library ---
++ @echo -------------------------------
++ rm -f $(LIBPVM).so $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ) $(REGEXDIR)/pvmregex.o $(REGEXDIR)/regex.o
++ $(MAKE) CFLOPTS="-fPIC $(CFLOPTS)" $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
++ $(CC) $(SHLIBPVM) -o $(LIBPVM).so $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ) -lc
++
+
+ # shm pvmd3 & libpvm3*.a
+
--- src/tdpro.c
+++ src/tdpro.c
@@ -1138,6 +1138,24 @@
} else { /* anywhere */
ht_merge(htp, hosts);
+
+ /*
+ * remove head nodes from Beowulf machine
+ */
+ {
+ char *exlist = getenv("PVM_EXCLUDE");
+ while (exlist) {
+ char *next = exlist;
+ while (*exlist && *exlist != ':')
+ exlist++;
+ if (*exlist)
+ *exlist++ = 0;
+ else
+ exlist = 0;
+ if (hp = nametohost(hosts, next))
+ ht_delete(htp, hp);
+ }
+ }
}
}