Begin IRIX/IRAF port/upgrade. Thu May 30 13:31:15 MST 1996 ------------------------------------------------------------------------------ Host - almond (WIYN remote observing host) IRIX almond 5.3 11091812 IP22 mips 150 Mhz MIPS R4400 64 Mb RAM Indy 8-bit Vino video A2 Audio Processor IRIX 5.3 Graphics board 0 is "NG1" graphics. Managed (":0.0") 1280x1024 8 bitplanes, NG1 revision 3, REX3 revision B, VC2 revision A MC revision C, xmap9 revision A, cmap revision C, bt445 revision A Display 1280x1024 @ 72Hz, monitor id 2 Note - use "iiv" to view CD-ROM documentation. ------------------------------------------------------------------------------ The following are notes from the IRIX 5.3 port, which was done mostly during June 1-2 1996. Sun Jul 7 13:01:50 MST 1996 ./local/notes.irix + ./local/.4Dwmrc ./local/.cshrc ./local/.exrc ./local/.login Customized for IRIX. This includes a workable desktop via .4Dwmrc. ./unix/hlib/extern.pkg Minimal package list for the port. ./unix/hlib/install Changed "mach" (the HSI machine type) from ssol to irix. ./unix/hlib/irafuser.csh 1. MACH is generated from uname differently than for Solaris. 2. IRIX/IRAF compile flags are -/DSYSV -/DSOLARIS. 3. IRIX/IRAF link flags are -lelf -lfpe. 4. No -Bstatic flag for IRIX. ./unix/hlib/login.cl FC calls XC directly in the conventional manner rather than using hlib$fc.csh. ./unix/hlib/mkiraf.csh ./unix/hlib/mkpkg.inc ./unix/hlib/motd Minor customization. ./unix/hlib/mkpkg.sf.IRIX + Pretty standard, did need to increase size of compiler tables for fmtio$evvexpr.x and cl$ytab.c. ./unix/os/irafpath.c Added "irix" for #ifdef sgi. ./unix/os/mkpkg ./unix/os/mkpkg.sh Deleted enbint.s (a solaris special routine). Modified to use $CC to compile the assembler files, as we have done recently on other platforms (allows compile flags to be used). ./unix/os/zawset.c Minor compile time customization (nuke solaris #define RLIMIT_RSS RLIMIT_VMEM). Poking arount it appears that IRIX handles the set/getrlimit stuff ok. ./unix/os/zxwhen.c The error handler code was remarkably similar to Solaris (i.e. SYSV I suppose), down to the codes for the arithmetic exceptions. All I had to change was a sigaction structure definition: solaris uses sig.sa_sigaction, IRIX uses sig.sa_handler. ./unix/os/zzstrt.c Include <sigfpe.h> for IRIX. The IEEE exception handling initialization for this platform consists of: > sigfpe_[_UNDERFL].repls = _ZERO; > handle_sigfpes (_ON, _EN_OVERFL|_EN_DIVZERO |_EN_INVALID, > 0, _ABORT_ON_ERROR, 0); This enables exceptions for overflow, divide by zero, and invalid operand. It is also supposed to be possible to arrange for things to underflow to zero, however it is not clear if it is possible to do this without enabling the underflow exception. I didn't have time to look into it further, and the system passes all tests with the underflow handling disabled. ./unix/as.irix/zsvjmp.s The DECstation (MIPS) version works also for IRIX - the SGI of course uses a MIPS chip. Checked size of SETJMP/ZSVJMP buffer; the Solaris value is larger than needed for IRIX so I left it unchanged. ./unix/boot/mkpkg/host.c The ELF library code for solaris works fine for IRIX too. The only problem encountered was that during library updates the link mkpkg creates to the actual library would be clobbered by the updated library file which would subsequently be deleted, causing the mkpkg to be a no-op. Linux/IRAF had the same problem so I merged in the "resolvefname" code from Linux/IRAF. This takes a library name and checks to see if it is a link and keeps this up until a fully resolved filename is obtained. This is then used to perform the AR updates. ./unix/boot/spp/xc.c Sysbindir (default compiler location) is /usr/bin. System libraries are the conventional U77,F77,I77,U77, plus fpe, isam. Implemented the -// syntax for passing on host switch arguments. ./unix/boot/spp/xpp/xppcode.c Had to declare errflag an external. ./unix/gdev/sgidev/sgi2uapl.c ./unix/gdev/sgidev/sgi2uhpgl.c ./unix/gdev/sgidev/sgi2uimp.c ./unix/gdev/sgidev/sgi2uqms.c Various local variables named "sgi" caused problems here. Changed the names to "sgip". ./dev/hosts Replaced with newer version. ./dev/pix.imh Someone modified this on Tue 17:56:52 04-Jun-96. I don't know who or why, but the image appears the same. ./dev/tapecap Modified for IRIX 5.3. The default configuration should provide variable block size support ("v" in device name) so long as the host level support for the device permits it. See "man tps" for information on the IRIX SCSI tape driver. ./pkg/cl/globals.c ./pkg/cl/grammar.h Added global declarations for parse_state, proc_script, parse_pfile, and changed the declarations in grammar.h to extern. ./unix/boot/spp/xc.c.NOSHARE ./unix/shlib/README ./unix/shlib/mkpkg ./unix/shlib/mkshlib.csh ./unix/shlib/so_locations The shared library code in IRIX looked remarkably similar to that in DEC Alpha OSF/1 (including quickstart etc.) so I did an experiment to implement shared libraries for IRIX/IRAF. This pretty much worked, but I had to set it aside due to some obscure runtime error occurring during process startup, which I didn't have time to investigate. The code is still there in case we get time to go back and look into this further. ------------------------------ Fri Jul 5 18:04:26 MST 1996 IRIX/IRAF distribution built.