From: uhlig@mummy.eecs.umich.edu (richard uhlig) Subject: As promised: Notes for building Mach 3.0 under Ultrix 4.2 Date: Wed, 19 Aug 92 11:28:25 -0400 ---------------------------------------------------------- Mary, a while back I promised you some notes regarding what I had to do to get Mach 3.0 and the Unix server to compile under Ultrix 4.2 for a DECstation 3100. We've been sucessfully running a Mach 3.0 system for a couple of months now. I recently decided to sup a fresh set of mk and ux sources from CMU and tried build everything from scratch so that I could come up with clean notes that describe the minimum steps required. The second time around was much easier than the first. I've concluded that there really aren't very many problems with building mk and ux under Ultrix 4.2 and that this is very much preferable to using OSF/1. -------------- notes for building mk and ux collections --------------- -------------- under ultrix 4.2 for the DECstation 3100 --------------- In these notes, /usr/users/uhlig is the personal directory under which I performed the build. I just put all of the sources under my own personal directory, so /usr/users/uhlig/mach3/ is the "system source" directory and /usr/users/uhlig/mach3_shadow/ is the "local source" directory that I use for shadowing. 1. I added the following to the beginning of my PATH: ~/mach3/release/pmax_mach/bin 2. I set the following environment variables: setenv MKCONFIG STD+WS-mips_code setenv UXCONFIG STDVICE+WS The -mips_code option is important for those that don't have the softfp.s file. The other files that are missing from the mips.free collection (for those who don't have Ultrix source licenses) are: src/mk/kernel/chips/dec_lic/ga_hdw.c src/mk/kernel/chips/dec_lic/ga_misc.c src/mk/kernel/chips/dec_lic/gq_hdw.c src/mk/kernel/chips/dec_lic/gq_misc.c src/mk/kernel/chips/dec_lic/gx_misc.c These files are the driver for the 3max 2D graphics display. They are not needed unless you have such a display. They are selected on the gx option which is defined in conf/MASTER.mips. The simpliest way to eliminate the use of these files is to delete the following line from MASTER.mips pseudo-device gx 2 # 3. I created a Makeconf-site file in ~/mach3_shadow/src/mk that contains: CPATH = /usr/include LPATH = /usr/lib SOURCEDIR = /usr/users/uhlig/mach3/src/mk OBJECTDIR = /usr/users/uhlig/mach3/obj/pmax_mach/mk INSTALLDIR = /usr/users/uhlig/mach3/release/pmax_mach I wanted to build objects in my shadow directory, but I couldn't get that to work, so I set OBJECTDIR and INSTALLDIR to use the ~/mach3 tree. I created a similar Makeconf-site file for ux and placed it in ~/mach3_shadow/src/ux/ for the Unix server build. 4. I copied the following parts of the MIPS C compiler from their usual homes under Ultrix 4.2 from: /usr/lib/cmplrs/cc2.1/ccom /usr/lib/cmplrs/cc2.1/uopt /usr/lib/cmplrs/cc2.1/ugen /usr/lib/cmplrs/cc2.1/as1 to: /usr/users/uhlig/mach3/release/pmax_mach/lib/ 5. I #ifdef-ed out the following include in ~/mach3/release/pmax_mach/include/sys/time.h (line 105): #include This seems to be conflicting with the Ultrix time.h at certain points during the build. And that's it! 6. The following commands ought to run without errors at this point: cd ~/mach3_shadow/src/mk make cd ~/mach3_shadow/src/ux make As far as running the system goes, I've had good luck using Ultrix binaries as is, with some exceptions (see below). When setting up the paging file, I ran into a small problem with the dd command. I had to use: dd if=/dev/rrz4b of=/tmnt/rz4b/PAGING_FILE bs=1024 count=20480 To create a 20 Meg paging file. This is different from the command given in the Mach 3.0 installation notes which uses bs=1024k and count=20. I'm using the Ultrix dd which seems to have a funny limitation on the bs size (I think it's 65536). --------------------------------------------------------------- The Ultrix versions of fsck, mount, umount and df fail because they use system calls that are not supported by Mach. Mach binaries of these files can be suped from the mach3.release, release=mips collection.