[U-Boot] [PATCH v2 0/4] Get rid of R_ARM_ABS32 relocation records

Tom Rini
2013-03-13T18:39:50Z

On Mon, Feb 25, 2013 at 05:20:34PM +0100, Daniel Schwierzeck wrote:

> Hi Albert, Tom,
>
> 2013/2/25 Tom Rini <trini@ti.com>:
> > On Mon, Feb 25, 2013 at 11:58:56AM +0100, Albert ARIBAUD wrote:
> >
> >> R_ARM_ABS32 relocation records cause symbol references
> >> to be zero before relocation, and become correct only
> >> after relocation. On the other hand, R_ARM_RELATIVE
> >> records make references correct before as well as
> >> after relocation.
> >>
> >> This patch series aims at removing all R_ARM_ABS32
> >> relocations from ARM targets.
> >>
> >> the main contributor of R_ARM_ABS32 relocations is the
> >> support code for linker-lists, aka Linker-Generated
> >> Arrays. This is due to the fact that LGA start and end
> >> symbols, used for ranging these arrays, are linker-
> >> generated symbols, which always relocate as R_ARM_ABS32
> >> even though they are supposed *not* to be absolute.
> >>
> >> V1 of this patch series fixed LGAs so that start or
> >> end symbols are actually compiler-generated, and thus
> >> their references are relocated using R_ARM_RELATIVE;
> >> V2 also fixes crt0 so that BSS start and end references
> >> do not produce R_ARM_ABS32 relocations either.
> >>
> >> With V2, none of the targets built with MAKEALL -a arm
> >> produces any R_ARM_ABS32 relocation.
> >>
> >> This series has been build-tested with ARM (295 targets
> >> clean) and powerpc (634 targets clean)
> >>
> >> Changes in v2:
> >> - fixed missing .sram memory mapping in OMAP lds
> >> - removed useless linker script sections in SPL lds files
> >> - made BSS start and end compiler-generated
> >> - moved SPL linker script changes to their own commit
> >> - added KEEP() to all linker files
> >> - removed spurious change to common/command.c
> >> - changed empty type from struct {} to char[0]
> >> - dropped patch to removed board/micronas/vct/u-boot.lds
> >> - removed all references to u-boot.lst
> >>
> >> Albert ARIBAUD (4):
> >> arm: omap: map u_boot_lists section to .sram
> >> Remove linker lists (LGAs) from SPL linker scripts
> >> arm: make __bss_start and __bss_end__ compiler-generated
> >> Refactor linker-generated arrays
> >
> > Reviewed-by: Tom Rini <trini@ti.com>
> >
> > Aside from ARM and I assume Sandbox, has this been runtime tested on
> > other arches yet?
> >
>
> I've runtime tested the refactored LGA on MIPS, so
>
> Tested-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>

I've also now tested this on am335x_evm as part of seeing if it resolved
another issue:

Tested-by: Tom Rini <trini@ti.com>

Lets bring this in please, thanks!

--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130313/89cc4cb4/attachment.pgp>