mpc85xx: Add support for -msingle-pic-base
authorJoakim Tjernlund <joakim.tjernlund@infinera.com>
Thu, 6 Dec 2018 16:20:53 +0000 (17:20 +0100)
committerYork Sun <york.sun@nxp.com>
Wed, 23 Jan 2019 18:48:48 +0000 (10:48 -0800)
-msingle-pic-base is a new gcc(from 4.6) option for ppc and
it reduces the size of my u-boot with about 4-5 KB.
While at it, add -fno-jump-tables too to save a
few more bytes.

e5500 core:
size u-boot.bef
   text    data     bss     dec     hex filename
 473043   23772  307104  803919   c444f u-boot.bef
size u-boot.aft
   text    data     bss     dec     hex filename
 453195   23772  307104  784071   bf6c7 u-boot.aft

e500 core:
size u-boot.bef
   text    data     bss     dec     hex filename
 292998   17868   24968  335834   51fda u-boot.bef
size u-boot.aft
   text    data     bss     dec     hex filename
 288002   17868   24968  330838   50c56 u-boot.aft

Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
Reviewed-by: York Sun <york.sun@nxp.com>
arch/powerpc/cpu/mpc85xx/config.mk
arch/powerpc/cpu/mpc85xx/start.S

index 44d69ad..7a1d81c 100644 (file)
@@ -4,6 +4,7 @@
 # Xianghua Xiao, X.Xiao@motorola.com
 
 PLATFORM_CPPFLAGS += -Wa,-me500 -msoft-float -mno-string
+PLATFORM_RELFLAGS += -msingle-pic-base -fno-jump-tables
 
 # -mspe=yes is needed to have -mno-spe accepted by a buggy GCC;
 # see "[PATCH,rs6000] make -mno-spe work as expected" on
index 932aa08..dbc7053 100644 (file)
@@ -1216,6 +1216,9 @@ _start_cont:
        mr      r1,r3           /* Transfer to SP(r1) */
 
        GET_GOT
+       /* Needed for -msingle-pic-base */
+       bl      _GLOBAL_OFFSET_TABLE_@local-4
+       mflr    r30
 
        /* Pass our potential ePAPR device tree pointer to cpu_init_early_f */
        mr      r3, r24