exeGCC for SOLID s007 (ARM) ライブラリ仕様
ライブラリ仕様は基本的に s002 から変わっていないので、ここでは差分のみを記述します。
s002 から s005 の変更点
C11
aligned_allocサポート。(s002 readme 未記載。)省メモリ環境向けのコンパクトな libc_tiny を追加しました。 詳細は exeGCC for SOLID s005 (ARM) ライブラリ仕様 を参照。
s005 から s006 の変更点
NetBSD-7.0 から 9.1 ベースにアップデートしました。(ライブラリ仕様は同じです。)
fma(),fmaf()をサポートしました。ただしmath.hでFP_FAST_FMA,FP_FAST_FMAF,FP_FAST_FMALは定義されません。
注意
(ツールチェーン同梱の s006、s007 の readme に未記載の不具合。)
float ABI が hard の時、fma()/fmaf() に NEON の vmla.f64/f32 命令を使用するので、この命令が使用できないターゲットでは動作しません。また、VFP の設定に関わらず、常に FTZ モード、DN モードで演算を行います。
注釈
VFPv4 以上で、GCC は -O 以上の最適化した場合、Clang はさらに追加で -ffast-math を指定した場合、math.h の fma()/fmaf() と、ビルトイン関数 __builtin_fma()/__builtin_fmaf() は vfma 命令に展開されます。
setlocale()は常に "C" を返し、一切 current locale を変更しないように修正されました。(バグ修正にともなう仕様変更。)
s006 から s007 の変更点
NetBSD-9.1 から 9.3 ベースにアップデートしました。(ライブラリ仕様は同じです。)
Clang の LTO(-flto=thin)を実験的にサポートしました。