Windowsで動きました!
「もしかして関数呼び出し規約の問題?」と考えて
ここらへんを読みながら調べてたんですが・・・。
もっと簡単なところでした。
分かったのはざっとこんな感じ。
- MinGWでコンパイルする。
- configure --prefix=/home/toge/tccと実行する。
- tcc_reallocate()で/home/toge/libtcc1.aをリンクしようとする。
- 生成されるコードは普通のWindowsプログラムなので/home/toge/tccそんなの解釈出来ない。
- でもエラー処理がないのでそのまま続行する。
- 中途半端なままtcc内の関数が呼ばれてIllegal Instruction例外発生。
つまるところ私のぼけですね。(T_T)
でもフェイルセーフでないのは確か。以下の改善が必要かな?
- MinGWならWindowsのファイルシステムのパスにするようにconfigureを修正(どうやってやればいいんだろ?)
- libtcc_test.cの実装にエラー処理を追加する。
- というかそもそもlibtcc1.aの場所ぐらい動的に指定させろよ。
・・・時間が出来たらやろう。特に前者は調べないといけないし。
あっ、"cd /home/toge/tcc && pwd -W"ってやればいいのか。簡単じゃん。
long file nameでは表示されないけど。