共有オブジェクトは、メジャー (major) ナンバーファイル接尾辞を含むという命名規約に従います。(「命名規約」を参照)。この共有オブジェクト内では、1 つまたは複数のバージョン定義を作成できます。各バージョン定義は、次のいずれかに分類できます。
業界標準インタフェースへ準拠したインタフェースを定義する (たとえば、「System V Application Binary Interface」)
ベンダー特定の「公開」インタフェースを定義する
ベンダー特定の「専用」インタフェースを定義する
オブジェクトの内部実装に対する変更 (ベンダー特定) を定義する
次の「バージョン定義」命名規約は、定義がどの分類に属するのかを示すために役立ちます。
最初の 3 つの分類は、インタフェース定義を示します。これらの定義は、インタフェースを構成する大域シンボル名とバージョン定義名の関連付けからなります (「バージョン定義の作成」 を参照)。共有オブジェクト内のインタフェースの変更は、しばしば「マイナーリビジョン (minor revision)」と呼ばれます。このため、このタイプのバージョン定義には、マイナー (minor) バージョンナンバーの接尾辞を付けます。これは、ファイル名のメジャー (major) バージョンナンバーの接尾辞をベースとしたものです。
最後の分類は、オブジェクト内の変更を示します。この定義は、ラベルとして機能するバージョン定義からなり、関連するシンボル名はありません。この定義は、ウィーク (weak) バージョン定義と呼ばれます (「ウィークバージョン定義の作成」を参照)。共有オブジェクト内の実装の変更は、しばしば「マイクロリビジョン (micro revision)」と呼ばれます。このため、このタイプのバージョン定義には、マイクロ (micro) バージョンナンバーの接尾辞を付けます。これは、元になったもののマイナーナンバーをベースとしたものです。
業界標準インタフェースは、この標準を反映するバージョン定義名を使用しなければなりません。ベンダーインタフェースは、そのベンダー固有のバージョン定義名を使用する必要があります (企業の株式銘柄のシンボルが適していることがあります)。
私用バージョン定義は、使用方法が制限されているかまたは保証されていないシンボルを示します。「private」という語を明確に示すべきです。
バージョン定義を行うと、関連するバージョンシンボル名が必ず作成されます。したがって、一意の名前の使用とマイナー (minor) / マイクロ (micro) の接尾辞の使用という規則を使用すると、構築されるオブジェクト内でシンボルが衝突する可能性を減らすことができます。
次の定義例は、これらの命名規約の使用を示しています。
「System V Application Binary Interface」標準インタフェースを定義します。
Solaris 公開インタフェースを定義します。
Solaris 私用インタフェースを定義します。
Solaris 内部実装の変更を示します。