CMake: set stack size for MSVC in just one place
authorHans Wennborg <hans@hanshq.net>
Thu, 17 Oct 2013 18:39:47 +0000 (18:39 +0000)
committerHans Wennborg <hans@hanshq.net>
Thu, 17 Oct 2013 18:39:47 +0000 (18:39 +0000)
After r192904, Reid pointed out he thought we already set the stack
size for MSVC. Turns out we did, but it didn't seem to work.

This commit sets the stack size in a single place, using
CMAKE_EXE_LINKER_FLAGS because that seems to be the way that works
best.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192912 91177308-0d34-0410-b5e6-96231b3b80d8

CMakeLists.txt
cmake/modules/HandleLLVMOptions.cmake

index 17ef03aaf9ac346be5b186cf89e16501b3a7e36c..f85b6cc3633843003eba930f7fa38f52a10d313e 100644 (file)
@@ -22,15 +22,6 @@ if ( LLVM_USE_FOLDERS )
   set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 endif()
 
   set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 endif()
 
-if(MSVC AND NOT (${CMAKE_VERSION} VERSION_LESS 2.8.11))
-  # set stack reserved size to ~10MB
-  # CMake previously automatically set this value for MSVC builds, but the
-  # behavior was changed in CMake 2.8.11 (Issue 12437) to use the MSVC default
-  # value (1 MB) which is not enough for us in tasks such as parsing recursive
-  # C++ templates in Clang.
-  set(CMAKE_CXX_STACK_SIZE "10000000")
-endif()
-
 include(VersionFromVCS)
 
 option(LLVM_APPEND_VC_REV
 include(VersionFromVCS)
 
 option(LLVM_APPEND_VC_REV
index 406342940618168f340ced3cb4f048af6125abc6..7a455594c5999d4852a5a5ee80b5a9d2d8a68b93 100644 (file)
@@ -153,9 +153,14 @@ endif()
 if( MSVC )
   include(ChooseMSVCCRT)
 
 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( NOT (${CMAKE_VERSION} VERSION_LESS 2.8.11) )
+    # set stack reserved size to ~10MB
+    # CMake previously automatically set this value for MSVC builds, but the
+    # behavior was changed in CMake 2.8.11 (Issue 12437) to use the MSVC default
+    # value (1 MB) which is not enough for us in tasks such as parsing recursive
+    # C++ templates in Clang.
+    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:10000000")
+  endif()
 
   if( MSVC10 )
     # MSVC 10 will complain about headers in the STL not being exported, but
 
   if( MSVC10 )
     # MSVC 10 will complain about headers in the STL not being exported, but