[U-Boot] P2041RDB: gcc 4.8.2/binutils 2.23.1 default to new GOT table layout

Scott Wood scottwood at freescale.com
Thu Feb 13 00:24:11 CET 2014


On Mon, 2014-02-10 at 15:19 +0000, Joerg Albert wrote:
> Hi,
> 
> I've recently compiled U-Boot (fsl-sdk-v1.3.2) for P2041RDB and had a
> problem with ARP requests flooding if the peer was not there.
> It turned out that NetArpWaitTimerStart was not relocated to RAM, but
> remained in flash, so it couldn't be updated.
> 
> Looking at the global offset table, it looks like the linker generates (by
> default) a new layout, without _GLOBAL_OFFSET_TABLE_ [-1] == blrl (as
> required by the EABI) and NetArpWaitTimerStart is the entry at
> _GLOBAL_OFFSET_TABLE_ [-1].
> u-boot.lds still assumes the blrl in the GOT.
> 
> Putting a
> 
> LDFLAGS_FINAL += --bss-plt

Do you mean -mbss-plt?

> into board/freescale/p2041rdb/config.mk
> 
> brought the blrl instruction in the GOT back and solved the ARP problem.
> 
> I compiled v2014.01-116-g0c57033 for P2041RDB without --bss-plt and the blrl
> was missing in the GOT as well.
> 
> --bss-plt is rarely documented, will it cause some other problems?
> 
> Are gcc 4.8.x and binutils 2.23.1 recommended to use with U-Boot or shall we
> stick to older versions?

For the SDK U-Boot, it's best to use the toolchain that came with the
SDK.

For mainline U-Boot, please submit a patch.

-Scott




More information about the U-Boot mailing list