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以下にそれらしきものが入った.