From fb5a24b4f03a715b23428b616df36a209941a8ec Mon Sep 17 00:00:00 2001 From: Etienne Bergeron Date: Thu, 7 Jul 2016 18:41:08 +0000 Subject: [PATCH] [compiler-rt] Fix minimal stack reserved for unittest on MSVC build Summary: Some unittest were not able to run in 64-bit because they need more than 2MB of stack and the default allocated stack with MSVC linker is 1MB. Reviewers: rnk Subscribers: wang0109, chrisha, llvm-commits, kubabrecka Differential Revision: http://reviews.llvm.org/D22101 llvm-svn: 274785 --- compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt | 7 +++++++ .../lib/sanitizer_common/tests/sanitizer_test_main.cc | 4 ---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt b/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt index 259c10316eb5..64964a837800 100644 --- a/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt +++ b/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt @@ -78,6 +78,13 @@ if(ANDROID) list(APPEND SANITIZER_TEST_LINK_FLAGS_COMMON -pie) endif() +# MSVC linker is allocating 1M for the stack by default, which is not +# enough for the unittests. Some unittests require more than 2M. +# The default stack size for clang is 8M. +if(MSVC) + list(APPEND SANITIZER_TEST_LINK_FLAGS_COMMON -Wl,/STACK:0x8000000) +endif() + set(SANITIZER_TEST_LINK_LIBS) append_list_if(COMPILER_RT_HAS_LIBLOG log SANITIZER_TEST_LINK_LIBS) # NDK r10 requires -latomic almost always. diff --git a/compiler-rt/lib/sanitizer_common/tests/sanitizer_test_main.cc b/compiler-rt/lib/sanitizer_common/tests/sanitizer_test_main.cc index 55888d487e31..20f8f53975d0 100644 --- a/compiler-rt/lib/sanitizer_common/tests/sanitizer_test_main.cc +++ b/compiler-rt/lib/sanitizer_common/tests/sanitizer_test_main.cc @@ -13,10 +13,6 @@ #include "gtest/gtest.h" #include "sanitizer_common/sanitizer_flags.h" -#ifdef _MSC_VER -#pragma comment(linker, "/STACK:33554432") -#endif - const char *argv0; int main(int argc, char **argv) {