1. ホーム
  2. LINUX

GCCのバージョンによる浮動小数点演算の例外発生

2022-01-22 21:20:24

組込みシステムでは、開発環境のバージョンとプログラムの実行環境のバージョンに不整合が生じることが多く、下位バージョンのglibcでコンパイル・実行した上位バージョンのgcc glibcを使用することにより、浮動小数点例外の実行時エラーが発生する場合があります。これは、最近のgccはリンク時に --hash-style=gnu というオプションをデフォルトで使用しており、このハッシュテーブル方式を使うことで動的リンク時の効率を大幅に向上させることができることに起因しています。古いバージョンのglibcはこれをサポートしていないので、リンク時のオプションに -Wl,--hash-style=sysvを追加するだけでこの問題を解決することができます。