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)を実験的にサポートしました。