about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-12-26 06:31:47 +0000
committerbors <bors@rust-lang.org>2014-12-26 06:31:47 +0000
commitbd3cf4c05fdec03ab22df27f33191f4851e18cc9 (patch)
tree4a045d71eb0153f8199c243f58073c16ccee3fff
parentc43efee6def9a4a4e943feef0236d3e17b3f581d (diff)
parent58d808f9889882121475457e30f127db4b09a09b (diff)
downloadrust-bd3cf4c05fdec03ab22df27f33191f4851e18cc9.tar.gz
rust-bd3cf4c05fdec03ab22df27f33191f4851e18cc9.zip
auto merge of #20218 : alexcrichton/rust/jemalloc-sections, r=luqmana
It's quite possible that small programs don't use all of jemalloc, and building
with -ffunction-sections and -fdata-sections allows the linker (via
--gc-sections) to strip out all unused code at link time. This decreases the
size of a "hello world" executable for me from 716K to 482K with no measurable
impact on link time. After this patch jemalloc is still the largest portion of
our hello world executables, but this helps cut down on the size at least
somewhat!
-rw-r--r--mk/rt.mk2
1 files changed, 1 insertions, 1 deletions
diff --git a/mk/rt.mk b/mk/rt.mk
index a1d18aae1b4..6a7be26c7a6 100644
--- a/mk/rt.mk
+++ b/mk/rt.mk
@@ -180,7 +180,7 @@ $$(JEMALLOC_LOCAL_$(1)): $$(JEMALLOC_DEPS) $$(MKFILE_DEPS)
 		AR="$$(AR_$(1))" \
 		RANLIB="$$(AR_$(1)) s" \
 		CPPFLAGS="-I $(S)src/rt/" \
-		EXTRA_CFLAGS="-g1"
+		EXTRA_CFLAGS="-g1 -ffunction-sections -fdata-sections"
 	$$(Q)$$(MAKE) -C "$$(JEMALLOC_BUILD_DIR_$(1))" build_lib_static
 
 ifeq ($$(CFG_DISABLE_JEMALLOC),)