views:

627

answers:

2

I have large Boost/Spirit metaprogram that is blowing gcc's stack when I try to compile it.

How can I increase gcc's stack size, so I can compile this program?

Note: There's no infinite recursion going on, but there is enough incidental recursion to exhaust gcc's stack.

+8  A: 

On Linux, you can expand the stack size in /etc/security/limits.conf.

You can check your current stack size by using

$ ulimit -s
8192

Then expand the stack to be double than that:

youruser    soft    stack    16384

And then relog.

This will increase stack size for all executable you're running, not just GCC's.

LiraNuna
If it's a soft-limit, it can be increased without re-logging in by entering ulimit -s <limit>. This only applies for the current shell of course.
bdonlan
A: 

The stack size can be configured during linking. You should look at details regarding the linker scripts. That will only change the stack size for your single programme.

sybreon