gcc 実行可能ファイルのスタック サイズを増やすにはどうすればよいですか?
-
18-09-2019 - |
質問
コンパイルしようとすると gcc のスタックを破壊する大きな Boost/Spirit メタプログラムがあります。
このプログラムをコンパイルできるように、gcc のスタック サイズを増やすにはどうすればよいですか?
注記:無限再帰は発生しませんが、gcc のスタックを使い果たすほどの偶発的な再帰が発生します。
解決
Linux では、/etc/security/limits.conf でスタック サイズを拡張できます。
現在のスタック サイズを確認するには、次のようにします。
$ ulimit -s
8192
次に、スタックをそれより 2 倍に拡張します。
youruser soft stack 16384
そしてリログします。
これにより、GCC だけでなく、実行しているすべての実行可能ファイルのスタック サイズが増加します。
他のヒント
これをコンパイラ スクリプトで使用します。
CFLAGS += -Wl、--スタック、10485760
スタック サイズはリンク中に設定できます。リンカー スクリプトに関する詳細を確認する必要があります。これにより変更されるのは、単一プログラムのスタック サイズのみです。
所属していません StackOverflow