システムコールに渡される引数の行方
よく分からんので呼び出すナニをでっち上げてアセンブラを吐かせてみることに。以下なエントリを参考にして
gcc-4.6.1-msys-cross-pdp11-aout.tar.xz を取得したのは良いのですが XZ compressed data って何ね (を
端末に
xzcat というコマンドがあるみたいなので
$ xzcat gcc-4.6.1-msys-cross-pdp11-aout.tar.xz|tar xvf -
で解凍。なんとなくこれ式って懐しい。(何
あら
これって PE32 だな。でググッてみたら七誌さんのエントリによれば
- target=pdp11-aoutですんなりビルドできました。
gccより引用
とのことだったので試してみます。ちなみにソースコードは以下なカンジ。
$ cat main.c #include <sys/types.h> #include <signal.h> int main(void) { kill(1000, 9); return 0; }
なかなに酷い。で、gcc してみたんですが以下な出力が。
$ gcc -s --target=pdp11-aout main.c cc1: warning: command line option ‘-ftarget=pdp11-aout’ is valid for Java but not for C [enabled by default] $
うーん。困った。困った困ったといいつつググッてると再び七誌さんのエントリが出てきた。
ちなみに手元にあるソレも 4.6.1 です。うぶんつでバージョン落とすとか可能なのかどうか、と言いつつ
$ apt-cache search gcc|grep ^gcc
してみたら 4.4 とか 4.5 とか入れれますね。でもこれってでびあん式にもごもごしないといかんのか。ヤり方控えてるはずなんですが全く記憶にない。
入れてやれ
ということで以下。
$ sudo apt-get install gcc-4.4 gcc-4.5
かなりヤケッパチ気味。で、ccache な問題がある模様ってことが分かって微妙に脱力。
端末が相当な状態らしいんですがどうしたものか。