新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

cygwin で chicken

cygwin 1.7.33-2 64bit で chicken-4.9.0.1 を作る時のメモ。暫定的かも知れない。一応、CHICKEN TEAM の ML の公式回答を基にしている。
http://www.cygwin.com/ml/cygwin-apps/2014-12/msg00102.html

make PLATFORM=cygwin ARCH=x86-64 HACKED_APPLY= 

ポイントは HACKED_APPLY= としているところか?これを指定しないと、中間のトランポリンコード(?)的なアセンブラ(apply-hack.x86-64.S)をコンパイルしようとしてエラーになります。

このコードはそもそも最新の gcc (gas?) に対応していないようですし、コールコンベンションもうまく対応していないようで、HACKED_APPLY= なしでコンパイルするとコアダンプをはいて落ちます。(見た目は何も実行せずに終了したように見えるかも)

ただし、このコードがもともとあった理由があるはずなので、次の chicken のバージョンでは(2014/12/22 現在は git も対応されていないように見える)、なんらかの対応が入るかもしれません。

とりあえずはこれで csi, csc が動きます。個人的には host=cygwin, build=cygwin, target=mingw にしたいのですが、chicken はそこまでうまくクロスコンパイルに対応していません。あとは Yocto を試したい、、、が情報が少なく困ってます。

蛇足ながら、ARCH の指定は ARCH=x86-64 が正しいらしい。ARCH=x86_64 と指定しても提供される cygport file では x86-64 に強制的に治すようになっている。