クロスコンパイル環境の構築


ひさびさのGentooいじりの投稿です。Gentoo玄箱は、立ち上がったものの、パッケージ導入の時間のかかること。
少しでも、このボトルネックを解消しようと、ボロPCにクロスコンパイル環境を構築して、distccを使った分散コンパイルを使用するという計画です。
なかなかうまくいかなかったのですが、なんとか動きだしたので、ご報告させていただきます。
ツールチェーンの構築は、何度か経験はあるのですが、「なんか面倒だった」という記憶だけ残っていて、すっかり忘れていました。 いろいろ調べていると、crossdevというツールがあるらしい。今回はこれを試してみることにしました。

# emerge crossdev

このツールは、コマンド一発で、ツールチェーンを構築してくれる優れものです。 まず、最初にやらなければならないのが、ターゲットマシン(すなわち玄箱)のツールチェーン環境のバージョンを調べることから。現在の玄箱にインストールされているバージョンは、次のとおりです。

  • gcc 3.4.4-r1
  • binutils 2.16.1
  • kernel(header) 2.4.26-r1
  • glibc 2.3.5-r3

次に、crossdevを使って

# crossdev -t powerpc --g 3.4.4-r --b 2.16.1 --k 2.4.26-r1 --l 2.3.5-r3

で後は、待つだけ。 のハズなのですが、configure中にエラーが出てしまうのです。ソースを見たり、検索でこんな事例はないか調べたり、まったく検討違いのことばかりの3日間。 結局、ボロPC(ホスト側)のビルドチェーンが玄箱のバージョンに対応できなかったのです。分かってしまえば、こんなもの、とほほ・・・

# emerge -uD system

を実行して、再度crossdevして、無事クロス環境の構築は完了。 crossdev、偉い! 次は、クロスでの、分散コンパイル環境の構築。

・・・(To be continued)

コメントを残す