IRIX 3.2 Release Notes (Part 3 of 3)

Jim Barton jmb at maddog.sgi.com
Mon Nov 20 05:40:54 AEST 1989


-------------------- cut here -------------------
	    distribution for wider availability	to customers.  (SCR
	    5975)

	  o The	ar(1) man page now mentions explicitly which
	    operand is taken as	the archive name.  (SCR	6840)

	  o (cc) In C in earlier releases a return from	main()
	    would always return	0.  Now	any return value from
	    main() is correctly	returned to the	environment.  This
	    matches the	proposed ANSI C	standard.  User	programs
	    which fail to either exit(2) or return a value from
	    main() will	return a useless garbage status	to their
	    environment.  (SCR 6031)

	  o (cc) A bug in ccom prevented typedef's to pointers to
	    functions with prototypes from working.  (SCR 6278)	The
	    test case is:
		    typedef int	(*Fcnptr )(int);
		    Fcnptr _tkFcnCallEvent_fcn ;

	    This resulted in errors such as:
		    ccom: Error: t.c, line 3: redeclaration of
	    Fcnptr
			  Fcnptr _tkFcnCallEvent_fcn ;
			  -------------------------^
		    ccom: Error: t.c, line 3: syntax error
			  Fcnptr _tkFcnCallEvent_fcn ;

				  - 10 -

			  -------------------------^

	  o (cc) The bogus message:  ``ccom: Warning: idbg.c, line
	    5100: illegal member use: u_format'' no longer
	    occasionally appears associated with user source
	    errors.  (SCR 6385)

	  o (prof) -clock is now documented correctly in the
	    prof(1) man	page.  (SCR 6385)

	  o (unix and m_fork and pixie)	Now multi-processing
	    programs get their own block counts	by thread.  (SCR
	    6772)

	  o (fsplit) fsplit(1) now works with blank lines between
	    subroutines.  (SCR 7025)

	  o (libc) strtod(3) now has a prototype in <math.h> to
	    match atof(3).  This is non-standard and these will	be
	    moved to <stdlib.h>	for a future release.  (SCR 7091)

	  o (f77)  The following program did not work correctly	due
	    to the forced misalignment of a and	b off of double
	    boundaries.	 (SCR 7141)
	     c	   change i to anything	beside double, bug still
	    occurs.
	     c	   order of common seems significant.

		  double precision a, b
		  integer i
		  common /x/ i,	a, b
		  data i/0/

		  a = -79.0
		  b = 79.0
		  print	*, i, a, b
		  end Code generation has been corrected to handle
	    this correctly.

       6.3  Bug_Fixes_to_Graphics

	  o Microcode bug with either backface or Tmesh	on 4D/20s
	    is fixed.  (SCR 6487)

	  o Personal IRIS - Self-intersecting polygon fills now
	    work correctly. (SCR 6943)

	  o Double buffered depthcued polygons and lines were not
	    dithered on	the Personal IRIS because of inaccuracies
	    resulting from floating point roundoff.  Now depthcued
	    as well as gouraud shaded polygon and lines	are

				  - 11 -

	    dithered in	both RGB and colorindex	modes. The Personal
	    IRIS with an RE1 chip and 24 bitplanes can not dither
	    in colorindex mode.	 (SCR 6496)

	  o Personal IRIS - The	source code was	optimized to
	    improve line performance using bgnline, v,v,.. endline
	    calls.  (SCR 6833)

	  o Personal IRIS - The	line stipple was advanced one pixel
	    too	far at junction	of two line segments. The stipple
	    is correctly backed	up one bit.  (SCR 6702)

	  o Personal IRIS - Wide lines and curveit no longer cause
	    stray lines	to be drawn. (SCR 6669)

	  o Personal IRIS - Picking no longer causes systems to
	    hang when the last element in the pick buffer is
	    negative.  (SCR 6547)

	  o When you try to render polygons that have nearly 256
	    vertices and are non-monotonic in screen space on the
	    IRIS-4D GT or GTX with graphics from non-GT's, the
	    window manager sometimes crashes. This has been fixed.
	    (SCR 6944)

	  o An error in	4x4 matrix inversion that caused some
	    invertible matrices	to be inverted incorrectly was
	    corrected.	This error may have produced incorrect
	    lighting in	rare instances.	 (SCR 6836)

	  o The	man pages now document the limit for points per
	    polygon  The current limit is 255 on the 4D/XX machines
	    for	the polf, poly,	pmv, pdr, and any other	polygon-
	    related commands.  (SCR 3750)

	  o The	gamma(6T) man page now correctly represents the	4D
	    product.  (SCR 4583)

	  o The	winconstraints(3g) man page now	states that
	    winconstraints must	be called AFTER	winopen().  (SCR
	    4723)

	  o Certain GL routines	are only available on the GT. Yet
	    there is no	mention	of this	on the man pages (e.g.
	    blendfunction(3G)).	 Hence,	the new	"GL Reference
	    Guide" (007-1203-010), which contains the printed
	    versions of	the GL man pages, is therefore really the
	    "*GT* GL Reference Guide".	Non-GT customers could get
	    really confused. The man pages now mention system-
	    specific restrictions.  (SCR 4954)

				  - 12 -

	  o There was no clear explanation of how the lmbind uses
	    the	current	matrix on the viewing stack to do the
	    modeling and viewing transformation	of the light.  This
	    is discussed in the	Graphics Library Programming Guide.
	    (SCR 5012)

	  o The	mathematical implementation of lighting	has been
	    explained in the the graphics documentation.  (SCR
	    5013)

	  o The	GF3 card now checks whether the	zbuffer	board is
	    installed.	(SCR 5099) zbuffer(TRUE); printf("zbuffer:
	    %d0, getzbuffer); This will	return 1 if zbuffer is
	    installed and 0 if not.

	  o The	curve commands and the lighting	commands used the
	    same matrix	stack space causing failures due to
	    interference. (SCR 5160)

	  o An exec() of a process that	did a ginit caused a kernel
	    panic.  (SCR 5541)

	  o The	gammaramp(3G) man page now mentions the	"4D"
	    implementation of gammaramp.  (SCR 6005)

	  o In 3.1C or earlier,	the screenmask was incorrectly set,
	    and	as a result the	top scan line could not	be written
	    to.	 This is fixed in 3.1D.	 A second related bug was
	    that sbox was not always setting the right pixels in
	    conjunction	with the screen	mask.  This is fixed in
	    3.2.  (SCR 6078)

	  o The	gversion man page has been changed to reflect the
	    actual string returned.  (SCR 6139)

	  o Concave bowtie polygons now	fills correctly	on 4D/20.
	    (SCR 6204)

	  o Fudge() now	work correctly with keepaspect(). (SCR
	    6211)

	  o The	shaderange equation is now correct in the GT
	    Graphics Library User's Guides (SCR	6223)

	  o The	man page for blendfunction() had the source and
	    destination	reversed.  (SCR	6224)

	  o The	Graphics Library Programmer's Guide incorrectly
	    stated that	the blending section applied only to GT
	    systems that have alpha planes.  Blending does work	on
	    GT systems without alpha planes.  (SCR 6249)

				  - 13 -

	  o The	man page for lRGBrange has been	included in the
	    release.  (SCR 6304)

	  o Binding a light in multiple	windows	went into an
	    infinite loop.  (SCR 6424)

	  o The	4Sight User's Guide incorrectly	stated that ismex()
	    always returns TRUE(1).  It	returns	TRUE only if 4Sight
	    is running,	otherwise it returns FALSE(0) (SCR 6430)

	  o The	text of	the GL Programming Guide was changed to
	    reflect the	correct	returned value for blkread(3G).
	    (SCR 6432)

	  o Unqdevice did not work correctly.  (SCR 6469)

	  o The	GT and GTX implementation of the GL routine
	    feedback() would crash the pipe if invoked with a
	    buffer size	greater	than 32k (shorts).  (SCR 6576)

	  o Patches did	not work in mmode(MVIEWING) on the GT.	All
	    forward difference matrix calculations are no longer
	    done in the	graphics hardware.  (SCR 6638) The non-GT
	    library did	not have rectread and rectwrite	enabled.
	    (SCR 6791)

	  o Writemask did not reset properly when switching
	    manually.  Writemask was being reset to 4095 instead of
	    1 when leaving overdraw.  (SCR 6792, 6794)

	  o The	c3s command didn't work	on the GTX due to 3 way
	    transfers from short address boundaries..  (SCR 6819)

	  o The	lsetdepth() man	page did not reflect the difference
	    between the	Personal Iris and the Power Series
	    graphics.  (SCR 6842)

	  o Self-intersecting polygon fills did	not work correctly.
	    (SCR 6943)

	  o Picking mode now works on the 4D GT.  (SCR 6847)

	  o Short integers weren't sign	extended on the	GTX product
	    line.  (SCR	6863)

       6.4  Bug_Fixes_to_the_Installation_Tools

		The manual page	has been updated to correctly
	    document that install(1) claims the	'-f' option must be
	    used in conjunction	with '-s', '-o'	or

				  - 14 -

	  o The	help file has been updated and now correctly states
	    that spacecheck can	be defeated with:  set spacechk	off
	    (SCR 5849)

	  o The	installation tool properly clears empty	products
	    out	of the installation history.  (SCR 5871, 6720)

	  o Non-graphics terminals get a default screen	size of	24
	    lines so the installation screens do not scroll off	the
	    screen.  (SCR 5895,	6717)

	  o Distcp -n now supports writing tape	without	the
	    standalone tools.  (SCR 5960, 6694)

	  o Installation documentation have been corrected to
	    support loading of the miniroot from tape on non-
	    Personal Iris machines.  (SCR 6358)

	  o The	installation tools no longer make the assumption
	    that all computers are workstations. Therefore,
	    graphics dependent code is not installed on	servers
	    with exception of IP6 based	servers.  (SCR 6570)

	  o GL development headers are no longer inadvertently
	    being shipped.  (SCR 6618)

	  o Uname and versions no longer report	the operating
	    system revision name differently.  (SCR 6665)

	  o The	installation tools no longer incorrectly handle
	    symbolic links set up by the user before installation.
	    (SCR 6666)

	  o distcp now correctly copies	distribution data from tape
	    to disk.  (SCR 6692)

	  o The	installation tools no longer have several screens
	    where text wraps around the	end of the line. (SCR 6747)

	  o The	installation tools now forcefully rewind the tape
	    any	time there is a	possibility that the tape has not
	    been rewound.  (SCR	6988)

	  o Network installation fails if the remote login account
	    on the remote host sends spurious output to	the screen
	    during a login session.  The Release Notes document	how
	    to test for	this condition and work	around it if it
	    exists.  (SCR 7137)

