次の節では、Solaris 10 OS における特定のコマンドと標準の動作変更について説明します。
mutex_t および pthread_mutex_t 型のオブジェクトは、8 バイト境界で整列されるアドレスで始まる必要があります。この要件を満たさないアプリケーションは失敗します。次のエラーメッセージが表示されます。
*** _THREAD_ERROR_DETECTION: lock usage error detected *** ... "mutex is misaligned" OR: "condvar is misaligned" |
回避方法: 環境変数を次の値に設定すると、整列エラーが stderr で報告されます。
THREAD_ERROR_DETECTION=1
THREAD_ERROR_DETECTION=2
THREAD_ERROR_DETECTION 環境変数をこのどちらかの値に設定してアプリケーションをテストし、準拠していないアプリケーションを修正するように依頼してください。
このバグは、Active Directory 環境で winbind を指定して Samba サーバーを使用しているときに発生します。Solaris 10 5/09 リリースには、Samba バージョン 3.0.28 が含まれています。Active Directory サーバーからすべてのユーザーまたは 1000 人を超えるユーザーのクエリー検索を行うと、winbind によって最初の 1000 件の結果だけが取得されます。
回避方法: ありません。
PgAdmin III 1.6 は、PostgreSQL バージョン 8.3 の管理には使用できません。PgAdmin 1.6 は、新規バージョンの PostgreSQL に含まれるカタログ構造を認識しません。さまざまなエラーメッセージが表示されます。
回避方法: PgAdmin III バージョン 1.8 にアップグレードします。
このリリースでは、次に示す Solaris Trusted Extensions のマニュアルページが改訂されています。
add_allocatable(1M)
remove_allocatable(1M)
label_to_str(3TSOL)
tsol_getrhtype(3TSOL)
tnzonecfg(4)
改訂されたマニュアルページは、man コマンドでは表示できません。改訂されたマニュアルページを確認するには、『Solaris Trusted Extensions Reference Manual』を参照してください。
Solaris 10 OS には Bash 3.00 が含まれていますが、このシェルでは次の変数が自動的には環境にエクスポートされなくなりました。
HOME
PATH
SHELL
TERM
HOSTNAME
HOSTTYPE
MACHTYPE
OSTYPE
この動作変更は、シェルによってこれらの変数にデフォルト値が割り当てられる場合にも適用されます。
回避方法: これらの変数を手動でエクスポートしてください。
/usr/bin/ln の動作は、SVID3 から XCU6 までのすべての標準に準拠するように変更されました。-f オプションの付かない ln コマンドを使用して既存のターゲットファイルにリンクすると、リンクは確立されません。代わりに、診断メッセージが標準エラーに書き込まれ、残りのリンク元ファイルのリンクが続行されます。最後に、ln コマンドはエラー値を返して終了します。
たとえば、ファイル b がある場合、構文 ln a b を実行すると、次のメッセージが生成されます。
ln: b: File exists |
この動作変更は、-f オプションの付かない ln コマンドを含む既存のシェルスクリプトやプログラムに影響します。このため、以前正常に動作していたスクリプトが Solaris 10 OS では失敗することがあります。
回避方法: ln コマンドには -f オプションを付けて使用してください。link ユーティリティーを実行する既存のスクリプトがある場合は、必ずコマンドの新しい動作に適合するようにこれらのスクリプトを変更してください。
Solaris 10 OS では、tcsh はバージョン 6.12 にアップグレードされました。このバージョンは、名前にハイフンや等号が使われている環境変数を受け入れなくなりました。setenv 行を含み、以前の Solaris バージョンで動作するスクリプトを現在の Solaris 10 リリースで実行すると、エラーが生成されることがあります。次のエラーメッセージが表示されます。
setenv: Syntax error |
詳細は、Solaris 10 OS 用の tcsh のマニュアルページを参照してください。
回避方法: 環境変数名にハイフンや等号を使用しないでください。
厳しい標準 C 準拠モードで作成されたアプリケーションは、一部のライブラリ関数の動作変更による影響を受けます。たとえば、cc -Xc または c89 準拠モードでコンパイルされたアプリケーションがこれに当たります。動作が変更されたライブラリ関数は次のとおりです。
fgetc()
fgets()
fgetwc()
fgetws()
getc()
getchar()
gets()
getwc()
getwchar()
getws()
1990 C 標準の正式な解釈では、ファイル終了条件が設定されたら、それ以降の入力操作ではファイルからデータを返さないようにする必要があります。ただし、ファイルポインタの位置を変更したり、アプリケーションによってエラーとファイル終了フラグが明示的にクリアされている場合は例外です。
ほかのすべての準拠モードの動作は変わりません。特に、このインタフェースでは、ファイル終了インジケータの設定後に、新しく書き込まれた追加データをストリームから読み取ることができます。
回避方法: ストリームのファイル終了条件が報告されたあとで追加データを読み取るには、ストリームに対して fseek() または clearerr() を呼び出します。
UID、プロセッサ ID、および累積実行時間が大きくなったため、ps コマンドの出力列が広くなりました。カスタムスクリプトは、出力列が固定されていると仮定しないようにするべきです。
回避方法: スクリプトでは ps コマンドの -o オプションを使用するようにしてください。
詳細は、ps(1) のマニュアルページを参照してください。