[comp.protocols.iso.dev-environ] ISODE on Ultrix/RISC 4.1?

eriks@ns.yorku.ca (Eriks Rugelis) (03/27/91)

I'm about to install ISODE 6.8 on Ultrix/RISC 4.1.  The config files
only mention Ultrix 3.1 so I thought I'd send out a poll to see if anyone
knows of any gotchas before I proceed.

Well?  Are there any?  Or do I just './make everything' and live happily
ever after?

Thanks,
Eriks

solomon@CS.WISC.EDU (Marvin Solomon) (03/28/91)

> 
> I'm about to install ISODE 6.8 on Ultrix/RISC 4.1.  The config files
> only mention Ultrix 3.1 so I thought I'd send out a poll to see if anyone
> knows of any gotchas before I proceed.
> 
> Well?  Are there any?  Or do I just './make everything' and live happily
> ever after?
> 
> Thanks,
> Eriks
> 
I've found that a few changes make life much more pleasant on the
SPIM (MIPS with the bytes backwards :-).  On this machine, both ld and ar
are exasperatingly slow, particularly if libraries are NFS mounted.
Also, instead of ranlib, there is an additional flag 's' to ar that
says to rebuild the index when done.  (There is a ranlib, but it's essentially
just the one-line shell file 'ar ts $1 >/dev/null').  This leads to the
following changes.  By the way, I'm working with Ultrix 4.0 rather than 4.1, but
I don't think that should make too much difference.
Warning: I haven't always been too careful about maintaining compatibility
with other systems, so the following may fix things for Ultrix but
break them for other systems.  Caveat lector.

In config/ultrix.make, change
	SYSTEM	=	-bsd42
	LDFLAGS =	-s
	ARFLAGS	=
	LSOCKET	=	$(KRBLIB)
	LFLAGS  =	-bhuz $(OPTIONS)
to
	SYSTEM	=	-ultrix
	LDFLAGS =
	ARFLAGS	=	-ranlib
	LSOCKET	=	-lresolv -ldbm $(KRBLIB)
	LFLAGS  =	$(OPTIONS)
The addition of -lresolv flag is a local thing here.  The nameserver resolver
routines that come with Ultrix 4.0 are (to put it mildly) garbage.  Our
-lresolv library is a version of the 4.3 BSD library with patches as
posted on the net.  I'm not completely sure, but I think the -ldbm flag
is required by standard Ultrix.  The LFLAGS is problematical.  -z is not
understood by Ultrix lint and -h has the opposite sense from elsewhere (it
turns off heuristics).  I'm not sure about the others, but I haven't had a lot
of success with linting this stuff anyhow.  Lint seems to have some
limits wired in that get blown away by ISODE's huge symbol tables.

In config/ultrix.h (which gets copied to h/config.h), change
	#define GETDENTS
to
	#define NFS

Change h/general.h as follows.
(This is important; nothing will compile unless you fix this.)
===================================================================
RCS file: general.h,v
retrieving revision 1.1
diff -c -r1.1 general.h
*** 1.1	1991/03/11 05:54:33
--- general.h	1991/03/11 12:00:13
***************
*** 140,160 ****
  char   *index ();
  char   *mktemp ();
  char   *rindex ();
- #if	defined(BSDSTRS) && !defined(BSD44) && (!defined(BSD43) || defined(SUNOS4) || defined(vax) || defined(RT) || (defined(mips) && defined(ultrix))) && !defined(XOS_2)
  char   *sprintf ();
- #else
- int     sprintf ();
- #endif
  char   *strcat ();
  int     strcmp ();
  char   *strcpy ();
! int	strlen ();
  char   *strncat ();
  int     strncmp ();
  char   *strncpy ();
  
  char   *getenv ();
! char   *calloc (), *malloc (), *realloc ();
  
  #if	defined(SYS5) && !defined(AIX) && !defined(XOS) && !defined(XOS_2)
  #include <memory.h>
--- 140,156 ----
  char   *index ();
  char   *mktemp ();
  char   *rindex ();
  char   *sprintf ();
  char   *strcat ();
  int     strcmp ();
  char   *strcpy ();
! size_t	strlen ();
  char   *strncat ();
  int     strncmp ();
  char   *strncpy ();
  
  char   *getenv ();
