[U-Boot] [PATCH v2 0/4] Get rid of R_ARM_ABS32 relocation records
Marek Vasut
marex at denx.de
Mon Feb 25 12:32:46 CET 2013
Dear Albert ARIBAUD,
> 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: Marek Vasut <marex at denx.de>
More information about the U-Boot
mailing list