Как увеличить размер стека при компиляции с помощью Clang на OS X?
Можно ли указать размер стека с помощью clang++? Я не могу найти какие-либо параметры компилятора, которые позволили бы мне это сделать. Я использую OS X.
Примечание. Этот вопрос конкретно относится к Clang, а не к компилятору GCC.
Ответ 1
Компонент, а не компилятор, отвечает за установку размера стека основного потока. Страница руководства для ld содержит следующее:
-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.
Например, чтобы указать стек из 16 МБ, вы можете сделать следующее:
[email protected]:~$ cc -Wl,-stack_size -Wl,0x1000000 -o test test.m
[email protected]:~$ otool -lV test | grep stack
stacksize 16777216
Обратите внимание на префикс -Wl, на аргументы, переданные в cc, чтобы передать их в компоновщик.