The following section describes behavior changes in certain commands and standards in Solaris 10 OS.
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.
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.
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.
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.
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.
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.