mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 06:51:58 +00:00
Make valgrind usage more consistent and less error prone.
I was still having issues with the build system somehow getting confused as to which set of valgrind headers to use when compiling rt. This commit moves all the valgrind headers into their own directory under rt and makes the usage more consistent. The compiler is now passed the -DNVALGRIND flag when valgrind is not installed, as opposed to passing -DHAVE_VALGRIND. We also pass -I src/rt to the compiler when building rt so you can more easily import what you want. I also cleaned up some erroneous #includes along the way. It should be safe to always just import the local valgrind headers and use them without question. NVALGRIND turns the operations to no-ops when it is active, and the build and tests run cleanly with or without.
This commit is contained in:
parent
8d8148f1f7
commit
b513a5a500
@ -17,8 +17,8 @@ CFG_GCCISH_LINK_FLAGS :=
|
||||
# embedded into the executable, so use a no-op command.
|
||||
CFG_DSYMUTIL := true
|
||||
|
||||
ifneq ($(CFG_VALGRIND),)
|
||||
CFG_GCCISH_CFLAGS += -DHAVE_VALGRIND
|
||||
ifeq ($(CFG_VALGRIND),)
|
||||
CFG_GCCISH_CFLAGS += -DNVALGRIND
|
||||
endif
|
||||
|
||||
ifneq ($(findstring freebsd,$(CFG_OSTYPE)),)
|
||||
|
2
mk/rt.mk
2
mk/rt.mk
@ -125,7 +125,7 @@ else
|
||||
endif
|
||||
|
||||
RUNTIME_DEF_$(1) := rt/rustrt$$(CFG_DEF_SUFFIX)
|
||||
RUNTIME_INCS_$(1) := -I $$(S)src/rt/isaac -I $$(S)src/rt/uthash \
|
||||
RUNTIME_INCS_$(1) := -I $$(S)src/rt -I $$(S)src/rt/isaac -I $$(S)src/rt/uthash \
|
||||
-I $$(S)src/rt/arch/$$(HOST_$(1)) \
|
||||
-I $$(S)src/libuv/include
|
||||
RUNTIME_OBJS_$(1) := $$(RUNTIME_CS_$(1):rt/%.cpp=rt/$(1)/%.o) \
|
||||
|
@ -7,7 +7,7 @@
|
||||
#include <inttypes.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "../../memcheck.h"
|
||||
#include "vg/memcheck.h"
|
||||
|
||||
template<typename T>
|
||||
T align_down(T sp)
|
||||
@ -51,9 +51,7 @@ public:
|
||||
uint32_t bot = regs.esp;
|
||||
uint32_t top = align_down(bot - nbytes);
|
||||
|
||||
#ifdef HAVE_VALGRIND
|
||||
(void)VALGRIND_MAKE_MEM_UNDEFINED(top - 4, bot - top + 4);
|
||||
#endif
|
||||
|
||||
return reinterpret_cast<void *>(top);
|
||||
}
|
||||
|
@ -8,9 +8,7 @@
|
||||
#include <stdint.h>
|
||||
#include <xmmintrin.h>
|
||||
|
||||
#ifdef HAVE_VALGRIND
|
||||
#include <valgrind/memcheck.h>
|
||||
#endif
|
||||
#include "vg/memcheck.h"
|
||||
|
||||
template<typename T>
|
||||
T align_down(T sp)
|
||||
@ -51,9 +49,7 @@ public:
|
||||
uint64_t bot = regs.data[RUSTRT_RSP];
|
||||
uint64_t top = align_down(bot - nbytes);
|
||||
|
||||
#ifdef HAVE_VALGRIND
|
||||
(void)VALGRIND_MAKE_MEM_UNDEFINED(top - 4, bot - top + 4);
|
||||
#endif
|
||||
|
||||
return reinterpret_cast<void *>(top);
|
||||
}
|
||||
|
@ -2,8 +2,8 @@
|
||||
#include "rust_internal.h"
|
||||
#include "rust_cc.h"
|
||||
|
||||
#include "valgrind.h"
|
||||
#include "memcheck.h"
|
||||
#include "vg/valgrind.h"
|
||||
#include "vg/memcheck.h"
|
||||
|
||||
#ifndef __WIN32__
|
||||
#include <execinfo.h>
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include "rust_internal.h"
|
||||
#include "valgrind.h"
|
||||
#include "vg/valgrind.h"
|
||||
|
||||
// The mechanism in this file is very crude; every domain (thread) spawns its
|
||||
// own secondary timer thread, and that timer thread *never idles*. It
|
||||
|
Loading…
Reference in New Issue
Block a user