IRIX 3.2 Release Notes (Part 2 of 3)

Jim Barton jmb at maddog.sgi.com
Mon Nov 20 05:39:47 AEST 1989


-------------------- 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 <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



More information about the Comp.sys.sgi mailing list