Newsgroups: comp.parallel.pvm
Path: ukc!uknet!doc.ic.ac.uk!agate!howland.reston.ans.net!math.ohio-state.edu!hobbes.physics.uiowa.edu!ljg
From: ljg@space.physics.uiowa.edu (Larry Granroth)
Subject: PVM on NetBSD/i386
Message-ID: <CJMMqL.n0w@space.physics.uiowa.edu>
Organization: The University of Iowa, Department of Physics and Astronomy
X-Newsreader: TIN [version 1.2 PL2]
Date: Fri, 14 Jan 1994 15:51:52 GMT
Lines: 90

I've gotten pvm3 to compile and run under NetBSD/i386 0.9 with the
following modifications:

I built a new m4 from NetBSD-current.  (The one in the 0.9 distribution
dumped core in my first attempt.)  Then I made the following modifications
to these files:

*** pvm3/conf/BSD386.m4.orig	Fri Apr  2 09:14:53 1993
--- pvm3/conf/BSD386.m4	Fri Jan 14 09:09:04 1994
***************
*** 1,12 ****
  divert(-1)
  undefine(`len')
  #
! # FORTRAN function names are in upper case
  #
! define(`FUNCTION',`translit($1,abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRSTUVWXYZ)')
  #
  # FORTRAN character strings are passed as follows:
- #   XXX is this right?
  # 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.
--- 1,11 ----
  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.
*** pvm3/src/startup.c.orig	Fri Jan 14 09:04:13 1994
--- pvm3/src/startup.c	Fri Jan 14 09:06:35 1994
***************
*** 54,59 ****
--- 54,62 ----
   *
   */
  
+ #ifdef IMA_BSD386
+ #include <machine/endian.h>
+ #endif
  #ifdef IMA_TITN
  #include <bsd/sys/types.h>
  #else
*** pvm3/src/waitc.c.orig	Fri Jan 14 09:07:19 1994
--- pvm3/src/waitc.c	Fri Jan 14 09:07:50 1994
***************
*** 38,43 ****
--- 38,46 ----
   */
  
  #include <stdio.h>
+ #ifdef IMA_BSD386
+ #include <machine/endian.h>
+ #endif
  #ifdef IMA_TITN
  #include <bsd/sys/types.h>
  #else
*** pvm3/xep/Makefile.aimk.orig	Fri Jan 14 09:42:30 1994
--- pvm3/xep/Makefile.aimk	Fri Jan 14 09:43:32 1994
***************
*** 16,22 ****
  CFLAGS	=	$(ARCHCFLAGS) -O -I$(PVMIDIR) -L$(PVMLDIR) $(ARCHCFLAGS)
  LIBS	=	$(PVMLIB) $(ARCHLIB)
  XLIBS	=	-lXaw -lXmu -lXext -lXt -lX11
! XCFLAGS	=	-I/usr/local/X11R5/include -L/usr/local/X11R5/lib
  
  default:	mtile xep
  
--- 16,22 ----
  CFLAGS	=	$(ARCHCFLAGS) -O -I$(PVMIDIR) -L$(PVMLDIR) $(ARCHCFLAGS)
  LIBS	=	$(PVMLIB) $(ARCHLIB)
  XLIBS	=	-lXaw -lXmu -lXext -lXt -lX11
! XCFLAGS	=	-I$(XWINHOME)/include -L$(XWINHOME)/lib
  
  default:	mtile xep

I'm using the XFree 2.0 distribution and XWINHOME points to /usr/X386.
I had an f2c (with an f77 script) from previous 386bsd tinkering, but
I expect that freebsd.cdrom.com:/pub/FreeBSD/packages/f2c_bin.tgz should
work as well.  At this point "make all" worked as described and the
simple master/slave and fmaster/fslave examples appear to work with
some SUN4 hosts.

larry-granroth@uiowa.edu

