cygwinでクロスgccのmakeは出来たが・・・

クロスコンパイラを自力でビルドしたいという、同じような病気に既にかかっている方がいらっしゃるようで、その情報が非常に参考になりました。こちらを参考にして自分もまたクロスコンパイラ gcc の make に勤しんでいます。

世の中のいろいろな情報により gcc の make は出来るようになっていますが、上記で掲載されている生成用のスクリプトがかなり勉強になります。スクリプトの動作は Ubuntu 14.04 にて確認してうまく動いたので、これを元に cygwin で作業してみることにしました。

先日の日記にあるように、 eglibc 2.13 や gcc については、 cygwin 環境ならではの問題点があるのでこれらについてパッチを当てる形で上記のスクリプトに改良を加えてみました。

この結果、 cygwin 環境でもうまく gcc が生成させることが出来、待望の「スレッドモデル: posix」と表示されるクロスコンパイラ gcc となりました!

今確認出来ているものの構成要素は以下の通りです。

  • gmp-4.3.2
  • mpfr-2.4.2
  • mpc-0.8.1
  • binutils-2.21.1
  • gcc-4.5.3
  • eglibc-2.13
  • linux-3.0.45
  • target: arm-none-linux-gnueabi

しかしながら・・・

これで一応 cygwin の中で クロスgcc がスレッドモデルが posix となるところまででき、また elf バイナリが出力できるところまでは確認できました。しかしながら、いざターゲットに持って行くと正常に実行できるバイナリになっておらず・・・。まだ完成とはならなかったようです。

クロスコンパイラ gcc の完成はターゲットでちゃんと実行できる物ができて、初めて完成といえるのでまだちょっとかかりそうです。欲を言えば、デバッグがちゃんとホストでできるように gdb も準備できるまでが、環境構築のフェーズですね。まだまだかかりそう・・・。