From acc1f8b20f11d726ae013cf767079eb06dd0d935 Mon Sep 17 00:00:00 2001 From: Hans Wennborg Date: Thu, 17 Oct 2013 17:49:57 +0000 Subject: [PATCH] CMake: set stack size to 2MB for MSVC builds Compiling under Visual C++ 2012 with the default stack size of 1MB, the stack overflows at a depth of 216 template instantiations, well before the 256 default limit. This patch modifies the default MSVC stack size to 2MB. Patch by Yaron Keren! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192904 91177308-0d34-0410-b5e6-96231b3b80d8 --- cmake/modules/HandleLLVMOptions.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake index 2cec270e96d..40634294061 100644 --- a/cmake/modules/HandleLLVMOptions.cmake +++ b/cmake/modules/HandleLLVMOptions.cmake @@ -153,6 +153,10 @@ endif() if( MSVC ) include(ChooseMSVCCRT) + # Visual C++ default stack size is 1MB. This is not enough for clang to + # instantiate templates up to the default maximum depth allowed, 256. + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -STACK:2097152") + if( MSVC10 ) # MSVC 10 will complain about headers in the STL not being exported, but # will not complain in MSVC 11. -- 2.34.1