gcc 実行可能ファイルのスタック サイズを増やすにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1156783

  •  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

スタック サイズはリンク中に設定できます。リンカー スクリプトに関する詳細を確認する必要があります。これにより変更されるのは、単一プログラムのスタック サイズのみです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top