コードサイズ縮小の一環としてアプリケーションを二つのモジュールに分割したのだけれど、明らかにサイズが小さい方*1 のモジュールがサイズ制限に引っかかる。
何故かと思っていたら、そちらは浮動小数点ライブラリをリンクしていたのだった。
四則演算だけだったら固定小数点演算に書き直すのも良かったのだけれど、pow等のライブラリを使っているのよね。
そこで、MathLibを導入。
Windowsでいう .dllに浮動小数点ライブラリを追い出してくれる。
- 「math.h」でなく、「MathLib.h」をインクルードするようにする。
Cからの利用しか考えていないようなのでお約束の extern “C”{}で囲む必要がある。*2 - アプリケーションにはラッパーである「MathLib.c」をコンパイル&リンクするようにする。