How do I increase the stack size when compiling with Clang on OS X?
Asked Answered
T

1

20

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.

Trimorphism answered 20/9, 2013 at 5:25 Comment(2)
possible duplicate of Increase stack size in OS X LionConvex
@Kiran: You'll notice that that question refers to a different compiler.Trimorphism
S
29

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.

Solomonsolon answered 20/9, 2013 at 8:46 Comment(3)
does this answer still holds true up to this date? I was also curious on how to increase the compiled program in clang.Mediate
Also isn't that the modern versions of clang used a different linker now?Mediate
It still works exactly the same with the most recently-released beta versions of Xcode.Solomonsolon

© 2022 - 2024 — McMap. All rights reserved.