LTO のトラブルをうけて、gcc をより新しいバージョンへ移行する事にした。
とは言っても、時間はかかるものの(1時間もかからないが・・)、そんなに新しい
事は無い。
まず、パッケージの選択、6系は、まだ移るには早いようなので、5系の最新、5.4
にする。
合わせて、binutils、newlib も割と最新で統一した。
binutils-2.27.tar.gz gcc-5.4.0.tar.gz newlib-2.4.0.tar.gz
今回から、C コンパイラのビルドオプションは、「--disable-multilib」に変更した。
32ビットのRXマイコンには必要ないうえに、付けるとビルド時間が長くなるようだ。
gcc-4.9.4 で、「-flto」を付けた場合に、リンク時に gcc がクラッシュするトラブルは
起こらないようだ・・
ただ、コンパイルするプログラムに依存すると思われるものなので、たまたま、クラッシュ
しないだけかもしれない・・
クラッシュするようだと、-flto は諦めるしかない・・・
・-flto の場合
text data bss dec hex filename 4012 48 1316 5376 1500 uart_sample.elf
・無しの場合
text data bss dec hex filename 4092 48 1316 5456 1550 uart_sample.elf
プログラムが短いので、効果が分かりにくいものの、小さくなっている。