>>>>>>>>>>
3.2 Release notes, Chapter 7
>>>>>>>>>>

				  - 1 -

       7.  Known_Problems_and_Ways_to_Work_Around_Them

       This chapter describes known problems and ways to work
       around them the 4D1-3.2 release.

       7.1  IRIX

	  o The	Revision 10 firmware in	IRIS-4D	Series workstation
	    and	servers	does not display memory	size when you power
	    up your system. To see the memory size, enter the
	    following command at the PROM monitor prompt (>>) and
	    type:  hinv

	  o The	IRIX version of	vi was enhanced	in this	release	to
	    allow the user to control the intercharacter timeout.
	    This timeout is the	length of time that vi waits after
	    receiving an escape	(ESC) for another character
	    comprising an escape sequence.  For	example, many
	    popular types of terminals use escape sequences
	    consisting of ESC followed by several characters to
	    represent single keypresses	of terminal arrow keys.	 Vi
	    needs to be	able to	distinguish the	typing of the ESC
	    key	from an	escape sequence	generated by pressing an
	    arrow key.

	    This is done by waiting for	the number of milliseconds
	    specified by the 'timeout' variable	after the ESC
	    arrives.  If no other characters arrive before the
	    timeout expires, then the ESC is treated as	if just	the
	    ESC	key was	pressed.  The default setting of 'timeout'
	    is 200 milliseconds.
	    When vi is used in a network environment or	through
	    modems, it may be necessary	to increase the	timeout
	    value in order for escape sequences	to be recognized.

	    The	timeout	variable can be	set from within	vi or ex,
	    by issuing a set command.  For example:  :set
	    timeout=400	sets the intercharacter	timeout	to 400
	    milliseconds.  The current value of	'timeout' can be
	    displayed by :set timeout or :set all A set	command	for
	    timeout can	also be	added of the user's .exrc file.

	  o Systems equipped with the VME-based	ISI QIC-02 quarter
	    inch cartridge tape	controller ) cannot make multi-
	    volume backup tapes	using the tar, bru or cpio
	    commands; use the hinv command to determine	which type
	    of tape drive you have on your system.  This is due	to
	    the	inability of the controller to recover data after
	    it has been	sent to	the tape drive when the	data on	the
	    tape media spans the physical end-of-tape mark.

				  - 2 -

	    Multi-volume backup	will function on all other SGI-
	    supplied quarter inch cartridge drives as well as the
	    VME-based 1/2" tape	drives.	 These include the 60 MB
	    and	150 MB SCSI tape drives.

	    See	Appendix A, ``Backing Up and Restoring Your
	    System'' for more information.

	  o On machines	configured as servers, during heavy use,
	    the	following message might	appear on the console:
	    WARNING: mfree map overflow. Lost <count> items at
	    <addr>.  This indicates a data array in the	kernel is
	    too	small for the amount of	machine	usage. The size	of
	    this array can be increased	by editing the file:
	    /usr/sysgen/master.d/kernel, and increasing	the
	    parameter SPTMAP.  Increasing this parameter from 50 to
	    100	should be sufficient. After this modification, it
	    is necessary to reconfigure	the kernel, and	reboot.
	    /etc/init.d/autoconfig prompts for configuring the new
	    kernel.  See lboot(1M) for instructions for
	    reconfiguring the kernel.

	  o On machines	configured as servers, which make heavy	use
	    of disk storage, it	may be possible	to increase the
	    performance	of the system by increasing the	size of	the
	    IRIX disk buffer cache. This can be	done by	editing	the
	    file:  /usr/sysgen/master.d/kernel,	and increasing the
	    parameter NBUF from	100 to 200 (or more). Whether this
	    will yield any performance gain is entirely
	    application-dependent, however, this modification has
	    proven beneficial for applications which generate large
	    amounts disk traffic.  After the modification, it is
	    necessary to reconfigure the kernel, and reboot.  The
	    simplest way to reconfigure	the kernel is to run
	    /etc/init.d/autoconfig.  See lboot(1M) for instructions
	    for	reconfiguring the kernel.

	  o On machines	configured as servers, the maximum number
	    of processes allowed to be in execution may	prove to be
	    too	small. When the	number of active processes is at
	    the	maximum, attempts to create new	processes (e.g.,
	    issuing a command from the shell), will fail.  This
	    maximum number of processes	is a configurable
	    parameter, given by	the NPROC parameter in the file
	    /usr/sysgen/master.d/kernel.  As shipped, the NPROC
	    entry is 80	+ (MAXUSERS * 16), which yields	96
	    processes active at	any time.  Increasing this number
	    to perhaps 300, should remedy the problem of running
	    out	of processes. Another way to increase this
	    parameter is to increase the MAXUSERS definition, found
	    in the file	/usr/sysgen/system.  Note that increasing

				  - 3 -

	    the	MAXUSERS definition has	effects	on sizes of other
	    kernel structures. After the modification is made to
	    the	NPROC or MAXUSERS parameters, it is necessary to
	    reconfigure	the kernel, and	reboot.	 See lboot(1M) for
	    instructions for reconfiguring the kernel.

	  o If you are using non-standard disk partitions, you will
	    have to create the device special files that reference
	    them, since	the device special files corresponding to
	    disk partitions 2, 3, 4, 5,	11, 12,	13, 14,	and 15 are
	    no longer created by MAKEDEV.  These device	special
	    files were the ones	in the /dev/dsk	and /dev/rdsk
	    directories	whose names ended in s2, s3, s4, s5, s11,
	    s12, s13, s14, and s15.  For example,
	    /dev/dsk/dks0d2s3, /dev/rdsk/ips1d1s5, and
	    /dev/dsk/xyl0d2s12 used to be created by MAKEDEV, but
	    are	no longer.  MAKEDEV is a script	in the /dev
	    directory that creates all the device special files
	    that are located therein.  MAKEDEV was changed in order
	    to save inodes, since these	devices	were never used	in
	    standard configurations.
	    If you need	to use them, you must create them manually
	    using mknod.  To create the	above example devices, you
	    would use mknod as follows:	 # mknod /dev/dsk/dks0d2s3
	    b 22 67 # mknod /dev/rdsk/ips1d1s5 c 4 85 #	mknod
	    /dev/dsk/xyl0d2s12 b 6 44 Device file names	are
	    represented	by XXXCdNPP, where XXX refers to disk type
	    (dks is SCSI disks,	major number 22; ips is	ESDI disks,
	    major number 4; xyl	is SMD disks, major number 6), C
	    refers to controller number, N refers to device address
	    (also known	as disk	number), and PP	refers to partition
	    name.  For our purposes, the partition number is the
	    partition name without the leading s, i.e. partition
	    name s2 references partition number	2.  The	minor
	    number can be found	using the following equations:

	    For	SCSI: (N * 32) + partition number
	    For	ESDI and SMD: (C * 64) + (N * 16) + partition
	    number

	    These devices will have to be recreated whenever
	    MAKEDEV is executed.  Note that MAKEDEV is always
	    executed when installing IRIX.  Refer to mknod(1m),
	    dks(7), ips(7), and	xyl(7) for more	information.

	  o There is a bug in the bstream(1) buffering filter:	if
	    the	last input block is less than the current output
	    blocksize, the block is dropped.  In other words, any
	    fragment of	a block	at the end of the input	file will
	    not	be written to the output.  No warning message is
	    generated to indicate that data has	been lost and the

				  - 4 -

	    program still exits	with normal status in this case.
	    The	manual entry says that such trailing partial blocks
	    will be padded with	zeros to the size of a complete
	    block and written out, but this is not true	of the
	    software shipped in	release	3.2.  Note that	this is	not
	    a problem when using bstream(1) to process the output
	    of tar(1) or cpio(1), since	these programs never write
	    partial blocks.  When the input to bstream(1) is from a
	    program that does not do output blocking, however, data
	    may	be silently lost.

	  o The	initialization file for	pmake(1) contains some
	    invalid entries.  To fix them, edit
	    /usr/include/make/system.mk.  At the end of	the file,
	    the	``.sh.out'' rule needs to remove its target.  The
	    entry should read:
	     .sh.out :	      rm -f $(.TARGET)	     cp	$(.IMPSRC)
	    $(.TARGET);	chmod a+x,u+w  $(.TARGET) (The first
	    character for the rm and cp	lines is a tab.)  The rules
	    and	command	lines for ``.o.a'' and ``.u.b''	should be
	    deleted.

       7.2  Program_Development_Tools

	  o The	C language expression: x >= y +	1 where	x and y	are
	    unsigned
	    (y may be an expression) is	incorrectly compiled as	x >
	    y.

	    The	resulting code will work correctly for all values
	    of y except	0xffffffff.  Similarly,	x < y+1	is
	    transformed	to x <=	y, which is wrong if y is
	    0xffffffff.	 In either case, the way to get	around this
	    is to assign y + 1 to a variable and test x	against	the
	    variable.

	  o When compiling a C program the message ``symbol table
	    full'' might appear.  Instructions to increase the size
	    of the table were inadvertently left off of	the
	    message.   The default table size is 5000 symbols.	To
	    increase the symbol	table to 12,000	symbols	(for
	    example) add the following option to the cc(1) command:
	     -Wf,-XNd12000

	  o The	following routine float	f(float	x) { return((x >
	    0.5) ? 1.0 : 0.0); } Returns an incorrect value. The
	    problem is specific	to ``float'' arguments and returned
	    values.  Nearly any	change to the source (such as
	    assigning the result of the	query operator to a
	    temporary and returning the	temporary) will	work around
	    the	problem.

				  - 5 -

       7.3  Networking

	  o The	Visual Administration networking tool currently
	    works properly if you are using the	default
	    ifconfig(1M) netmask. (If your network topology uses
	    subnets, the netmask will need to be different.)  The
	    network tool does not handle non-default netmasks and
	    will disable the ``nets'' view in the tool.	You can
	    access only	to the ``hosts'' view.

	    If you want	your system to use a netmask other than	the
	    default value, you need to take the	following steps.

	     1.	 Add the following line	to the file
		 /etc/config/ifconfig-1.options.  If this file does
		 not exist then	you need to create it.	netmask
		 mask Specify mask as a	hex number 0x..

	     2.	 Reboot	your system.

	     3.	 To confirm the	new netmask, type:  ifconfig
		 interface_name	Replace	interface_name with:

	     __________________________________________________________
	     ec0	      4D/20,4D/25 (Personal IRIS & DataStation)
	     et0	      4D/1x0, 4D/2x0 (Power Series)
	     enp0	      4D/50-80

       7.4  Diskless_Personal_IRIS

	  o The	4D/20 and 4D/25	Diskless workstations for a
	    particular class and their server must be in same sub-
	    net.

       7.5  HyperNET

	  o Running HyperNET between two workstations on the same
	    adapter used to cause any IRIS-4D to crash while
	    transferring large amounts of data.

       7.6  Graphics

	  o  The window	system now supports the	imakebackground()
	    function, but there	are some problems with its use:

	     1.	 Killing an imakebackground program is supposed	to
		 cause the window manager to repaint the currently
		 defined window	"root" as set by the "Windows"
		 menu, "Window Style" submenu, and its "More Roots"

				  - 6 -

		 submenu, the default being the	familiar sky-blue
		 "Plain	Root".	The repaint often does not happen,
		 leaving the screen background black.  The way to
		 work around this is to	select "Redraw All" from
		 the "Windows" menu.  (You may have to select
		 "Redraw All" two times).

	     2.	 Use of	imakebackground	programs on 4D50G, 4D60G
		 systems is not	recommended because window painting
		 errors	can result when	the complexity of the
		 window	layout results in a clip list that is too
		 large to be supported by the graphics hardware.
		 This problem does not occur on	any Personal IRIS,
		 GT, or	GTX systems.

	  o If you run any double-buffered RGB mode program (such
	    as Visualizer or QuickModel) at the	same time as any
	    double-buffered colorindex mode program (such as the
	    IRIS WorkSpace), the window	that doesn't contain the
	    cursor is displayed	with incorrect colors.

	  o On GT's, programs that do prefsize,	winopen,
	    winconstrains should have a	sleep after the	winopen	to
	    avoid small	verticle lines at the bottom of	the window.
	    If you see these lines, move the window and	they will
	    go way.

       7.7  4Sight

       When 4Sight receives a request from a remote machine to
       create a	NeWS window, it	tries to convert the machine's
       Internet	address	into a name.  4Sight use the Domain Name
       Server (named(1M)) or /etc/hosts	to do this.  (It does not
       use the Yellow Pages.)  If there	is a problem doing this
       conversion, 4Sight might	not be able to start up	or create
       windows.

       The file	/usr/etc/resolv.conf specifies the Internet
       addresses of machines running the name server (see
       resolver(4) for details).  If the file does not exist, the
       named on	the local machine is tried before using	the
       /etc/hosts file.	 If the	resolv.conf file exists	but is not
       setup properly (e.g., it	contains addresses of nonexistent
       machines), 4Sight gives up and prints an	error message in
       /usr/adm/SYSLOG.	 If all	the name servers in resolv.conf
       become unreachable after	4Sight starts, 4Sight will not be
       able to create windows. Error messages in /usr/adm/SYSLOG
       with the	format "getsocketpeername: Can't find name for ..."
       indicate	a name service failure.

				  - 7 -

       The name	service	failures may be	transient; try to create
       the window again. If it consistently fails, make	sure the
       ethernet	cable is still plugged in and the name servers
       listed in resolv.conf are reachable.  Use ping(1M) and
       nslookup(1M) to check for reachability.	If the name server
       is not used, make sure /etc/hosts has entries for
       ``localhost'' and all the remote	hosts that access your
       IRIS.

       For information on setting up named and resolv.conf, see	the
       TCP/IP User's Guide and resolver(4).

       7.8  X11_Window_System

       The performance and functionality of the	X11 Window System
       product on the 4D/[50,60,70,80]G	(non GT	or GTX)	platforms
       is less than that of the	other product lines due	to hardware
       limitations.  We	suggest	upgrading your system to a GT
       (Graphics Turbo)	if you are going to make extensive use of
       the X11 Window System product.

