[llvm] r192912 - CMake: set stack size for MSVC in just one place

Hans Wennborg hans at hanshq.net
Thu Oct 17 11:39:48 PDT 2013


Author: hans
Date: Thu Oct 17 13:39:47 2013
New Revision: 192912

URL: http://llvm.org/viewvc/llvm-project?rev=192912&view=rev
Log:
CMake: set stack size for MSVC in just one place

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.

Modified:
    llvm/trunk/CMakeLists.txt
    llvm/trunk/cmake/modules/HandleLLVMOptions.cmake

Modified: llvm/trunk/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/CMakeLists.txt?rev=192912&r1=192911&r2=192912&view=diff
==============================================================================
--- llvm/trunk/CMakeLists.txt (original)
+++ llvm/trunk/CMakeLists.txt Thu Oct 17 13:39:47 2013
@@ -22,15 +22,6 @@ if ( LLVM_USE_FOLDERS )
   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

Modified: llvm/trunk/cmake/modules/HandleLLVMOptions.cmake
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/HandleLLVMOptions.cmake?rev=192912&r1=192911&r2=192912&view=diff
==============================================================================
--- llvm/trunk/cmake/modules/HandleLLVMOptions.cmake (original)
+++ llvm/trunk/cmake/modules/HandleLLVMOptions.cmake Thu Oct 17 13:39:47 2013
@@ -153,9 +153,14 @@ 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( 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





More information about the llvm-commits mailing list