Saturday, 5 August 2017

X.v6 ARM を OS X のclangで作る

Linux 上のGCC ARM Cross compiler で作るのは普通にあって、それで作ったのを大学院の授業では読んでみたわけですが...

  clang で作れるんじゃないか?

で、clang -arch arm で ARM をはいてくれるわけですが、OS X だからな。elf ではなく mach-o 。まぁ、いろいろいろ問題はあるが...

  entry.S

が通らない。なんか命令がないとか言ってくる。


  1:
    CMP r1, r2
    STLTMIA r1!, {r3}
    BLT 1b

とか書いてあるんですが、しばらくわからなかったんだど、LT って、Predication か。アセンブラの命令に条件をつけられるあれですね。じゃぁ、

    STMIALT r1!, {r3}

だろ? LTは後ろに付くはずだけど。これで通りました。なんだよ。

なんだが、問題は Linker か。開始アドレスを指定したり、segment の位置を指定したりしないといけないんだが、OS X の ld でどうやればいいのかがわからん。

できないってことはないんじゃないかなぁ。

まぁ、clang を elf をはくように作り直しても良いはずなんですが、mach-o でやっても面白いかな。

GCC版なCbCもあるんだが、最新版に合わせるのは大変なんだよな。

gcc なcross compilerはあるので、それでclangを作っても良いんだけど。

いろいろ方法があるだけに悩ましい。

No comments: