[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