[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:03929] Re: 別のPCでコンパイルしたバイナリ



From: hical satow <hical@on.rim.or.jp>
Subject: [plamo:03926] 別の PC でコンパイルしたバイナリ
Date: Wed, 8 Sep 1999 10:42:28 +0900
Message-ID: <199909080142.KAA08219@april.on.rim.or.jp>


> i486機のLinux環境をアップグレードしようと試みています。
> その際に、i486機で使うバイナリをPentium機でコンパイルして、
> パッケージにしてインストールしようと思っているのですが、
> 設定が異なるKernelでコンパイルしたものを持ってきて動作させ
> て大丈夫なのでしょうか?

カーネルのバージョンが違っていたらマズいかも知れませんが、そうでない場
合は大丈夫でしょう、多分。

基本的に、普通のプログラムはカーネルの機能を使う際も、libc などを経由
して呼び出すことになっているので、カーネルの機能の違いなどはその部分で
吸収されます。

ただし、カーネルの機能に強く依存したプログラム(例えば pcmcia-cs)では、
カーネルによって作成するバイナリが変るので、カーネルコンパイル時の設定
などは合わせておく必要があります。

# それでも 486 と 586 の違いは関係ないです。

> Kernelの設定によって、たとえばCPUの種類やネットワークオプ
> ションによって、最適化を行ったり必要な機能を選別(?)したり
> しないものでしょうか?

カーネル自体も CPU によって使う機能を切り変える部分はありますが、それ
はカーネルが内部処理をする際に使うだけで、外からは見えないから気にする
必要はありません。

むしろ、プログラムの方で CPU によって内部処理を変える場合があり、その
ようなプログラムでは 586 用にコンパイルした場合 486 以下では使えない、
ということがあります。

# libc のコンパイル時にこれをやって、P6 でしか起動しないシステムを作っ
# たことがあります(^^;

GNU の configure を使っている場合は configure が自動的に CPU の種類を
判定しますが、--host=i386-pc-linux とかのオプションを指定すれば別の 
CPU 用の設定にすることも可能です。基本的に ix86 系の CPU は上位互換な
ので、386 用に設定しておけば(効率は多少悪くなるかも知れませんが)、全て
の CPU で利用可能なはずです。

-------
こじま

References
[plamo:03926] 別のPCでコンパイルしたバイナリ, hical satow

[検索ページ] [メール一覧]
Plamo ML 公開システム