Solaris 10 7/07 HW Release Notes

Solaris Commands and Standards

The following section describes behavior changes in certain commands and standards in Solaris 10 OS.

Failed Unconfigure Command cfgadm Might Succeed Later Without Notice (6483258)

Sometimes the cfgadm -c unconfigure command fails because of pending I/Os. With the changed kernel, the command is retried offline. The cfgadm's unconfigure command might, however, succeed later without any notice to the user.

Workaround: Run the cfgadm -al command.

Bash 2.0.5b No Longer Sets Some Environment Variables

Solaris 10 OS includes Bash 2.0.5b. This shell no longer automatically exports the following variables to the environment:

This new behavior applies even if the shell assigns default values to these variables.

Workaround: Export these variables manually.

New ln Utility Requires -f Option

The behavior of /usr/bin/ln has changed to adhere to all of the standards from SVID3 through XCU6. If you use the ln command without the -f option to link to an existing target file, the link is not established. Instead, a diagnostic message is written to standard error, and the command proceeds to link any remaining source files. Finally, the ln command exits with an error value.

For example, if file b exists, the syntax ln a b generates the following message:


ln: b: File exists

This behavior change affects existing shell scripts or programs that include the ln command without the -f option. Scripts that used to work might now fail in Solaris 10 OS.

Workaround: Use the -f option with the ln command. If you have existing scripts that execute the link utility, make sure to modify these scripts to comply with the command's new behavior.

New tcsh Rejects setenv Variable Names That Use a Dash or an Equals Sign

In Solaris 10 OS, tcsh has been upgraded to version 6.12. This version no longer accepts environment variables whose names use a dash or an equals sign. Scripts that contain setenv lines and that work in earlier Solaris versions might generate errors in the current Solaris 10 release. The following error message is displayed:


setenv: Syntax error

For more information, refer to the tcsh man page for the Solaris 10 OS.

Workaround: Do not use the dash or equals sign in names for environment variables.

STDIO getc Family EOF Condition Behavior Change

Applications that were built in strict standard C conformance mode are affected by the behavior changes of certain library functions. An example is applications that were compiled by using the cc -Xc or c89 compilation mode. The behavior has changed for the following library functions:

A formal interpretation of the 1990 C Standard requires that after an end-of-file condition is set, no more data is returned from the file on subsequent input operations. The exception is if the file pointer is repositioned or the error and end-of-file flags are explicitly cleared by the application.

The behavior for all other compilation modes remains unchanged. Specifically, the interfaces can read additional newly written data from the stream after the end-of-file indicator has been set.

Workaround: Call fseek() or clearerr() on the stream to read additional data after the EOF condition has been reported on the stream.

Output Columns of the ps Command Have Been Widened

Due to larger UIDs, processor ids, and cumulative execution time, the columns of the ps command output have been widened. Customer scripts should not assume fixed output columns.

Workaround: Scripts should use the -o option of the ps command.

For more information, see the ps(1) man page.

Command ping -v Does Not Work on IPv6 Addresses (4984993)

The command ping -v fails when the command is applied to addresses that use Internet Protocol version 6 (IPv6). The following error message is displayed:


ping: setsockopt IPV6_RECVRTHDRDSTOPTS Invalid argument

Workaround: None. To obtain the same ICMP packet information that ping -v provides, use the snoop command.