[U-Boot] [PATCH] nios2: use gc sections to reduce image size

Follow the discussion of Charles Manning and Mike Frysinger. Using gc_sections helps reduce image size.
Configuring for nios2-generic board... Before, text data bss dec hex filename 123979 3724 22892 150595 24c43 /tmp/u-boot/u-boot After, text data bss dec hex filename 115983 3800 22732 142515 22cb3 /tmp/u-boot/u-boot
Signed-off-by: Thomas Chou thomas@wytron.com.tw --- arch/nios2/config.mk | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/arch/nios2/config.mk b/arch/nios2/config.mk index 793cc43..aba96b3 100644 --- a/arch/nios2/config.mk +++ b/arch/nios2/config.mk @@ -31,2 +31,5 @@ PLATFORM_CPPFLAGS += -DCONFIG_NIOS2 -D__NIOS2__
LDSCRIPT ?= $(SRCTREE)/$(CPUDIR)/u-boot.lds + +LDFLAGS += --gc-sections +PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections

On 28/05/2010 05:08, Thomas Chou wrote:
Follow the discussion of Charles Manning and Mike Frysinger. Using gc_sections helps reduce image size.
Configuring for nios2-generic board... Before, text data bss dec hex filename 123979 3724 22892 150595 24c43 /tmp/u-boot/u-boot After, text data bss dec hex filename 115983 3800 22732 142515 22cb3 /tmp/u-boot/u-boot
Signed-off-by: Thomas Chou thomas@wytron.com.tw
arch/nios2/config.mk | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/arch/nios2/config.mk b/arch/nios2/config.mk index 793cc43..aba96b3 100644 --- a/arch/nios2/config.mk +++ b/arch/nios2/config.mk @@ -31,2 +31,5 @@ PLATFORM_CPPFLAGS += -DCONFIG_NIOS2 -D__NIOS2__
LDSCRIPT ?= $(SRCTREE)/$(CPUDIR)/u-boot.lds
+LDFLAGS += --gc-sections +PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
Hi Thomas,
Will that stop it working with the gcc3-based nios2 nommu toolchain? The version of 'ld' in that toolchain doesn't support the --gc-sections option.

Ian Abbott wrote:
On 28/05/2010 05:08, Thomas Chou wrote:
Follow the discussion of Charles Manning and Mike Frysinger. Using gc_sections helps reduce image size.
Hi Thomas,
Will that stop it working with the gcc3-based nios2 nommu toolchain? The version of 'ld' in that toolchain doesn't support the --gc-sections option.
Hi Ian,
I have tested with the gcc3-based nios2 nommu toolchain and gc-sections works.
The error that we met when building busybox might be caused by the elf2flt process. There is no such problem generating elf.
Best regards, Thomas

Ian Abbott wrote:
On 28/05/2010 05:08, Thomas Chou wrote:
Follow the discussion of Charles Manning and Mike Frysinger. Using gc_sections helps reduce image size.
Hi Thomas,
Will that stop it working with the gcc3-based nios2 nommu toolchain? The version of 'ld' in that toolchain doesn't support the --gc-sections option.
I have tested with the gcc3-based nios2 nommu toolchain and gc-sections works.
Same here -- no problems.
--Scott

On 28/05/10 23:27, Thomas Chou wrote:
Ian Abbott wrote:
On 28/05/2010 05:08, Thomas Chou wrote:
Follow the discussion of Charles Manning and Mike Frysinger. Using gc_sections helps reduce image size.
Hi Thomas,
Will that stop it working with the gcc3-based nios2 nommu toolchain? The version of 'ld' in that toolchain doesn't support the --gc-sections option.
Hi Ian,
I have tested with the gcc3-based nios2 nommu toolchain and gc-sections works.
The error that we met when building busybox might be caused by the elf2flt process. There is no such problem generating elf.
Hi Thomas,
That was probably it then. I *knew* we had some problem building BusyBox with --gc-sections!

Applied to: git://git.denx.de/u-boot-nios.git next Thanks, --Scott
Thomas Chou wrote:
Follow the discussion of Charles Manning and Mike Frysinger. Using gc_sections helps reduce image size.
Configuring for nios2-generic board... Before, text data bss dec hex filename 123979 3724 22892 150595 24c43 /tmp/u-boot/u-boot After, text data bss dec hex filename 115983 3800 22732 142515 22cb3 /tmp/u-boot/u-boot
Signed-off-by: Thomas Chou thomas@wytron.com.tw
arch/nios2/config.mk | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/arch/nios2/config.mk b/arch/nios2/config.mk index 793cc43..aba96b3 100644 --- a/arch/nios2/config.mk +++ b/arch/nios2/config.mk @@ -31,2 +31,5 @@ PLATFORM_CPPFLAGS += -DCONFIG_NIOS2 -D__NIOS2__
LDSCRIPT ?= $(SRCTREE)/$(CPUDIR)/u-boot.lds
+LDFLAGS += --gc-sections +PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
participants (3)
-
Ian Abbott
-
Scott McNutt
-
Thomas Chou