Can I specify the stack size with clang++? I can't find any compiler options that would allow me to do so. I'm using OS X.
Note: This question specifically refers to Clang, not the GCC compiler.
The linker, rather than the compiler, is responsible for setting the stack size of the main thread. The man page for ld
contains the following:
-stack_size size
Specifies the maximum stack size for the main thread in a program. Without this
option a program has a 8MB stack. The argument size is a hexadecimal number with
an optional leading 0x. The size should be an even multiple of 4KB, that is the
last three hexadecimal digits should be zero.
For instance, to specify a 16MB stack you could do the following:
mrowe@apollo:~$ cc -Wl,-stack_size -Wl,0x1000000 -o test test.m
mrowe@apollo:~$ otool -lV test | grep stack
stacksize 16777216
Note the -Wl,
prefix on the arguments passed to cc
to have it pass them on to the linker.