FreeBSD ハンドブック : ソースツリーのガイドラインおよび方針 : 共有ライブラリ
Previous: 寄贈ソフトウェア
Next: カーネルコンフィグレーションの新しいオプションを追加する

18.3. 共有ライブラリ

Contributed by 浅見 賢 <asami@FreeBSD.ORG>, Peter Wemm <peter@FreeBSD.ORG>, and David O'Brien <obrien@cs.ucdavis.edu>.
9 December 1996.

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

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

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

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

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

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


FreeBSD ハンドブック : ソースツリーのガイドラインおよび方針 : 共有ライブラリ
Previous: 寄贈ソフトウェア
Next: カーネルコンフィグレーションの新しいオプションを追加する
FreeBSD Home Page
www@freebsd.org
Updated May 23, 1997