[U-Boot] [RFC PATCH v1] powerpc: add --bss-plt to LDFLAGS

Joakim Tjernlund joakim.tjernlund at transmode.se
Wed Sep 10 12:47:54 CEST 2014


Chris Packham <judge.packham at gmail.com> wrote on 2014/09/10 06:03:10:
> 
> With some versions of gcc (that we know of 4.6.3 and 4.8.2 are affected)
> it is necessary to specify --bss-plt to get the final blrl in the
> _GOT2_TABLE_. Without this the last symbol does not get it's address
> relocated.  For the P2041RDB board this ended up being
> NetArpWaitTimerStart which caused the ARP packets to timeout
> immediately.
> 
> Helped-by: Joakim Tjernlund <joakim.tjernlund at transmode.se>
> Signed-off-by: Chris Packham <judge.packham at gmail.com>

The commit text is a bit misleading, it is binutils(ld) which has changed
default so now one have to specify --bss-plt to get what u-boot needs.
Works fine with binutils 2.21.1

Acked-by: Joakim Tjernlund <joakim.tjernlund at transmode.se>

One could possibly argue that --secure-plt should have a NULL word there 
like
the other 3 reserved words around _GLOBAL_OFFSET_TABLE_ to preserve 
compatibility.

PS.
     -mbss-plt is the gcc option while --bss-plt is the ld option. u-boot
     invokes ld directly so --bss-plt is appropriate
 
> ---
> Technically this is v2 of
> http://lists.denx.de/pipermail/u-boot/2014-September/188365.html but the
> solution is so different that I'm treating it as a new patch series.
> 
>  arch/powerpc/config.mk |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/powerpc/config.mk b/arch/powerpc/config.mk
> index 6329b6c..fec02f2 100644
> --- a/arch/powerpc/config.mk
> +++ b/arch/powerpc/config.mk
> @@ -11,6 +11,7 @@ endif
> 
>  CONFIG_STANDALONE_LOAD_ADDR ?= 0x40000
>  LDFLAGS_FINAL += --gc-sections
> +LDFLAGS_FINAL += --bss-plt
>  PLATFORM_RELFLAGS += -fpic -mrelocatable -ffunction-sections 
-fdata-sections \
>                          -meabi
>  PLATFORM_CPPFLAGS += -D__powerpc__ -ffixed-r2
> -- 
> 1.7.9.5
> 



More information about the U-Boot mailing list