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

Daniel Schwierzeck daniel.schwierzeck at gmail.com
Mon Feb 25 17:20:34 CET 2013


Hi Albert, Tom,

2013/2/25 Tom Rini <trini at 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 at 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 at gmail.com>

-- 
Best regards,
Daniel


More information about the U-Boot mailing list