about summary refs log tree commit diff
path: root/src/rt/rust_task.cpp
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-12-17 16:46:50 -0800
committerBrian Anderson <banderson@mozilla.com>2011-12-17 16:46:50 -0800
commitfe683dfb80498fa3336c6f5f96b6b82917ac08b3 (patch)
tree6a3c95ac14609fcfbc0aba9f967f3bf01c2188c6 /src/rt/rust_task.cpp
parent00be34608914681e9a0a14611fc5ced6cffa32ec (diff)
downloadrust-fe683dfb80498fa3336c6f5f96b6b82917ac08b3.tar.gz
rust-fe683dfb80498fa3336c6f5f96b6b82917ac08b3.zip
rt: Get rid of the valgrind guard bytes at the end of the stack
Preventing us from writing beyond our allocations is _what valgrind does_,
so telling valgrind not to let us write to the end of the stack isn't
buying anything.
Diffstat (limited to 'src/rt/rust_task.cpp')
-rw-r--r--src/rt/rust_task.cpp19
1 files changed, 2 insertions, 17 deletions
diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp
index 7434a4673cd..0f5a6904ff1 100644
--- a/src/rt/rust_task.cpp
+++ b/src/rt/rust_task.cpp
@@ -15,22 +15,15 @@
 
 #include "globals.h"
 
-// Each stack gets some guard bytes that valgrind will verify we don't touch
-#ifndef NVALGRIND
-#define STACK_NOACCESS_SIZE 16
-#else
-#define STACK_NOACCESS_SIZE 0
-#endif
-
 // The amount of extra space at the end of each stack segment, available
 // to the rt, compiler and dynamic linker for running small functions
 // FIXME: We want this to be 128 but need to slim the red zone calls down
 #ifdef __i386__
-#define RED_ZONE_SIZE (65536 + STACK_NOACCESS_SIZE)
+#define RED_ZONE_SIZE 65536
 #endif
 
 #ifdef __x86_64__
-#define RED_ZONE_SIZE (65536 + STACK_NOACCESS_SIZE)
+#define RED_ZONE_SIZE 65536
 #endif
 
 // Stack size
@@ -80,19 +73,11 @@ config_valgrind_stack(stk_seg *stk) {
     // caused valgrind to consider the whole thing inaccessible.
     size_t sz = stk->end - (uintptr_t)&stk->data[0];
     VALGRIND_MAKE_MEM_UNDEFINED(stk->data, sz);
-
-    // Establish some guard bytes so valgrind will tell
-    // us if we run off the end of the stack
-    VALGRIND_MAKE_MEM_NOACCESS(stk->data, STACK_NOACCESS_SIZE);
 #endif
 }
 
 static void
 unconfig_valgrind_stack(stk_seg *stk) {
-#ifndef NVALGRIND
-    // Make the guard bytes accessible again, but undefined
-    VALGRIND_MAKE_MEM_UNDEFINED(stk->data, STACK_NOACCESS_SIZE);
-#endif
 VALGRIND_STACK_DEREGISTER(stk->valgrind_id);
 }