Path: utzoo!mnetor!tmsoft!torsqnt!jarvis.csri.toronto.edu!rutgers!usc!brutus.cs.uiuc.edu!rpi!uwm.edu!dogie.macc.wisc.edu!decwrl!sgi!jmb@maddog.sgi.com From: jmb@maddog.sgi.com (Jim Barton) Newsgroups: comp.sys.sgi Subject: IRIX 3.2 Release Notes (Part 2 of 3) Message-ID: <44983@sgi.sgi.com> Date: 19 Nov 89 18:39:47 GMT Sender: jmb@maddog.sgi.com Organization: Silicon Graphics, Inc., Mountain View, CA Lines: 1102 -------------------- cut here ------------------- detailed description the new features. o The IRIX emulation library for the Sequent parallel programming primitives (m_fork et al.). has been expanded to include the m_park_procs, m_rele_procs, and m_sync primitives. These allow the master process to suspend all the parallel child processes during long sections that are single threaded and then resume them before entering a parallel session. After calling m_park_procs, the child processes will no longer be scheduled and so will not consume any processing time until m_rele_procs is called by the master process. Refer to the m_fork(3P) manual entry for more information. - 3 - 5.2 Changes_to_Documentation o IRIS-4D System Administrator's Guide has been completely revised for this release. It explains how to use advanced IRIX utilities and other standalone programs to keep an IRIS-4D Series workstation or server running smoothly. It contains theory of operation, background information, and step-by-step procedures that supplement the newly revised IRIS-4D and server owner's guides. o The Graphics Library User's Guide and the GT Graphics Library User's Guide have been combined into a single volume for the IRIS-4D series workstations. The combined volume is titled the Graphics Library Programming Guide and contains information for writing GL programs for all IRIS-4D series workstations. 5.3 Changes_to_Graphics 5.3.1 The_Default_Color_Map The default color map, which is loaded by 4Sight, has changed for this software release. The color map is a system wide resource, which allows the mapping of an arbitrary color index pixel to any desired combination of red, green, and blue. There is only one color map per system. Therefore, all color index programs that are running at the same time share the same color map. The first 256 entries of the color map have been re-designed using an abstract color model such that: o multiple programs can aesthetically coexist on the screen o double-buffered applications look good on minimal systems o programs written to the X Window System standard can use the color map Because the colormap is shared, a program that rewrites entries in the colormap will potentially affect other programs in a multi-window environment. This is especially true on minimal configuration systems where the only entries in the map are the bottom 256. The previous colormap arrangement did not provide a structure and methodology to avoid this; the new one does. - 4 - With this color map, application programs can specify colors as if running on a full color system; library routines take care of mapping requested colors to the nearest available color. The abstract color model does a good job of matching desired colors. However, the model breaks down if a program manipulates the color map. Many programs that appear to need to manipulate the color map can be changed to redraw the image using new colors instead. This doesn't work for programs that depend on colormap animation, where the colormap manipulations are only a part of the image rendering concept, or if the color indexies are used by the hardware, as for depth queueing. An example of this is when ramps are used for shaded polygons or depth-queued lines. A minimally-configured Personal Iris has only 8 color bit planes, which means that a double buffered program running on these machines has only four bits per buffer. Four bits means only sixteen colors, which are the first sixteen colors in the colormap. Both maps have the first eight colors as defined by the GL. Following those colors in the pre 4D1-3.2 color map was a grey ramp running from dark to light. This severely limited the colors options available to double buffered applications on a minimal system, since only the first 16 were available. The usable greys were all very dark and looked out of place when used with the primary and secondary colors the GL defines. The 4D1-3.2 color map organization has some pastels in the second eight color slots. These mix nicely with the first eight primary an secondary colors. By dithering out of the first 16 colors you can achieve a fairly wide spread of both hue and saturation. Dithering in the pre 4D1-3.2 color map produces mainly dark muddy tones, not generally considered satisfying. X clients are traditionally black and white, or use a minimal notion of color. Some newer, more ambitious, X clients really want and use many more colors; some even use 24-bit style colors. The new color map organization doesn't help the more greedy X client but it does set aside 16 colors for the X server to manage. These colors are conveniently located on a power of two, and are expected to meet most X clients demands. - 5 - If you run X these 16 colors are reserved for the X server and are not directly available to users. If you never use or run X, you can freely do what you want with them. The library /usr/lib/libgutil.a contains the routines to map full color requested to color map indicies. abstract color model. The routines come in two flavors, those with floating point arguments between 0 and 1, and those with integer arguments between 0 and 255. Use whichever is most natural. ci = rgb(r,g,b); /* set and return a color index * approximating the given r,g,b */ ci = rgbi(ri,gi,bi); ci = hsv(h,s,v); /* set and return a color index * approximating the given h,s,v */ ci = hsvi(hi,si,si); ci = grey(shade); /* set and return a color index * approximating the given shade * of grey */ ci = greyi(shadei); Each routine figures out what index is the closest to the color requested, sets that as the current color, and returns the index it found. A few simple operations, based on some tables, give the returned value. Programs that do not fit into the abstract color map scheme typically need large ramps. In the colorful part of the map, 140 contiguous entries go unused by the default window manager and most standard tools. Thus an ``antisocial'' application program can freely write numerous entries and only destroy the appearance of other applications, not the window system itself. This range of colors starts just after the grey ramp at color index 56 and continues through color index 195. The window system uses color indicies 196-255. Some standard tools like cedit use a few colors from the middle of this range, but only in small areas so remapping is likely to leave them intelligible. 5.3.2 Changes_to_4Sight o wsh(1G) now provides a text selection facility that allows text to be transferred from the display of one wsh window and sent as input to any other wsh window. It also has an improved scroll bar with a proportional thumb. - 6 - o The Window Manager has improved aesthetics and controls, and better support for multi-windowed applications. The window borders have been changed to accommodate strectch controls at each corner of the window. The window borders and toolchests have also been given a rounded appearance matching the aesthetics of the WorkSpace and Visual Administration tools. Stowed windows (icons) are now arranged in neat rows instead of randomly across the screen. Enhanced versions of the preference features previously found in the 4DGifts have been incorporated into the window manager. These features provide automatic placement and sizing of windows for any application and allow for windows of the same type to be neatly stacked. For example, all wsh windows can be neatly stacked up. A Close entry has been added to the menu together with a corresponding border control. This entry is designed for multi-windowed applications. Close closes the window and, if notification is enabled, notifies the client. If the window being closed is the last window of the application, Close becomes equivalent to the existing Quit entry which closes the window and kills the application. All these new features are described in the 4Sight Programmer's Guide. 5.3.3 Changes to the Graphics Library and Distributed Graphics Library o The GL viewport routine allows application programs to use a viewport that is _32K in both X and Y while in feedback mode. The viewport is limited to -XSCREENMAX to 2*XSCREENMAX in X and -YSCREENMAX to 2*YSCREENMAX in Y while not in feedback mode. o The smoothline routine now is obsolete and has been replaced with a functionally equivalent routine called linesmooth. o The lsetdepth routine replaces setdepth, which is now obsolete. The depth range now defaults to the entire range supported by the hardware on which the program is running. The limits of the depth range are returned by the getgdesc routine. - 7 - o The lshaderange routine replaces shaderange, which is now obsolete. The depth range of the default shade range is now the entire range supported by the hardware on which the program is running. o The lRGBrange routine replaces RGBrange, which is now obsolete. o The getdepth routine is now obsolete. It is not guaranteed to return correct values if lsetdepth is used to set the depth range; only works correctly when setdepth is used viewport in feedback mode allows range supported by feedback datatype. o Documentation that was previously released indicated that blending was available only if 2 bitplanes were installed. This has been corrected. o GT/GTX now correctly depthqueues when the depth range is reversed (Znear > Zfar). The other models still fail. o The size of the graphics input event queue has been increased from 51 elements to 101 elements. o zfunction now works across the entire IRIS-4D product line. 5.3.4 Changes_to_the_Distributed_Graphics_Library The changes to the Distributed Graphics Library are the same as the changes to the Graphics Library with these additions: o The arguments to winmove and winposition arguments have been changed from shorts to longs. Although this does not affect GL programs, it will break DGL programs that call these routines. Such DGL programs linked with a pre-4D1-3.2 libdgl.a will not work with 4D1-3.2 DGL servers, and DGL programs linked with a 4D1-3.2 libdgl.a will not work with pre-4D1-3.2 DGL servers. o The environment variables DISPLAY and NEWSSERVER are no longer used for determining the default DGL server. The environment variable DGLSERVER is now used instead. The "decimal_address.port" host format, typically used along with NEWSSERVER, is no longer accepted. o dglopen can now return ESRCH (no such process) if the window manager is not running on the server. - 8 - o The protocol for popup callback functions ("%f") has been changed to allow callback functions to call other DGL routines. Any old DGL programs that used callbacks will not work with the new DGL server and new DGL programs will not work with the old DGL server. The incompatibility arises only when the callback occurs, not when the program is run. 5.3.5 Changes_to_4Dgifts This section contains information about a wealth of source code examples, which you receive as ``gifts'' from Silicon Graphics, Inc. These gifts are not installed or updated by default. To use them, you must first install them using inst(1M). For information about using inst and the manual installation features, see Chapter 2, ``Software Installation'' or the IRIS-4D System Administrator's Guide. Once installed, you find these source code examples in a sample user account directory called /usr/people/4Dgifts. 4Dgifts is set up as a sample user account for two reasons: o to allow you to learn by example o to allow you to be productive while you are becoming familiar with the NeWS environment and the ability to customize that environment with PostScript You should find a README file in virtually every directory in and including 4Dgifts. Much of what is discussed below is covered in greater detail in the README files. Read the file /usr/people/4Dgifts/README to gain a more complete understanding of the remainder of this section. 5.3.5.0.1 Disclaimer This reinstatement of a source code repository is a major coup for people that use Silicon Graphics Inc., systems. Although there is a disclaimer in the file /usr/people/4Dgifts/README file, which states ``It is essential to understand that these gifts are unsupported by Silicon Graphics Inc., the fact is we continue to receive many requests, suggestions, etc for these gifts. - 9 - We welcome any and all such input. However, we are the final arbiters as to what additions or changes will be implemented. The main subdirectories in 4Dgifts are: examples kermit and iristools The examples directory contains various subdirectories housing an assortment of code examples: Fortran graphics programs written in Fortran devices digitizer and dial and button box programs, as well as a program that uses the /dev/scsi generic SCSI driver. fontmanger includes sample programs demonstrating usage of the fontmanager library, libfm.a grafix various C graphics programs. hllapi ibm-link for the SGI 3270 emulation package. light on-line versions of the lighting programs discussed in chapter 9 of the Graphics Library Programming Guide. nurbs contains 4 nurbs sample programs: one written in C, one for the DGL, on in Fortran, and one in Pascal. tcp contains programs that communicate with remote systems such as the IRIS and 4.3BSD computers. trackball contains 4 components of code for a Virtual Trackball Implementation: routines to calculate the virtual trackball, event-queue handling, drive a user-interface, and a simple program to use the other 3. unix contains fundamental examples of system programming. video contains programs demonstrating usage of various video modes. - 10 - The kermit directory holds the public domain source and documentation for kermit, a file transfer protocol that is useful when you need to send files to and from an IRIS/UNIX computer and non-unix configurations like VMS or DOS based machines. The iristools directory contains a super-set of special image libraries, image processing utilities, and graphics tools that used to exist, in the 3000 family-line of computers, under /usr/people/gifts/mextools. This source was used to build the binaries that now reside in /usr/sbin (i.e., cedit, showmap, ipaste, mag, etc.). In other words, every executable in /usr/sbin with a source file under iristools was built from that exact source (including the two libraries libgutil.a and libimage.a under iristools). Beyond this, the directory /usr/people/4Dgifts is setup to work as a sample NeWS user login account replete with many template .ps files to help you understand the extent to which you can customize NeWS environment. Along with a more substantial user.ps, file there is a startup.ps file, as well as a subdirectory /usr/people/4Dgifts/.4sight. This directory contains nine additional startup.ps files that show you how to create your own user-defined icons, window colors, menu fonts, etc.. These files have comments throughout them to help describe what they do. There are many ways you can change and alter all of the possible startup variables. 5.3.5.1 Special_Gifts ./iristools/imgtools/snapshot.c This program allows you to interactively grab part or all of of an image on the screen and dump it into an image file. It is the next generation of icut. By default, it is loaded in /usr/sbin as a gltool. See snapshot(6D). This image file can then be put back up on the screen with ipaste(1G), or sent to a supported printers with lp(1). ./{.workspace/*, README.wspace} There is an initial setup for a version of workspace with 4Dgifts that resides in the directory .workspace. The file README.wspace describes more of what is currently included. ./examples/grafix/{zrgb.c, zrgbmenu.c, zcmapmenu.c} ./examples/Fortran/{zrgb.f, zrgbmenu.f, zcmapmenu.f} - 11 - These programs demonstrate aspects of zbuffering in various implementations. Of particular note are the zcmapmenu versions which include a powerful example in the main infinite loop of how to write code that does NOT eat up extra CPU cycles (provided one does not need the animation to continue when the input focus is elsewhere) ./examples/devices/{iisc.c, inquire.c} Two programs that use the the /dev/scsi generic SCSI driver. Be sure to also consult the README file in this directory. 5.3.5.2 Installing_the_Gifts To install the 4Dgifts, login as root, type inst, and follow the instructions on your screen. Refer to Chapter 2, ``Installing Software'' for a detail discussion of inst. Choose the manual installation features, and explicitly select this subsystem dev.sw.giftssrc. Once you have specified that you wish to use the manual installation features, type: select from the "Manual>" menu and enter yes dev.sw.giftssrc Now 4Dgifts will be included when you run the install menu item. The size of this account (uncompiled) is approximately 4095 blocks or about 2.17 MBytes. 5.3.5.3 Setting_Up_4Dgifts_as_a_User_Login_Account Upon successful completion of loading the dev.sw.giftssrc subsystem from the Development tape (see below) you need to perform one more modification in order to set up /usr/people/4Dgifts as its own account: 1. Login as root. 2. Edit the file /etc/passwd. Duplicate the ``guest'' passwd line. Change every occurrence of the word ``guest'' on this duplicate line to be ``4Dgifts'' instead. 3. Write the changes and exit the editor. 4. Now logout of the console screen entirely and login as 4Dgifts. You will see things startup in a different way than they do for guest root or any of the other "default" login accounts. The intent here is that you copy - 12 - ~4Dgifts/{.4sight, user.ps, startup.ps} into you own home directory and play with changing whatever parts you wish to make it place and define things more in the way you prefer. 5.3.6 Changes_to_Demos The directory structure of /usr/demos has been re-organized. All demo executables have been moved from /usr/demos into /usr/demos/bin, and all data used by the demos has been moved into /usr/demos/data. Several old demos have been dropped from distribution, including revolution, jet, demomakemap, superbreak and spin. Buttonfly(6D) is a fancy interface to the demos, and is new with the IRIX 3.2 release. Running /usr/demos/buttonfly is the easiest way to run the demos. For Workspace users, the directories /usr/demos/applications, /usr/demos/cpu, /usr/demos/graphics, /usr/demos/image, and /usr/demos/old have scripts inside them to run the demos with appropriate data. All of the demos have manual pages, which can be seen using either the standard man command, or through buttonfly's popup menus. All of the demos now have information slides, which give you a brief description of what the demo is doing. These can be accessed through buttonfly's popup menus or from the Workspace. 5.3.7 Changes_to_the_NeWS_Gifts The NeWS gifts are now under /usr/NeWS/clientsrc, and you can compiled them yourself. - 13 - 5.4 Changes_to_Networking The 4D1-3.2 software release includes these changes to networking: o An improved multiprocessor implementation of System V STREAMS allows the use of all serial ports on Power Series systems. For information on how to utilize the additional ports, see ``Attaching a Terminal, Modem, or Dumb Printer'' in the IRIS-4D System Administrator's Guide, duart(7), and inittab(4). Developers note that all STREAMS drivers must obey the conventions for maintaining mutual exclusion on multiprocessor systems. These conventions are discussed in Appendix F, ``STREAMS on the IRIS-4D'' of the STREAMS Programmer's Guide. o System V STREAMS queue and stream structures are now allocated dynamically. The static allocations have been removed from the kernel master file. o For security, a user's .rhost file must be owned by the user or by root and must be writable by only the owner or root. Use the command: chmod go-w $HOME/.rhost to prevent others from writing to the file. $HOME is the pathname of the user's home directory. o rshd(1M) now logs unsuccessful accesses to syslog(1M). The new -L option allows you to log successful accesses, too. To enable -L, append it to the rshd entry in /usr/etc/inetd.conf. See rshd(1M) in the IRIX System Administrator's Reference Manual for more information. o The following daemons now look for .options files in /etc/config: named(1M) rpc.passwd(1M) to allow customers to specify different startup options. See network(1M) and the daemons' manual pages for details. - 14 - o For proper system startup, all network interfaces on the IRIS must have a valid address-hostname entry in /etc/hosts. ifconfig(1M) converts a hostname into an Internet address by looking in /etc/hosts only. It does not use named(1M) or Yellow Pages. 5.5 Changes_to_Program_Development_Tools The C runtime startup routine now returns (to the environment) the value returned from the C main function. Release 4D1-3.1 returned zero to the environment regardless what value was returned from the main function. It is essential that every program call exit or return a meaningful value from its main function. If a meaningful value is not returned, a garbage value is returned to the environment. This change was made to conform to the proposed ANSI C standard. 5.5.1 Changes_to_dbx A great deal of information was added to the dbx man page and help file /usr/lib/dbx.help. The information in them might be helpful to you/ The tags command was added to dbx. It uses ctags(1) data. It is like the func command except that tags can find C macros (those with arguments) as well as functions. The ccall command was added. It (as well as expression evaluation) allows interactive calls to functions in the program being debugged. In this release only constant arguments may be supplied to the function being called. By default, anonymous blocks (in C {} delimited compound statements) in functions are now not shown on stack traces. Set the dbx variable $hide_anonymous_blocks to 0 to show all internal blocks. The syscall command was added to allow breakpointing your program on entry-to or return-from any system call. To intercept a call to exit(2), enter the command syscall catch call exit. See the man page for further details. The hed command can be used to edit the dbx history file with your favorite editor. Commands left in the edit session when you exit the editor are automatically submitted to dbx immediately. C casts to pointers and integral types can now be used in expressions. See the EXPRESSIONS and HINTS sections of /usr/lib/dbx.help for further information. - 15 - A number of new commands and command-clauses relating to debugging multiple-process applications and multiple- processor applications are available. See the man page sections on ``Multiple process debugging'' and ``Process Group Debugging Facilities''. The $promptonfork debugger variable now controls a more flexible and usable facility. If 0, then when a program forks or sprocs neither it nor the child stops (that is, the fork is essentially invisible). If 2 then the child is added to the process list automatically and both parent and child stop. If 1 then you are asked whether to add the child to the process list; the parent is left stopped and the child is left stopped (is ignored and runs) if you answered y (n). 5.6 Changes_Affecting_the_Tablet_and_Dial_and_Button_Box Starting in software release 4D1-3.2, the tablet device and dial+buttons device will no longer be pointed to by the devices /dev/tablet and /dev/dials. We have removed these dependencies and the device links themselves in order to standardize the queue interface for alternate input devices. Basically, all I/O to these devices should go through the daemons associated with those devices. The daemons alone will have the knowledge of what physical port input devices are connected to and hardware command sequences associated with those devices. >>>>>>>>>> 3.2 Release notes, Chapter 6 >>>>>>>>>> - 1 - 6. Bug_Fixes This chapter describes bug fixes to 4Sight, IRIX, and program development tools. A Silicon Graphics software change request (``SCR'') number appears after many of the bug fixes in this chapter. 6.1 Bug_Fixes_to_IRIX o If more than the maximum number of concurrent at(1) jobs were simultaneously submitted, previous versions of the software queued the excess jobs, but failed to start them after the running at(1) jobs completed. (SCR 5564) o When cron(1M) was killed and restarted in previous releases of IRIX, it would forget about any at(1) jobs that were submitted to the previous incarnation of cron(1M), but were still in the future. This no longer happens. (SCR 6865) o If a process that takes a long time to complete is started with at(1) and then killed prematurely, cron(1M) dies. This is fixed. (SCR 6910) o The line printer spooler model interface scripts supplied in /usr/spool/lp/model work properly with the Yellow Pages as of Release 3.2. (SCR 3832) o In previous releases, the system initialization scripts would generate an error message every time the system was booted if the line printer spooler was not installed. This no longer happens in Release 3.2. (SCR 4430) o Manual entries which require preprocessing by eqn(1) now received that treatment in Release 4D1-3.2, so some on-line manual entries (e.g. eqnchar(5)) look better than in previous releases. (SCR 5031) o Some inconsistencies in the disk statistics reported by the -d option of sar(1) have been corrected in Release 3.2. (SCR 5465) o The mount(1M) command now has a -h option that works analogously to umount -h. Refer to the mount(1M) manual entry for more information. (SCR 5591) o Some formatting problems in the signal(2) manual entry have been corrected. (SCR 5738) - 2 - o The mt status command now shows when the tape in the drive is write protected when that information is available from the drive. (SCR 5766) o The ps(1) manual entry now documents the page size in the description of the SZ and RSS fields output by ps -l. (SCR 5769) o The manual entries uname(1) and uname(2) now correctly describe the format of version and release number fields. (SCR 5777) o If any process has a modem-control port (tty[mf]*) open on a CDSIO 6-port board and if DCD is false on that port, then no port on the entire board gets any output interrupts. This is fixed in Release 4D1-3.2. (SCR 5844) o There is now a manual entry for flock(3B). (SCR 5864) o In previous releases, the system kernel configuration program lboot(1M) assumed that all controllers were numbered within their type starting at zero. That is, the first controller of a particular type would be numbered 0, the second would be numbered 1 and so forth. If the system configuration files specified, for example, a single controller of a particular type with controller number 1, then lboot(1M) would create a kernel that would not work properly. This has been remedied in Release 3.2. (SCR 5866) o The man(1) command now allows the user to specify an alternate paging program through the PAGER environment variable. (SCR 5883) o When running four copies of the same graphics program on a four CPU system in Release 3.1, the scheduler does not give fair service to the four processes. At any given time, one of them gets scheduled much less often than the other three. This has been fixed in Release 3.2. (SCR 5911) o The select(2) system call can now be used on pipes and all character devices, in addition to sockets and streams devices. (SCR 5421) o The system ID returned by the sysinfo program is 64 bytes long. Many people have requested a shorter ID. In Release 4D1-3.2 there is a new option to sysinfo(1), -s, which provides a 32-bit ID number that can be used to identify a particular machine. This new short ID is - 3 - also returned by a new library routine sysid(3C). (SCRs 4593, 5917) o In previous releases, the file system checker fsck(1M) required a temporary file when checking a file system greater than 500 megabytes in size. It prompted the user for the file name to be used. This caused problems during software installations, since fsck(1M) was being executed with standard input and output redirected to /dev/null. In Release 4D1-3.2, fsck(1M) no longer requires the use of a temporary file under any circumstances. (SCR 5921) o Release 4D1-3.1 PowerSeries and PowerStation machines (multiprocessors) could get the system panic "out of action blocks" under certain heavy load conditions. This no longer occurs in Release 3.2. (SCR 5927) o The EFS file system code in previous releases does not correctly handle file systems in which each cylinder group contains more than 32767 blocks. This has been fixed. (SCR 5968) o The hinv(1) command, which lists the hardware present on a machine, did not correctly report the controller and unit numbers for SCSI floppy disk drives. This is fixed. (SCR 5979) o The hinv(1) command correctly reports the presence of the CG2 and CG3 Genlock boards in Release 3.2. (SCR 6014) o The sysmips(2) manual entry has been changed to document the MIPS_FPSIGINTR call, which allows a program to get a SIGFPE signal whenever a floating point exception occurs. (SCR 6016) o The libraries /usr/lib/libsun.a and /usr/lib/libbsd.a have been changed in Release 3.2 to require a good deal less data space. This means that programs linked to these libraries will have smaller data segments in Release 3.2. (SCR 6199) o Some formatting problems in the output of sar(1) have been corrected in this release. (SCRs 6258, 6273) o The values of the constants FLT_MAX and FLT_MIN in /usr/include/limits.h are correct in this release. (SCR 6268) - 4 - o In Release 4D1-3.1, csh(1) filename completion does not look right on VT100 compatible terminals. When an ESC is typed to complete a filename, the filename is completed correctly, but there was an error in the way the command line got updated on the terminal that resulted in some characters getting erased. This problem has been corrected. (SCR 6270) o The script /dev/MAKEDEV, which is used to create all the required special files in the /dev directory, has been modified in Release 3.2 so that it does not recreate or change the ownership or permissions on any special files that already exist in /dev when MAKEDEV is executed. This fixes several problems, among them the fact that the line printer spooling subsystem would no longer work after MAKEDEV was executed, since it reset the ownership on some /dev files required by lp. (SCR 6306) o In previous releases, the passwd(1) command would turn a blank line in /etc/passwd into a line '::0:0:::' the next time it was invoked after the addition of the blank line. This creates a user name '' (null) with a uid of 0 (root) and no password. This behavior has been corrected in 3.2. Blank lines are preserved and are treated as comments by all programs that use getpwent(3) to access the password file. (SCR 6315) o The wall(1) command in previous releases would sometimes create normal data files in the /dev directory. This no longer happens. (SCR 6318) o Several bugs were fixed in 3.2 that resulted in file systems remaining busy at system shutdown time. This would cause the unmount to fail (umount(1M)) which in turn would cause the system to think that the file systems in question were dirty and run fsck(1M) on them on the next boot, even though the system was shut down in an orderly fashion. (SCR 6393) o In Release 4D1-3.2, the file /usr/lib/acct/holidays gives the (United States) holidays for calendar year 1989. (SCR 6395) o On Release 3.1, an ordinary user could cause /etc/passwd to become an empty file by setting 'ulimit 0' (using sh(1)) and then using the passwd(1) command to change his password. This bug is fixed in 3.2. (SCR 6407) - 5 - o The declaration of m_set_procs on the m_fork(3P) manual page has been corrected to indicate that it returns an int. (SCR 6411) o The more(1) command no longer prints an error message when given a null file. (SCR 6412, 6812) o In Release 4D1-3.1, the default permissions on the directory '/' shipped on new systems were 'rwxrwxrwx' (777). Allowing users other than root to have write access to '/' is a serious security breach. Starting with 3.2, the permissions on '/' on new disks are 'rwxr-xr-x' (755). (SCRs 6448, 6604) o A bug was fixed in the driver for the IKON parallel printer controller board that could cause parallel printers not to work properly under some conditions. (SCR 6510) o The header file /usr/include/sys/sysmp.h now nests an include of /usr/include/sys/types.h, since sysmp.h references caddr_t. Both header files have nesting protection, so this change will not break any existing code that includes one or both of these files. (SCR 6517) o In Release 4D1-3.1, if the mt rewind command is issued when the SCSI tape is not positioned at a file mark, the tape will seek forward to the next file mark before rewinding. In Release 4D1-3.2, the tape will rewind immediately without any other positioning activity. (SCRs 6546, 6567) o A bug that could cause the swap(1M) command to hang the system when used to delete a swap partition (the -d option) has been fixed. (SCR 6555) o A bug in the Release 4D1-3.1 HyperNET driver that could cause system crashes when transferring large amounts of data has been fixed. (SCR 6561) o More detail has been added to the manual page for the sproc(2) system call (shared address space fork) to provide better information about how traditional process issues (delivery of signals, exit of child processes and so forth) are handled for processes created by sproc(2). (SCR 6597) o The man(1) command in Release 4D1-3.1 sometimes shows the same manual entry several times. For example, the command "man man" would display the following entries: - 6 - man(1), man(5) and then man(5) again. This no longer happens in Release 3.2. (SCR 6660) o Kernel crash dumps would sometimes hang indefinitely when dumping to ESDI drives using 4D1-3.1 software. This problem has been fixed. (SCR 6672) o The library routines getpwent(3) and getgrent(3) that access the passwd(4) and group(4) files now support a comment syntax: '#' in the first column. Several potential security breaches having to do with the handling of very long lines in /etc/passwd were also fixed. (SCR 6724) o There is a bug in certain revision levels of the firmware on Interphase 4201 ESDI disk controllers that causes the system to print the message "MACSI mode timeout" and hang. This typically occurs only during very heavy disk activity, involving lots of small transfers. If this error occurs on your system, contact Silicon Graphics to get your disk controller upgraded with firmware that corrects the problem. (SCR 6739) o The kernel driver module for the SCSI floppy disk drive is no longer automatically linked into IRIX kernels. On systems that have the floppy drive installed, the system administrator must edit the file /usr/sysgen/system and then run the lboot(1M) program to relink the operating system. Find the line in /usr/sysgen/system that looks like: "*INCLUDE: smfd".Change that line by simply removing the leading asterisk (*), which will converts the line from being a comment to a command that causes the floppy disk driver module to be included in the kernel. After making this change, run the command /etc/init.d/autoconfig, answering 'y' to the question "Automatically reconfigure the operating system (y or n)?". This is a shell script that executes lboot(1M). When this command completes, reboot the system using the reboot(1M) command. (SCR 6740) o In previous releases, vi(1) dumps core if the TERM variable is set to a terminal type that is not present in the terminfo(4) database. In Release 4D1-3.2, vi(1) will use terminal type 'dumb' in this situation. (SCRs 5104, 5959, 6765) o In previous releases, the system could not be booted into single-user mode if the file /etc/inittab was missing and the system console had been switched from - 7 - the graphics monitor to the diagnostic console. In 3.2, the system can be booted into single-user mode even if /etc/inittab is missing. (SCR 6781) o In previous releases, there are cases in which IRIX erroneously prints the message "DANGER - out of swap space". This has been fixed in 3.2. (SCR 6784) o When booting the system into an initstate other than the default after a system crash, it is no longer necessary to enter the boot command with the special initstate twice. In Release 4D1-3.2, the system doesn't have to shutdown again if it finds the root file system dirty. It runs fsck(1M) as before, but fsck remounts the root file system and the boot continues. (SCR 6786) o When invoked from within curses(3X), vi(1) did not always format its text correctly in previous releases. (SCR 6813) o The manual entry for usmalloc(3P) was changed to indicate that the header file malloc.h is required to access the functions documented in usmalloc(3P). (SCR 6874) o Some programs that linked with -lmalloc would continue to grow in virtual size even though all malloced segments were freed. This no longer happens. (SCR 6870) o When using ulimit(2) to get the maximum possible break value for the calling program, previous versions of IRIX would return a negative number. This has been fixed. (SCR 6893) o The list of timezones that the 'syssetup datetime' menu under sysadm(1) recognizes has been enhanced to include all the European, Pacific and East Asian timezones. It previously only included American time zones. (SCR 4032, 6894) o The uname(1) command now correctly distinguishes between the IP5 (16MHz 2-processor CPU), the IP7 (25MHz 2-processor CPU) and the IP9 (25MHz single processor CPU) in the output generated with the -m option. (SCR 7010) o Ldopen(3) did an uninterruptible sleep. The sleep is now interruptible. (SCR 6854) - 8 - 6.2 Bug_Fixes_to_Program_Development_Tools o The functionality of pixie_mp has been absorbed into pixie. Use pixie as you normally would. If the program is a "normal" one, just one Counts file is produced. If the program calls sproc, (e.g. a Fortran multi- processing program, or one that calls m_fork(3P)) then you automatically get multiple Counts files. (SCR 6771) o In C, an undefined structure member reference could generate an error message with some garbage in it. Now, it generates a message with the correct field name. (SCR 6383) o The function rint(3M) was added to libm. (SCR 6370) o dbx now identifies file types which cannot be debugged. If you attempt to use dbx to debug a directory, for example, dbx prints a message that identifies the file as a directory. (SCR 5311) o (edge) Problems with windows were fixed. (SCRs 4036, 4694) o (dbx) Added an optional ``pid '' clause to many dbx commands to reduce the need to type the ``active'' command. (SCR 4753) o (dbx) If one tried to set a breakpoint in shared- library code, the message ``no executable code found at line "prog.c":260052304'', for example, would appear. This problem has been fixed. (SCR 5453) o (dbx) If $promptonfork is 0, dbx no longer stops when the process forks. (SCR 6374) o (dbx) The man page now mentions the px alias. In addition, the manual page and the help file have much new information on dbx commands and expressions. (SCR 6881) o (ar) When a file name longer than 15 characters is presented to ar(1) it is truncated to 15 characters. Attempts to replace with the original name will fail. Now ar(1) mentions the partial match so one can tell why the match failed. (SCR 6736) o (uopt) The optimizer was fixed to eliminate a ``no case matches value in case statement'' message on legal - 9 - programs. Some such programs caused uopt to dump core. (SCRs 4918, 5577) o A prototype must be in scope at both the calling and called sites for the prototype argument promotions to work correctly unless the prototype matches the default argument promotions. A function definition using prototype form is its own prototype. Using old-style function declarations/definitions and prototype declarations/definitions for the same function will usually yield an erroneous program. (SCR) 5002 o The following development libraries were moved to the development image of the distribution: /usr/lib/libcrypt.a /usr/lib/libdgl.a /usr/lib/libutil.a (SCR 5781) o (mkshlib) mkshlib was creating shared library archive object files with garbage in the cprmask[] fields of the object header. This made binary comparisons with earlier releases really difficult. Now the fields are initialized correctly. (SCR 5919) o ar(1) was moved to the execute only portion of the ---------- end of Part 2