arch linuxでcrosstool-ngを使ってppc64bitのクロスコンパイラを作る

yaourtが入っていることを前提とする.

yaourt -S crosstool-ng
mkdir -p ~/cross/bin
cd ~/cross/bin
ct-ng list-samples
ct-ng <選んだsample>
ct-ng menuconfig

ここで設定するわけだが要点は以下の様になる

  • いらないものは削る
    • gcjとか普通のひとはいらない.
  • ライブラリはできるだけ新しいものを選択する.
    • バージョンが古いとarchのgccではあたらしすぎてコンパイルできなかったりする
  • C-Libraryの Force unwind supportはcheckする
    • しなかったらコンパイルエラーがでた
  • gdbでpython scriptingをenableにしない
    • archのpythonは3系だが,python2系を前提としているらしく,どうせgdbでpythonを使わないので面倒だから無効にしてしまった

次に

ct-ng build

でコンパイルを始めるが,make4.0だとあたらしすぎてglibcのコンパイルが通らない.そこで http://lfsbookja.sourceforge.jp/svn.ja/chapter06/glibc.html にもあるように

sed -r -i 's/(3..89..)/\1 | 4.*/' configure

でglibcのconfigureを変更する必要がある.一回ダウンロードが済んだあとで止めて修正すればいいはず.

これで

ct-ng build

でコンパイルが通って~/xtools以下にそれらしきものが入った.