
Does the following: * Add cleanup flags which will allow gcc to delete function sections which are unused. * mark the initcall sections and uboot cmds, symbols as being retained (else gcc will kill those too).
Signed-off-by: Nishanth Menon x0nishan@ti.com
Index: u-boot-v2.git/arch/arm/Makefile =================================================================== --- u-boot-v2.git.orig/arch/arm/Makefile 2008-05-12 07:21:57.000000000 -0500 +++ u-boot-v2.git/arch/arm/Makefile 2008-05-12 07:22:19.000000000 -0500 @@ -23,6 +23,10 @@ CFLAGS += -msoft-float -Os AFLAGS += -msoft-float -Os
+# Add cleanup flags +CPPFLAGS += -fdata-sections -ffunction-sections +LDFLAGS_uboot += -static --gc-sections + ifeq ($(incdir-y),) incdir-y := $(machine-y) endif Index: u-boot-v2.git/include/asm-generic/u-boot.lds.h =================================================================== --- u-boot-v2.git.orig/include/asm-generic/u-boot.lds.h 2008-05-12 07:21:41.000000000 -0500 +++ u-boot-v2.git/include/asm-generic/u-boot.lds.h 2008-05-12 07:22:02.000000000 -0500 @@ -1,14 +1,14 @@
#define INITCALLS \ - *(.initcall.0) \ - *(.initcall.1) \ - *(.initcall.2) \ - *(.initcall.3) \ - *(.initcall.4) \ - *(.initcall.5) \ - *(.initcall.6) \ - *(.initcall.7) + KEEP(*(.initcall.0)) \ + KEEP(*(.initcall.1)) \ + KEEP(*(.initcall.2)) \ + KEEP(*(.initcall.3)) \ + KEEP(*(.initcall.4)) \ + KEEP(*(.initcall.5)) \ + KEEP(*(.initcall.6)) \ + KEEP(*(.initcall.7))
-#define U_BOOT_CMDS *(SORT_BY_NAME(.u_boot_cmd*)) +#define U_BOOT_CMDS KEEP(*(SORT_BY_NAME(.u_boot_cmd*)))
-#define U_BOOT_SYMS *(__usymtab) +#define U_BOOT_SYMS KEEP(*(__usymtab))