[U-Boot] [PATCH] ARMv7: Fix linker errors across toolchain versions
Albert ARIBAUD
albert.aribaud at free.fr
Wed Dec 1 18:13:20 CET 2010
Le 01/12/2010 16:17, Sanjeev Premi a écrit :
> This patch fixes the linker problems noticed while
> building the omap3_evm with Codesourcery toolchains
> 2009q1, 2009q3 and 2010q1.
>
> The compilation was tested as success for both
> omap3_evm and omap3_beagle with toolchain versions
> 2009q1 and 2010q1.
>
> [1] http://marc.info/?l=u-boot&m=129104332808386&w=2
>
> Signed-off-by: Sanjeev Premi<premi at ti.com>
> ---
> The patch touches all ARMv7 architectures, will need
> to be reviewed thoroughly.
>
> I am getting hang of relocation feature, but definitely
> hands-on. Impact would have to be reviewd as well.
> This is the reason for sending the patch early - before
> i start testing on the evm.
>
> arch/arm/cpu/armv7/u-boot.lds | 26 +++++++++++++++-----------
> 1 files changed, 15 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/u-boot.lds b/arch/arm/cpu/armv7/u-boot.lds
> index 5725c30..faf6ad8 100644
> --- a/arch/arm/cpu/armv7/u-boot.lds
> +++ b/arch/arm/cpu/armv7/u-boot.lds
> @@ -55,22 +55,26 @@ SECTIONS
>
> . = ALIGN(4);
>
> - .rel.dyn : {
> - __rel_dyn_start = .;
> - *(.rel*)
> - __rel_dyn_end = .;
> - }
> -
> .dynsym : {
> __dynsym_start = .;
> *(.dynsym)
> }
>
> - .bss __rel_dyn_start (OVERLAY) : {
> - __bss_start = .;
> - *(.bss)
> - . = ALIGN(4);
> - _end = .;
> + OVERLAY : NOCROSSREFS
> + {
> + .rel.dyn {
> + __rel_dyn_start = .;
> + *(.rel*)
> + __rel_dyn_end = .;
> + }
> +
> + .bss
> + {
> + __bss_start = .;
> + *(.bss)
> + . = ALIGN(4);
> + _end = .;
> + }
> }
>
> /DISCARD/ : { *(.dynstr*) }
Nak -- what we want to overlay is .bss on one hand, and .rel.dyn *plus*
.dynsym on the other hand; OVERLAY { ... } does not allow this.
Also, this change modifies the mapping, so if mi makes an obvious bug
disappear, it may be only because the resulting u-boot corrupts
relocation now in a less obvious way.
Amicalement,
--
Albert.
More information about the U-Boot
mailing list