This step is optional and necessary only for those users who are interested in SVM distributed simulations.
PVM (Parallel Virtual Machine) is the underlying library that supports communication among multiple processes and multiple machines. Its source can be downloaded from its website:
PVM is not originally designed for Cygwin, and its version 3.4.3 is used here. The users are highly recommended to download the source from the following location:
Note that newer versions of PVM may be found at:
However, the only version that has been tested and successfully compiled is 3.4.3, and the following patch is applicable only for that version:
The content of the patch is:
Only in pvm3_patched/console: CYGWIN Only in pvm3_patched/examples: CYGWIN Only in pvm3_patched/gexamples: CYGWIN Only in pvm3_patched/lib: CYGWIN Only in pvm3_patched/libfpvm: CYGWIN Only in pvm3_patched/pvmgs: CYGWIN Only in pvm3_patched/rm: CYGWIN Only in pvm3_patched/src: CYGWIN diff -uar pvm3/src/lpvm.c pvm3_patched/src/lpvm.c --- pvm3/src/lpvm.c 2000-02-17 18:12:10.000000000 -0500 +++ pvm3_patched/src/lpvm.c 2004-03-21 18:26:33.069064000 -0500 @@ -619,7 +619,7 @@ #ifndef HASERRORVARS extern int errno; /* from libc */ -extern char *sys_errlist; +//extern char *sys_errlist; extern int sys_nerr; #endif diff -uar pvm3/src/lpvmgen.c pvm3_patched/src/lpvmgen.c --- pvm3/src/lpvmgen.c 2000-02-17 18:12:12.000000000 -0500 +++ pvm3_patched/src/lpvmgen.c 2004-03-21 18:26:20.340761600 -0500 @@ -578,7 +578,7 @@ #ifndef HASERRORVARS extern int errno; /* from libc */ -extern char *sys_errlist; +//extern char *sys_errlist; extern int sys_nerr; #endif diff -uar pvm3/src/pvmlog.c pvm3_patched/src/pvmlog.c --- pvm3/src/pvmlog.c 2000-02-10 15:46:43.000000000 -0500 +++ pvm3_patched/src/pvmlog.c 2004-03-21 18:25:59.741140800 -0500 @@ -192,7 +192,7 @@ extern int errno; /* from libc */ #ifndef WIN32 extern int sys_nerr; -extern char *sys_errlist; +//extern char *sys_errlist; #endif #endif Only in pvm3_patched/tracer: CYGWIN Only in pvm3_patched/xep: CYGWIN
After obtaining the source (pvm3.4.3.tgz) and the above patch (pvm3.4.3-Cygwin.patch), the users may use the following commands to extract the package and apply the patch (assuming that both files are in the current directory):
$ tar zxvf pvm3.4.3.tgz $ patch -p0 < pvm3.4.3-Cygwin.patch
A directory named pvm3 will be created, which contains the patched source. To build PVM, the users must first set the PVM_ROOT environment variable according to the PVM path. For example, the following command may be used (suppose the current shell is bash):
Then the source can be made with the following command:
make -C pvm3
If all goes well, PVM will be built in the pvm3 directory, and the executables can be found in pvm3/lib/CYGWIN.
The users should set the following environment variables in their startup scripts ( /.bashrc for the bash shell):