12

ツールをクロス コンパイルする場合、多くの場合、「ターゲット トリプレット」を提供する必要があります。与えられた例

  • i686-pc-linux-gnu
  • arm-none-linux-gnueabi
  • powerpc-unknown-linux

等々...

これらのトリプレットは、実際には 4 つのコンポーネントである場合があり、次の形式をとります。

<CPU>-<MANUFACTURER>[-<KERNEL>]-<OS>

カーネルはオプションであり、メーカーは「不明」または「なし」のようなものにすることができます。これは、多くの場合関連がないためです。

私がまだ見つけていないのは、ここで使用できるすべての可能な値を文書化したページです。すべてのコンポーネントはほとんど「フリー スタイル」であることを知っているため、公式の標準化されたリストからコンポーネントを使用することを強制する公式の標準はありません。それでも、ツールの設計者と構成スクリプトの作成者は、ユーザーがそれらのトリプレットをツール/スクリプトに指定することを期待しているため、考えられる値を念頭に置いておく必要があり、ツールの作成者、スクリプトの作成者、およびユーザーが使用できる「非公式リスト」のようなものがあるはずです。参照。

誰かがそのようなリストを見つけたことがありますか?

4

1 に答える 1

4

はい、libtoolソースにあります。それはPLATFORMSと呼ばれます。おそらく完全ではありません。config.subが実行されると生成されるというファイルもありますautoreconf。それらはおそらくより最新/完全です。

しかし、定義上、あなたが求めていることは、ある意味不可能に思えます。一部のメーカーが展開する新しい「xyz」CPUがある場合、それはしばらくの間リストに表示されません。

ではconfigure、その場合、スクリプトライターは何をしますか?私の解決策は次のとおりです。私は、ヤギの本の人々によって提唱されているように、ビルドの前にいくつかのことを設定するautoreconfというスクリプトを呼び出しました。このスクリプトは、sed(技術的にはGNU shtoolのsedラッパースクリプト)を使用して、AC_CONFIG_AUX_DIRにコピーした後に必要なものを挿入します。bootstrap.shconfig.subautoreconf

幸い、config.subファイルにはタイムスタンプが付けられているため、「xyz」が「公式」リストに追加された場合は、タイムスタンプをテストするだけで済みます。config.sub次に、tarballに新しい「公式」を追加し、が最近の書き込みであるbootstrap.shかどうかをテストするために使用します。最近のものではない場合は、古いものを新しいものにコピーします。autoreconfconfig.sub

于 2012-12-12T19:51:36.543 に答える