diff options
-rw-r--r-- | llvm/cmake/modules/HandleLLVMOptions.cmake | 18 | ||||
-rw-r--r-- | llvm/cmake/modules/TableGen.cmake | 5 |
2 files changed, 11 insertions, 12 deletions
diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake index 6a4f7e5f074..02685483808 100644 --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -224,6 +224,17 @@ if( MSVC_IDE ) endif() endif() +# set stack reserved size to ~10MB +if(MSVC) + # 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") +elseif(MINGW) # FIXME: Also cygwin? + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--stack,16777216") +endif() + if( MSVC ) if( CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0 ) # For MSVC 2013, disable iterator null pointer checking in debug mode, @@ -233,13 +244,6 @@ if( MSVC ) include(ChooseMSVCCRT) - # 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") - if( MSVC11 ) add_llvm_definitions(-D_VARIADIC_MAX=10) endif() diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake index c88ee3fc196..b84fa93e90d 100644 --- a/llvm/cmake/modules/TableGen.cmake +++ b/llvm/cmake/modules/TableGen.cmake @@ -133,11 +133,6 @@ macro(add_tablegen target project) endif() endif() - if( MINGW ) - if(CMAKE_SIZEOF_VOID_P MATCHES "8") - set_target_properties(${target} PROPERTIES LINK_FLAGS -Wl,--stack,16777216) - endif(CMAKE_SIZEOF_VOID_P MATCHES "8") - endif( MINGW ) if (${project} STREQUAL LLVM AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY) install(TARGETS ${target} EXPORT LLVMExports |