exeGCC for SOLID s005 (ARM) ライブラリ仕様

ライブラリ仕様は基本的に s002 から変わっていないので、ここでは差分のみを記述します。

s002 から s005 の変更点

  • C11 aligned_alloc サポート。(s002 readme 未記載。)

  • 省メモリ環境向けのコンパクトな libc_tiny を追加しました。

省メモリ環境向けのコンパクトな libc_tiny

exeGCC 汎用版 r004 のコードベース。

使用は非推奨ですが、削除された __vlink_init_osemu(), __vlink_init_vlink(), __vlink_init(), ecvt(), ecvt_r(), fcvt(), fcvt_r(), gcvt(), gcvt_r() が戻っています。 string.h の locale が絡まない関数と VLINK のコードはデフォルトの libc と共通です。

  • 制限

    • ANSI C サポート。ライブラリの仕様は man/exegcc_arm_ja.pdf を参照してください。

    • locale は "C" のみ。文字コードは ASCII のみ。ワイドキャラクター未サポート。

    • malloc() は簡素な K&R malloc で、メモリが断片化するほどの頻繁な使用は想定していません。

    • C++ を使えるような環境に向けたものではないので C++ は非推奨。

  • 使用方法

    • コンパイル時に -D_USE_LIBC_TINY を指定。

    • リンク時に -specs=$GCCDIR\lib\$GCC_DEFAULT\tiny.specs を指定。

    • 明示的に指定する場合のライブラリ名は libc_tiny.alibgcc_tiny.a-lc_tiny -lgcc_tiny