From dda0896d875ec2d33b6de94df818a2f94526272b Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sat, 30 Jul 2011 00:34:59 +0200 Subject: use gcc/ld flags -ffunction-sections and --gc-sections This will discard unused functions from the resulting binary --- firmware/Makefile | 4 ++-- firmware/link/AT91SAM7S128-ROM-sam7dfu-app.ld | 10 +++++----- firmware/link/AT91SAM7S256-ROM-sam7dfu-app.ld | 10 +++++----- firmware/link/AT91SAM7S64-ROM-sam7dfu-app.ld | 10 +++++----- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/firmware/Makefile b/firmware/Makefile index 9a95d44..b085c33 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -249,7 +249,7 @@ CFLAGS += -Wredundant-decls -Wreturn-type -Wshadow CFLAGS += -Wbad-function-cast -Wsign-compare -Waggregate-return CFLAGS += -Wa,-adhlns=$(subst $(suffix $<),.lst,$<) CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) -#CFLAGS += -ffunction-sections -fdata-sections +CFLAGS += -ffunction-sections -fdata-sections # flags only for C CONLYFLAGS += -Wnested-externs @@ -315,7 +315,7 @@ LDFLAGS += -lc -lgcc LDFLAGS += $(CPLUSPLUS_LIB) LDFLAGS += $(patsubst %,-L%,$(EXTRA_LIBDIRS)) LDFLAGS += $(patsubst %,-l%,$(EXTRA_LIBS)) -#LDFLAGS += --gc-sections +LDFLAGS += -Wl,--gc-sections -Wl,--entry=_startup # Set Linker-Script Depending On Selected Memory and Controller ifeq ($(RUN_MODE),RUN_FROM_RAM) diff --git a/firmware/link/AT91SAM7S128-ROM-sam7dfu-app.ld b/firmware/link/AT91SAM7S128-ROM-sam7dfu-app.ld index ebac6d4..7db540e 100644 --- a/firmware/link/AT91SAM7S128-ROM-sam7dfu-app.ld +++ b/firmware/link/AT91SAM7S128-ROM-sam7dfu-app.ld @@ -16,8 +16,8 @@ SECTIONS . = 0x00000000; /* first section is .text which is used for code */ .text 0x00104000: AT ( 0x00000000 ) { - src/start/Cstartup_app.o (.text) - * (.text) + src/start/Cstartup_app.o (.text*) + * (.text*) * (.rodata*) . = ALIGN(4); } >FLASH @@ -28,8 +28,8 @@ SECTIONS /* 0x00200000 ... */ .data 0x00200028: AT ( ADDR(.text) + SIZEOF(.text) - ADDR(.text) ) { _data = . ; - * (.fastrun) - * (.data) + * (.fastrun*) + * (.data*) . = ALIGN(4); } >DATA @@ -40,7 +40,7 @@ SECTIONS .bss : { __bss_start = . ; __bss_start__ = . ; - *(.bss) + *(.bss*) *(COMMON) } >DATA diff --git a/firmware/link/AT91SAM7S256-ROM-sam7dfu-app.ld b/firmware/link/AT91SAM7S256-ROM-sam7dfu-app.ld index 85bf7b8..7ec2089 100644 --- a/firmware/link/AT91SAM7S256-ROM-sam7dfu-app.ld +++ b/firmware/link/AT91SAM7S256-ROM-sam7dfu-app.ld @@ -16,8 +16,8 @@ SECTIONS . = 0x00000000; /* first section is .text which is used for code */ .text 0x00104000: AT ( 0x00000000 ) { - src/start/Cstartup_app.o (.text) - * (.text) + src/start/Cstartup_app.o (.text*) + * (.text*) * (.rodata*) . = ALIGN(4); } >FLASH @@ -28,8 +28,8 @@ SECTIONS /* 0x00200000 ... */ .data 0x00200028: AT ( ADDR(.text) + SIZEOF(.text) - ADDR(.text) ) { _data = . ; - * (.fastrun) - * (.data) + * (.fastrun*) + * (.data*) . = ALIGN(4); } >DATA @@ -40,7 +40,7 @@ SECTIONS .bss : { __bss_start = . ; __bss_start__ = . ; - *(.bss) + *(.bss*) *(COMMON) } >DATA diff --git a/firmware/link/AT91SAM7S64-ROM-sam7dfu-app.ld b/firmware/link/AT91SAM7S64-ROM-sam7dfu-app.ld index de24dd8..d45f691 100644 --- a/firmware/link/AT91SAM7S64-ROM-sam7dfu-app.ld +++ b/firmware/link/AT91SAM7S64-ROM-sam7dfu-app.ld @@ -16,8 +16,8 @@ SECTIONS . = 0x00000000; /* first section is .text which is used for code */ .text 0x00104000: AT ( 0x00000000 ) { - src/start/Cstartup_app.o (.text) - * (.text) + src/start/Cstartup_app.o (.text*) + * (.text*) * (.rodata*) . = ALIGN(4); } >FLASH @@ -28,8 +28,8 @@ SECTIONS /* 0x00200000 ... */ .data 0x00200028: AT ( ADDR(.text) + SIZEOF(.text) - ADDR(.text) ) { _data = . ; - * (.fastrun) - * (.data) + * (.fastrun*) + * (.data*) . = ALIGN(4); } >DATA @@ -40,7 +40,7 @@ SECTIONS .bss : { __bss_start = . ; __bss_start__ = . ; - *(.bss) + *(.bss*) *(COMMON) } >DATA -- cgit v1.2.3