Как увеличить размер исполняемого стека gcc?

У меня есть большая метапрограмма Boost / Spirit, которая взрывает стек gcc, когда я пытаюсь его скомпилировать.

Как я могу увеличить размер стека gcc, чтобы я мог скомпилировать эту программу?

Примечание: бесконечная рекурсия не происходит, но достаточно случайной рекурсии, чтобы исчерпать стек gcc.

3 ответов


в Linux вы можете расширить размер стека в /etc/security / limits.conf.

Вы можете проверить свой текущий размер стека с помощью

$ ulimit -s
8192

затем разверните стек, чтобы быть двойным, чем это:

youruser    soft    stack    16384

и затем relog.

Это увеличит размер стека для всех исполняемых файлов, которые вы используете, а не только GCC.


Я использую это в своем скрипте компилятора:

CFLAGS + = - Wl,--stack, 10485760


размер стога можно установить во время соединять. Вы должны посмотреть детали, касающиеся сценариев компоновщика. Это изменит только размер стека для вашей одиночной программы.