クロスコンパイル

Pocket

QEMUを扱っていると、PowerPCやSPARCのバイナリを作りたくなることがあります。そこで、gccを使ったクロスコンパイル環境を作れないものかと思ってトライしてみたのですが、何も見ないでやろうとしてもうまくコンパイルできません。
検索してみると、gcc-2.95のような古いものは解説があります。新しいものでいいものがないかと探してみると、Linux From ScratchにCross Linux From Scratch(CLFS)として、いろいろなCPU用のクロスコンパイルの方法が載っているのを見つけた。
実際にPowerPC用のgccと、glibc、binutilsを作ってみたのですが、これがなかなか難しい。オプションが少し違っていただけで、glibcやgccがエラーになってぜんぜん作れなくなったりします。仕方がないので、言われたとおりに作ってみると、やっと作ることができました。
ポイントの1つは、LFSで提供されているLinuxカーネルのヘッダーを使ってglibcを作ることです。もう1つgccのデフォルトのライブラリへのパスを設定するところなのですが、どこで設定しているのかよくわからなかった。
gccはまずglibcを作るためにstatic版を作って、そのあと作ったglibcを使ってもう一度gccを作ることでやっと普通に使えるものができます。
もう少し、クロスコンパイルが楽にできるといいのですけど。でも、情報があるだけでもありがたいことですけどね。
OpenBIOSのPowerPC用を作ることができることも確認した。でも、これではQEMUは立ち上がらなかった。SPARC用のも同様に作ってみた。少し変更するとバイナリができました。QEMUで使ってみるとペンギンさんは現れるのですが、文字が見えずでした。OpenBIOSはちゃんと動いているみたいだけど、なぜでしょう。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください