[U-Boot] [PATCH] ARMv7: Fix linker errors across toolchain versions

Premi, Sanjeev premi at ti.com
Wed Dec 1 18:19:23 CET 2010


> -----Original Message-----
> From: u-boot-bounces at lists.denx.de 
> [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Albert ARIBAUD
> Sent: Wednesday, December 01, 2010 10:43 PM
> To: u-boot at lists.denx.de
> Subject: Re: [U-Boot] [PATCH] ARMv7: Fix linker errors across 
> toolchain versions
> 
> 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.

[sp] From the earlier discussion, I inferred the overlay was supposed
     to be .rel.dyn and .bss.

     Let me get the ".rel.dyn + .dynsym" overlay with ".bss".

     If it works across compiler versions would that be okay?

~sanjeev

> 
> 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.
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
> 


More information about the U-Boot mailing list