diff options
author | Michal Simek <michal.simek@xilinx.com> | 2020-11-04 16:01:45 +0300 |
---|---|---|
committer | Michal Simek <michal.simek@xilinx.com> | 2020-11-20 12:42:53 +0300 |
commit | 9c2aa7e7070a3e7c4341c83c375b47e48108a8ff (patch) | |
tree | bff3436efa5ed57468f4fb300e54ddafae922b05 /arch | |
parent | b80680633dc954d32f81f3afacd3d1f2f3d290b0 (diff) | |
download | u-boot-9c2aa7e7070a3e7c4341c83c375b47e48108a8ff.tar.xz |
microblaze: Enable GCC garbage collector for full U-Boot
GCC's garbage collector works for Microblaze for quite a long time but none
has enabled it.
The same change has be done for example by commit fac4790491f6 ("arc:
Eliminate unused code and data with GCC's garbage collector").
Before:
text data bss dec hex filename
588760 33592 39192 661544 a1828 u-boot
After:
text data bss dec hex filename
504504 32164 38608 575276 8c72c u-boot
Which saves almost 15% of memory footprint.
Also group symbols/functions to proper section.
Reported-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/microblaze/config.mk | 3 | ||||
-rw-r--r-- | arch/microblaze/cpu/u-boot.lds | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/arch/microblaze/config.mk b/arch/microblaze/config.mk index 96c39b1278..de5b97e719 100644 --- a/arch/microblaze/config.mk +++ b/arch/microblaze/config.mk @@ -9,6 +9,9 @@ CONFIG_STANDALONE_LOAD_ADDR ?= 0x80F00000 PLATFORM_CPPFLAGS += -ffixed-r31 -D__microblaze__ +PLATFORM_CPPFLAGS += -fdata-sections -ffunction-sections + +LDFLAGS_FINAL += --gc-sections ifeq ($(CONFIG_SPL_BUILD),) PLATFORM_CPPFLAGS += -fPIC diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds index 9282643349..5dc09dbad2 100644 --- a/arch/microblaze/cpu/u-boot.lds +++ b/arch/microblaze/cpu/u-boot.lds @@ -14,7 +14,7 @@ SECTIONS { __text_start = .; arch/microblaze/cpu/start.o (.text) - *(.text) + *(.text*) __text_end = .; } @@ -28,7 +28,7 @@ SECTIONS .data ALIGN(0x4): { __data_start = .; - *(.data) + *(.data*) __data_end = .; } @@ -51,7 +51,7 @@ SECTIONS __bss_start = .; *(.sbss) *(.scommon) - *(.bss) + *(.bss*) *(COMMON) . = ALIGN(4); __bss_end = .; |