diff options
author | Hans Wennborg <hans@hanshq.net> | 2013-10-17 17:49:57 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2013-10-17 17:49:57 +0000 |
commit | acc1f8b20f11d726ae013cf767079eb06dd0d935 (patch) | |
tree | d2adea402f3f03b82bc522b57c602faa3ca60baf /cmake | |
parent | 20a7ec92475e6209892dd2201b4bbf852d6fa122 (diff) | |
download | external_llvm-acc1f8b20f11d726ae013cf767079eb06dd0d935.zip external_llvm-acc1f8b20f11d726ae013cf767079eb06dd0d935.tar.gz external_llvm-acc1f8b20f11d726ae013cf767079eb06dd0d935.tar.bz2 |
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
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/modules/HandleLLVMOptions.cmake | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake index 2cec270..4063429 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. |