port/README 和訳
BIND 8 の、他のシステムへの移植
|
---|
あなたのポート(移植したいターゲット OS )が既存のものであることを確認して欲しい。もしあなたのポートが、すでにサポートされているオペレーティング・システムの新しいリリースであれば、新しい移植用のディレクトリを作る代わりに新しいリリースをサポートする既存のポートを作ってみていただきたい。これをやる場合の例としては、Solaris ポートが port_after.h の中で os_version.h をどうやって使っているかを参照すること。どうやって os_version.h が作られるかは、port/solaris/include/Makefile と port/solaris/bin/make_os_version を参照のこと。
|
広範囲に渡る移植の問題の中で、比較的簡単に答えられるものについて以下に示す。
|
| インクルードファイルがないか使えない。
|
---|
port/*/include または port/*/include/sys にそれを作ってみる(空かもしれない)。使えないインクルードファイルは直すことが可能だ。BSD/OS と ULTRIX のポートにこの例がある。
|
ライブラリ関数がない。
|
---|
まずそれを作って(たぶん他のポートからそれをコピーしてきてハックすることになるかと思うが)、それを port/*/Makefile に反映させてからビルドし、port/libport.a に含まれるようにする。SunOS ポートに __ansi_realloc() ルーチンを移植する例がある。
|
必要とするシステムの機能がない、プロトタイプがない、など。
|
---|
port/*/include/port_{before,after}.h を編集する。lib/ や bin/ のソースを見て、いつ/なぜ これらが #include されるかを調べること。
|
自分のシステムは port/* サブディレクトリにあるのにもかかわらず "make" が動かない。
|
---|
シェルで "uname -s -r" をタイプしてみて、表示された文字列があなたのシステムの port/*/probe ファイルの中にあるかを調べる。もしなければ、それを追加してから試してみる。もしそれで動けば、bind-bugs@isc.org にメールを送って欲しい。
|
私のシステムは、移植するのに必要なだけの ANSI および POSIX に準拠していないようだ。
|
---|
これは降参だ。別のシステムをあたって欲しい。
|
広範囲に渡る移植のやり損ないの中でも、比較的簡単に答えられるものについて以下に示す。
|
| コンパイラ(リンカではない!)がないとの警告が出る。
|
---|
がんばって。まだ始まったばかりだよ。
|
別の #define や #ifdef を追加しなければならない。
|
---|
他の移植には関係しないので安心して。私たちにメールを送って欲しい。
|
コンパイルするためにソースファイルをいじろうとしているんだけど。
|
---|
たぶん前述のどれかのステップが抜けているんだと思う。ソースをいじる前にもう一度やり方を考えて、アドバイスを受けて欲しい。でも、もし非 UNIX 環境に移植しようとしているのなら、特に isc/eventlib.c あたりをいじらないといけないのかもしれないな。どうにもならなくなったら私たちに連絡してみて。何か手助けできることがあるかも。bind-bugs@isc.org にメールを送ってみて欲しい。
|