[U-Boot] [PATCH V4 1/2] arm926ejs: fix linker file for newer ld support

Albert ARIBAUD albert.aribaud at free.fr
Tue Nov 9 19:47:49 CET 2010


Le 09/11/2010 19:24, Daniel Hobi a écrit :
> Hi Albert,
>
> On 04.11.2010 23:22, Albert Aribaud wrote:
>> older ld emitted all ELF relocations in input sections named
>> .rel.dyn, whereas newer ld uses names of the form .rel*. The
>> linker script only collected .rel.dyn input sections. Rewrite
>> to collect all .rel* input sections and overlay with .bss.
>
> Tested-by: Daniel Hobi<daniel.hobi at schmid-telecom.ch>

Thanks Daniel for the test.

> Thank you. This patch is required to get Kirkwood-based boards working
> again when using the CodeSourcery 2009q3 toolchain.

(can't find the 2010q3 Lite toolchain on CodeSourcery's site, latest is 
2010q1 apparently... Can you tell me which gcc and which ld version is 
used in 2010q3?)

I think this V4 of my patchset could be now committed to 
u-boot-arm/master, and if possible even on u-boot-arm for the december 
release of u-boot, as it is a bugfix.

> But shouldn't this change be applied to all ARM linker scripts, ie
> arch/arm/cpu/*/u-boot.lds?

Yes, it should. :)

> And on many ARM platforms (including Kirkwood), the timer implementation
> is still accessing BSS variables before relocation.

That is fixed in the orion5x code; a git blame on the timer.c file will 
tell you which commit of mine did the fix, and from then you can port to 
kirkwood as the orion5x code comes from the kirkwood one.

> Is someone working on this? Candidates are:
>
> $ git grep "static ulong timestamp"
> arch/arm/cpu/arm1136/mx31/timer.c:static ulong timestamp;
> arch/arm/cpu/arm1136/omap24xx/timer.c:static ulong timestamp;
> arch/arm/cpu/arm1176/tnetv107x/timer.c:static ulong timestamp;
> arch/arm/cpu/arm720t/interrupts.c:static ulong timestamp;
> arch/arm/cpu/arm920t/a320/timer.c:static ulong timestamp;
> arch/arm/cpu/arm920t/at91rm9200/timer.c:static ulong timestamp;
> arch/arm/cpu/arm920t/s3c24x0/timer.c:static ulong timestamp;
> arch/arm/cpu/arm926ejs/davinci/timer.c:static ulong timestamp;
> arch/arm/cpu/arm926ejs/kirkwood/timer.c:static ulong timestamp;
> arch/arm/cpu/arm926ejs/mx25/timer.c:static ulong timestamp;
> arch/arm/cpu/arm926ejs/mx27/timer.c:static ulong timestamp;
> arch/arm/cpu/arm926ejs/omap/timer.c:static ulong timestamp;
> arch/arm/cpu/arm926ejs/orion5x/timer.c:static ulong timestamp;
> arch/arm/cpu/arm926ejs/spear/timer.c:static ulong timestamp;
> arch/arm/cpu/arm926ejs/versatile/timer.c:static ulong timestamp;
> arch/arm/cpu/armv7/mx5/timer.c:static ulong timestamp;
> arch/arm/cpu/armv7/omap-common/timer.c:static ulong timestamp;
> arch/arm/cpu/lh7a40x/timer.c:static ulong timestamp;
> arch/arm/cpu/s3c44b0/timer.c:static ulong timestamp;

Normally, the board maintainers should handle this during the window 
after next version... Dunno if that is practical, but OTOH it would 
easily show which boards are still maintained and which are not. :)

> Best regards,
> Daniel

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list