[PATCH] D22101: [compiler-rt] Fix minimal stack reserved for unittest on MSVC build

Etienne Bergeron via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 7 11:38:13 PDT 2016


etienneb created this revision.
etienneb added a reviewer: rnk.
etienneb added subscribers: llvm-commits, chrisha, wang0109.
Herald added a subscriber: kubabrecka.

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.

http://reviews.llvm.org/D22101

Files:
  lib/sanitizer_common/tests/CMakeLists.txt
  lib/sanitizer_common/tests/sanitizer_test_main.cc

Index: lib/sanitizer_common/tests/sanitizer_test_main.cc
===================================================================
--- lib/sanitizer_common/tests/sanitizer_test_main.cc
+++ 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) {
Index: lib/sanitizer_common/tests/CMakeLists.txt
===================================================================
--- lib/sanitizer_common/tests/CMakeLists.txt
+++ lib/sanitizer_common/tests/CMakeLists.txt
@@ -78,6 +78,13 @@
   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.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D22101.63104.patch
Type: text/x-patch
Size: 1163 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160707/54eadfb2/attachment.bin>


More information about the llvm-commits mailing list