Sunday, 25 February 2018

GCC cross compiler

今年はなんか環境整える年らしく。LLVM 側はできたんですが、xv6 が微妙に動かない。arm の種類の問題なのかも。

GCC側は動くはずなので、GCC側の cross compiler を作るわけですが、まぁ、楽勝なはずなんですが... build に失敗してるじゃん。自分で付け加えた部分がおかしいな。x86 と arm の差だろうと思うんだけど。

でも、それで、

  ../CbC_gcc/configure --prefix=/usr/local/arm-cbc --disable-nls --disable-bootstrap --target=arm-none-eabi --enable-languages=c --enable-checking=tree,rtl,assert,types

で楽勝じゃん。と思ったんだが、a.out ができない。-S では、ちゃんとARMのアセンブラが出てるのに。で、-v で見てみると、

  as 使ってる

あ、それでは動かないんですが。/usr/local/arm-cbc/bin/arm-none-eabi-as を使うはずなんだけど。configure のoptionが良くわからん。が、ググると、

  -B 付けろ

と。あぁ、そういうのあったな。でも、default で要らないはずなんが。でも、

   -B/usr/local/arm-cbc/bin/arm-none-eabi-

で動きました。たぶん、configure に適切なオプションを付ければ解決するはず。

LLVM側は C のruntime作るのは大変なんだけど、GCC は

  make all-target-libgcc

でできてしまうらしい。偉い。こっちは xv6 は問題なく動作しました。そうでなくては。LLVM側はこれから調査だな。

No comments: