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.
One cannot increase the stack size. The reason of this is as mentioned below: Reason: The stack for a given interaction has a restricted, fixed size.
We can change stack size in linux temporarily by using the command ulimit -s new_value , But is there any way to change stack size permanently, or Can we do something within C++ code, so it will change stack size by itself?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With