OpenWindows 環境でのバイナリ互換性は、使用するプロトコルとツールキットによって異なります。以下の項では、バイナリ互換性のある OpenWindows アプリケーションに関する標準ガイドラインを示し、X11 プロトコルおよび各種のツールキットに関して使用できるバイナリ互換性について説明します。
SunOS 4.x リリースでは、OpenWindows バージョン 2.0 (V2) および OpenWindows バージョン 3.0 (V3) が使用できました。Solaris 2.x には、OpenWindows バージョン 3.3 (V3.3) がデフォルトのウィンドウシステムとして組み込まれています。一般に、OpenWindows V3 で実行されていた OpenWindows V2 アプリケーションは、OpenWindows V3.3 でも実行できます。以下の項に示す制約および問題点は、OpenWindows V3.3 で実行される OpenWindows V2 アプリケーションすべてに適用されます。
アプリケーションがライブラリをリンクする場合は、すべてのライブラリを動的にリンクする必要があります。
たとえば、OpenWindows V2 ライブラリに対して、libxview が動的にリンクされ、libolgx が静的にリンクされている場合、このアプリケーションは V3 上で実行できません。ユーザには、次のような ld.so エラーメッセージが表示されます。
ld.so: call to undefined procedure _olgx_xxx from 0xf77906ec
libc を除くすべてのライブラリが OpenWindows V2 に対して動的にリンクされているとすれば、次のようなエラーメッセージ (libc が動的にリンクされてないため) が出ます。
ld.so: call to undefined procedure _strdup from 0xf778ea30
あるアプリケーションの作成時に、OpenWindows V2 XView ソースを使用して修正し、そしてライブラリを動的にリンクしたとすれば、そのアプリケーションは V3 XView を用いて実行することはできません。修正した XView ソースを削除する必要があります。
OpenWindows V3 では、X11 プロトコルと XLib (クライアントライブラリ) は、OpenWindows V2 との 100% の下位互換性を備えていました。どちらのリリースも、MIT の X11R4 プロトコルをサポートしています。しかし、OpenWindows V3.3 リリースには大量のバグ修正が含まれているため、OpenWindows V2 の場合よりプロトコルへの依存性が高くなっています。アプリケーションが、プロトコルとの互換性のない機能や属性に依存している場合は、そのアプリケーションは働かなくなります。
NeWS プロトコルは OpenWindows V3.3 ではサポートされていません。
SunView プロトコルは OpenWindows V3.3 ではサポートされていません。
Pixrects は OpenWindows V3.3 ではサポートされていません。