Patchwork mtd-utils: enable garbage collection of unused function/data sections

login
register
mail settings
Submitter Mike Frysinger
Date Oct. 1, 2010, 5:37 a.m.
Message ID <1285911434-9186-1-git-send-email-vapier@gentoo.org>
Download mbox | patch
Permalink /patch/66303/
State Accepted, archived
Commit b1270a3331f68948b33581623dfdcadbf72a046b
Headers show

Comments

Mike Frysinger - Oct. 1, 2010, 5:37 a.m.
On my default build, this cumulatively shaves off ~100KiB of unused
code and data from the mtd-utils programs.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 common.mk |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
Artem Bityutskiy - Oct. 1, 2010, 6:41 a.m.
On Fri, 2010-10-01 at 01:37 -0400, Mike Frysinger wrote:
> On my default build, this cumulatively shaves off ~100KiB of unused
> code and data from the mtd-utils programs.
> 
> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
> ---
>  common.mk |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)

Pushed all your patches, thanks for cleaning this stuff up!

Patch

diff --git a/common.mk b/common.mk
index 0444ad9..a55c548 100644
--- a/common.mk
+++ b/common.mk
@@ -3,6 +3,7 @@  AR := $(CROSS)ar
 RANLIB := $(CROSS)ranlib
 
 # Stolen from Linux build system
+comma = ,
 try-run = $(shell set -e; ($(1)) >/dev/null 2>&1 && echo "$(2)" || echo "$(3)")
 cc-option = $(call try-run, $(CC) $(1) -c -xc /dev/null -o /dev/null,$(1),$(2))
 
@@ -12,6 +13,8 @@  WFLAGS := -Wall \
 	$(call cc-option,-Wwrite-strings) \
 	$(call cc-option,-Wno-sign-compare)
 CFLAGS += $(WFLAGS)
+SECTION_CFLAGS := $(call cc-option,-ffunction-sections -fdata-sections -Wl$(comma)--gc-sections)
+CFLAGS += $(SECTION_CFLAGS)
 
 ifneq ($(WITHOUT_LARGEFILE), 1)
   CPPFLAGS += -D_FILE_OFFSET_BITS=64