CSL ARM EABI 2008q1-126 覚書

TOPPERS/JSP for Cortex-M3 関連作業で得た
Codesourcery G++ Lite for ARM EABI 2008q1-126 (以下CSLと省略)を Cygwinから使う際のHowto Memo。

あとで、Articleとしてどっかに記すとして忘れないようにここに一時保存。

Install Path

デフォルトのままインストールすると

C:\Program Files\Codesourcery\sourcery G++ Lite\bin

あたりにツールがインストールされますが、これがダメ。

パスに空白(' ') が含まれているとUNIX系ではデリミタとして認識してしまう。
(特にTOPPERSは、MakefilePerlスクリプトを駆使しているため)
今回は、Segmentation Fault が発生したので原因が特定し難いです。

bash $ make
Segmantation fault (core dumped)

下図のように空白を含まないパスにインストールする必要があります。

GCC -M の出力

TOPPERS/JSPでは、Makefile.depend を生成する際に、内部で gcc -M の出力を用いていますが、
CSL with Cygwin 環境では、windows path と unix(cygwin) path の混在した奇怪なパスが混じってしまいます。

こんな風に...

makeoffset.s: \
	c:\\codesourcery\gxxlite\\bin\\../lib/gcc/arm-none-eabi/4.2.3/include-fixed/syslimits.h \

複数パターン出てきたら厄介なのですが、幸いTOPPERS/JSPでは
「c:\\codesourcery\gxxlite\\bin\\」の
1パターンのみ出現するようです。
さらに幸いなことに utils/makedep で1行ずつ処理している部分があったので
そこでperlの文字列置換機能で置き換えました。

↓改造したmakedepをここに一時保存↓
http://niagara.ta.ki.no.googlepages.com/makedep.tgz