! void   *calloc (), *malloc (), *realloc ();
  
  #if	defined(SYS5) && !defined(AIX) && !defined(XOS) && !defined(XOS_2)
  #include <memory.h>
===================================================================

In util, change inst-lint.sh and make-lib.sh as follows.
===================================================================
RCS file: RCS/inst-lint.sh,v
retrieving revision 1.1
diff -c -r1.1 inst-lint.sh
*** 1.1	1991/03/11 06:07:03
--- inst-lint.sh	1991/03/11 12:07:12
***************
*** 30,35 ****
--- 30,41 ----
  	-ros)	M=ROS
  		;;
  
+ 	-ultrix)
+ 		M=ULTRIX
+ 		L=/usr/lib/cmplrs/cc
+ 		T=/var/tmp/hlint.$$
+ 		;;
+ 
  	-*)	O="$O $A"
  		;;
  
***************
*** 38,43 ****
--- 44,58 ----
  				/usr/lib/lint/lint1 -v \> $A.ln
  			    /lib/cpp -C -Dlint $O $A | \
  				/usr/lib/lint/lint1 -v > $A.ln
+ 			    ;;
+ 
+ 		    ULTRIX)
+ 			    echo "( cc -E -C -Dlint $O $A | ${L}/lint1 -H$T >$A.ln ) 2>&1"
+ 			    ( cc -E -C -Dlint $O $A | ${L}/lint1 -H$T >$A.ln ) 2>&1
+ 			    echo ${L}/lint2 -H$T
+ 			    ${L}/lint2 -H$T
+ 			    echo rm -f $T
+ 			    rm -f $T
  			    ;;
  
  		    BSD44)  echo lint -Clint $O $A
===================================================================
RCS file: RCS/make-lib.sh,v
retrieving revision 1.1
diff -c -r1.1 make-lib.sh
*** 1.1	1991/03/11 06:09:41
--- make-lib.sh	1991/03/12 11:18:16
***************
*** 12,17 ****
--- 12,21 ----
  	-shared)SHD=T
  		;;
  
+ 	-ultrix)
+ 		M=ULTRIX
+ 		;;
+ 
  	-sys5)	M=SYS5
  		;;
  
***************
*** 34,39 ****
--- 38,49 ----
  			    esac
  			    ;;
  
+ 		    ULTRIX)
+ 			    if [ "x$Q" != xT ]; then
+ 				S=${S}s
+ 			    fi
+ 			    ;;
+ 
  		    SYS5|AIX|old)
  			    ;;
  
***************
*** 41,47 ****
  			    exit 1
  			    ;;
  		esac
- 		exit 0
  		;;
  
  	-quick)	Q=T
--- 51,56 ----
***************
*** 99,105 ****
  	    fi
  	    ;;
  
!     SYS5)   if [ "x$SHD" = xT ]; then
  		echo "Can't build shared libraries for Sys 5 (yet)" 1>&2
  		exit 1
  	    fi
--- 108,114 ----
  	    fi
  	    ;;
  
!     SYS5|ULTRIX)   if [ "x$SHD" = xT ]; then
  		echo "Can't build shared libraries for Sys 5 (yet)" 1>&2
  		exit 1
  	    fi

VALDIS@VTVM1.CC.VT.EDU (Valdis Kletnieks) (04/01/91)

t
 oronto.edu!torsqnt!lethe!yunexus!nexus!eriks@ucbvax.Berkeley.EDU>,
              isode@nic.ddn.mil,
              isode-relay@nic.ddn.mil
Message-Id:   <910331.204511.EST.VALDIS@vtvm1.cc.vt.edu>
In-Reply-To:  <ERIKS.91Mar27084338@ns.yorku.ca>

On 27 Mar 91 13:43:38 GMT you said:
>I'm about to install ISODE 6.8 on Ultrix/RISC 4.1.  The config files
>only mention Ultrix 3.1 so I thought I'd send out a poll to see if anyone
>knows of any gotchas before I proceed.
>
>Well?  Are there any?  Or do I just './make everything' and live happily
>ever after?
Eriks:

Your UUCP-format address was over 2 lines long by the time it arrived, I
hope you're on the list..

We're running ISODE 6.8 on a 5810 Ultrix 4.1, using the supplied 'ultrix.*'
config files.  No problems we've noticed.


                                  Valdis Kletnieks
                                  Computer Systems Engineer
                                  Virginia Polytechnic Institute