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