>>>>>>>>>>
3.2 Release notes, Chapter 8
>>>>>>>>>>

				  - 1 -

       8.  Documentation_Errors_and_Notes

       This chapter contains errors in the documentation,
       suggestions for workking	around certain problems, and
       additional notes	for this release. Generally, on-line
       documentation, such as the man pages is more up-to-date than
       the printed hard	copies.	 This is not true for this
       document.

       8.1  Documentation_Errors

       8.1.1  IRIX

	  o Section 3.2, ``Booting the Workstation'' of	the IRIS-4D
	    Series Owner's Guide fails to mention fully	how to boot
	    an IRIS-4D from a ASCII terminal attached to port 1
	    (ttyd1). Booting from an ASCII terminal is necessary
	    when you don't have	a graphics console or you want to
	    run	diagnostics without graphics running on	the
	    graphics console.

	    To boot your IRIS-4D from an an ASCII terminal, you
	    must set the PROM Monitor environment variable
	    ``console.''   To set this variable, enter the
	    following command at the PROM Monitor prompt:  setenv
	    console d

	    NeWS is not	automatically started when you boot from an
	    ASCII terminal.  To	run NeWS, enter	the following
	    command once you have logged on:  /etc/gl/restartgl

	    This executes the graphics console daemon, grcond,
	    which starts up the	NeWS server.  When you boot from an
	    ASCII terminal, the	console	wsh window doesn't appear
	    on the graphics console screen.  This window is
	    synonymous with the	PROM Monitor environment variable
	    ``console,'' which is now set to run on the	ASCII
	    terminal and not the graphics console.

	  o The	hardcopy of the	find(1)	manual page mentions the
	    -prune option,  which is not implemented in	software
	    release 4D1-3.2.  The online version of the	find(1)
	    manual page	is correct. See	man for	information about
	    viewing the	online manual pages.

       8.1.2  Program_Development_Tools

       8.1.2.1	C_Language_Reference_Manual

				  - 2 -

       8.1.2.1.1  Chapter_6_-_Declarations  The	following paragraph
       updates the description of prototypes in	Section	6.4,
       "Meaning	of Declarators."  This new description supersedes
       the paragraph beginning,	"A parameter-type-list..."

       A parameter-type-list declares the types	of, and	may declare
       identifiers for,	the formal parameters of a function.  When
       a function is invoked for which a function prototype is in
       scope, each actual parameter is converted to the	type of	the
       corresponding formal parameter specified	in the function
       prototype.  If the list terminates with an elipsis (...),
       only the	parameters specified in	the prototype have their
       types checked; additional parameters are	converted according
       to the default argument promotions (see Section 5.1).
       Otherwise, the number of	parameters appearing the in
       parameter list at the point of call must	agree in number
       with those in the function prototype.  A	prototype must be
       in scope	at both	the calling and	called sights 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 declaration/definitions
       and prototype declarations/definitions for the same function
       often yields an erroneous programs.

       8.1.2.1.2  Chapter_10_-_Compiler_Control_Lines  Section
       10.4, ``Conditional Compilation'' incorrectly states that
       you should use #elif between a #if directive and	#else or
       #endif directives if we have more than 2	conditionals.  See
       cpp(1) for more information.

       8.1.2.2	dbx_Reference_Manual  There are	several	features in
       dbx newer than presented	in the reference manual.  The man
       page and	help file /usr/lib/dbx.help have been extensively
       revised to document dbx properly.  Both of the on-line
       documents are more complete than	the reference manual.
       Though there is considerable overlap between the	man page
       and the help file, there	is some	information in each that is
       not in the other.

       8.1.2.3	Porting_Applications_to_the_IRIS-4D_Family  In
       general,	statements in Section 1	and 2 about the	GT are also
       true for	the Personal IRIS.  See	the GL manual pages for
       up-to-date information.

       8.1.2.3.1  Section_2_-_IRIS_3000_to_4D_Conversion_Tutorial
       Section 6.2, ``Cross-hair Cursors'' states that color 3 is
       used for	the cross-hair cursor. The GT and Personal IRIS	use
       color 1.	 See mapcolor(3G).

				  - 3 -

       8.1.2.4	Porting_FORTRAN_Code_to_IRIS-4D_Workstations

       8.1.2.4.1  Chapter_3_-_Code_Compatibility   Section 3.3,
       ``I/O Compatibility'' should mention that the IRIS-4D
       FORTRAN compiler	does not support a BUFFERED specifier to
       the OPEN	statement.  Instead, use setbuf() to set a buffer
       and size.

       8.2  Installing_the_Dial_and_Button_Box

       Some changes have been made that	affect the installation	of
       the Dial	and Button box.	 To install the	dial and button	box
       an additional change must be made to the	line that begins
       with diald.  Step number	3 fails	to mention that
       /dev/console should be changed to /dev/null just	as x is
       changed to 234.

       Step number 4 should mention when you cycle the power on	the
       Dial and	Button box, the	LED's indicate the knob	numbers	and
       the lights illuminate when you press them.  In addition,	the
       box says	``ready'' when you reboot or log in.  To restart
       the dial	daemon,	log out	then log back in.

       8.3  TCP/IP_User's_Guide'

       There are errors	in Chapter 5 of	the TCP/IP User's Guide
       Version 2.0, ``BIND Name	Server Operations'' is not
       mentioned in the	Guide's	errata sheet.  Section 5.9,
       ``Standard Resource Record Format'', describes 2	address
       classes,	IN and ANY. The	ANY address class is not supported
       by BIND version 4.8.  The description of	the HINFO resource
       record in Section 5.9 and the HINFO examples in the sample
       file in Section 5.11.7 mistakenly use the address class ANY;
       they should use IN instead.

       8.4  Graphics_Library_Reference_Manual

       The newly printed GL Programmer's Guide does not	document
       these GL	routines:

				  - 4 -

       attachcursor	       blankscreen
       blanktime	       blendfunction
       curson/cursoff	       deflinestyle
       defpattern	       getcpos
       getgdesc		       getlsrepeat
       getlstyle	       getlwidth
       getmonitor	       getothermonitor
       getpattern	       getplanes
       greset		       gversion
       linewidth	       logicop
       lsrepeat			       pntsmooth
       popattributes	       pushattributes
       sbox		       sboxf
       setlinestyle	       setmonitor
       setvideo		       subpixel
       videocmd		       wmpack

       See the GL manual pages for a description of these routines.

       8.5  Graphics_Library_Reference_Manual

	  o zfunction()	is implemented on all 4D products. However,
	    the	GL reference manual says that it is only on the
	    4D-GT machines.

	  o The	blkqread(3G) man page says that	the return value of
	    blkqread is	the number of events returned.	In fact, it
	    is the number of shorts returned (twice as big as the
	    other number would be).
---------- end of Part 3



More information about the Comp.sys.sgi mailing list