From 1ee099da36f6ac647747806558e555c5fe8dcd12 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Sun, 7 Sep 2014 14:05:32 -0400 Subject: [PATCH] enable jemalloc debugging in unoptimized builds The performance hit from these checks is significant, but unoptimized builds are already incredibly slow. Enabling these checks results in better test coverage since there are bots doing unoptimized builds, and the cost is relatively small in the context of an unoptimized build. This also allows using `JEMALLOC_FLAGS` to override the default configure flags. --- Makefile.in | 1 + mk/main.mk | 4 ++++ mk/rt.mk | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in index 5683eb7ba06..48b211167cf 100644 --- a/Makefile.in +++ b/Makefile.in @@ -65,6 +65,7 @@ # # * `VERBOSE=1` - Print all commands. Use this to see what's going on. # * `RUSTFLAGS=...` - Add compiler flags to all `rustc` invocations +# * `JEMALLOC_FLAGS=...` - Pass flags to jemalloc's configure script # # * `TESTNAME=...` - Specify the name of tests to run # * `CHECK_IGNORED=1` - Run normally-ignored tests diff --git a/mk/main.mk b/mk/main.mk index 2bdfc1bafd7..3d5d0b441f1 100644 --- a/mk/main.mk +++ b/mk/main.mk @@ -90,15 +90,19 @@ endif CFG_RUSTC_FLAGS := $(RUSTFLAGS) CFG_GCCISH_CFLAGS := CFG_GCCISH_LINK_FLAGS := +CFG_JEMALLOC_FLAGS := ifdef CFG_DISABLE_OPTIMIZE $(info cfg: disabling rustc optimization (CFG_DISABLE_OPTIMIZE)) CFG_RUSTC_FLAGS += + CFG_JEMALLOC_FLAGS += --enable-debug else # The rtopt cfg turns off runtime sanity checks CFG_RUSTC_FLAGS += -O --cfg rtopt endif +CFG_JEMALLOC_FLAGS += $(JEMALLOC_FLAGS) + ifdef CFG_DISABLE_DEBUG CFG_RUSTC_FLAGS += --cfg ndebug CFG_GCCISH_CFLAGS += -DRUST_NDEBUG diff --git a/mk/rt.mk b/mk/rt.mk index 13ed4abb438..216abcf5f3e 100644 --- a/mk/rt.mk +++ b/mk/rt.mk @@ -301,7 +301,7 @@ JEMALLOC_LOCAL_$(1) := $$(JEMALLOC_BUILD_DIR_$(1))/lib/$$(JEMALLOC_REAL_NAME_$(1 $$(JEMALLOC_LOCAL_$(1)): $$(JEMALLOC_DEPS) $$(MKFILE_DEPS) @$$(call E, make: jemalloc) cd "$$(JEMALLOC_BUILD_DIR_$(1))"; "$(S)src/jemalloc/configure" \ - $$(JEMALLOC_ARGS_$(1)) --with-jemalloc-prefix=je_ \ + $$(JEMALLOC_ARGS_$(1)) --with-jemalloc-prefix=je_ $(CFG_JEMALLOC_FLAGS) \ --build=$(CFG_BUILD) --host=$(1) \ CC="$$(CC_$(1))" \ AR="$$(AR_$(1))" \