共有ライブラリ

Contributed by 浅見 賢 , Peter Wemm , and David O'Brien . 9 December 1996.

もしあなたが共有ライブラリをサポートする機能を port に追加した り, 共有ライブラリをサポートしていない他のソフトウェアに追加する 場合には, 共有ライブラリのバージョン番号を次の規則にしたがって つけてください. 一般的には, この規則は, ソフトウェアのリリースバージョンとは 全く関係ありません.

共有ライブラリを作成する三つの重要な規則は 次の通りです:

例えば, 機能追加とバグ吸収の場合は, マイナー番号を増やします. 機能削除, 関数呼び出しのシンタックスなどが変更された場合は, 強制的にメジャー番号を変更します.

メジャー.マイナーー (x,y) の形式のバージョン番号を使用します. FreeBSD のダイナミックリンカは, x.y.z という形式のバージョン番号 は扱えません. この場合, y の後のバージョン番号 (つまり三つ目の数字)は, どのライブラリがリンクされているかを決めるために, 共有ライブラ リ番号を比較する際に, すべて無視されます. ``小さな''リビジョンだけが 異なる二つの共有ライブラリが指定 されると, ld.so は, リビジョンの大きい方の共有ライブラリを リンクします. すなわち, もしあなたが libfoo.so.3.3.3 をリンク していたとすると, リンカは頭の 3.3 という部分だけを認識し, libfoo.so.3 ではじまり その後に 3 以上の数字が続くもののうち, 最も大きい番号 の付いているライブラリをリンクします.

Note: ld.so はいつも最も大きい ``マイナー'' リビジョンのものを使うことに 注意してください. 例えば, プログラムがはじめ libc.so.2.0 を リンクしていたとしても, libc.so.2.0 よりも libc.so.2.2 を優先 して使用します.

移植されていないライブラリに対しては, リリースごとに共有ライブラリの バージョン番号を一度だけ変更するのが私たちのポリシーです. あなたがシステムライブラリのバージョン番号を上げた場合は, Makefile の commit ログを確認してください. 結果としてそのリリースには, 共有ライブラリのバージョン番号が アップデートされた Makefile に入るので, 最初にその変更を 確かめるのがソースツリー管理者 ("committer") の責務です. その後のどんな変更も, そのリリースには入りません.