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

Albert ARIBAUD albert.u.boot at aribaud.net
Mon Feb 25 18:22:08 CET 2013


Hi Tom,

On Mon, 25 Feb 2013 10:19:13 -0500, Tom Rini <trini at ti.com> wrote:

> 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 at ti.com>
> 
> Aside from ARM and I assume Sandbox, has this been runtime tested on
> other arches yet?

None other on my side.

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list