[U-Boot] [PATCH 1/7] MIPS: add unified u-boot.lds file

Gabor Juhos juhosg at openwrt.org
Tue Jan 29 18:13:01 CET 2013


2013.01.29. 11:44 keltezéssel, Daniel Schwierzeck írta:
> 2013/1/29 Gabor Juhos <juhosg at openwrt.org>:
>> The patch adds an unified linker script file which
>> can be used for all currently supported MIPS targets.
>>
>> Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
>> Cc: Daniel Schwierzeck <daniel.schwierzeck at googlemail.com>
>> Cc: Vlad Lungu <vlad at comsys.ro>
>> Cc: Thomas Sailer <sailer at scs.ch>
>> Cc: Stefan Roese <sr at denx.de>
>> Cc: Wolfgang Denk <wd at denx.de>
>> Cc: Thomas Lange <thomas at corelatus.se>
>> Cc: Xiangfu Liu <xiangfu at openmobilefree.net>
> 
> AFAIK you can remove Vlad Lungu and Thomas Lange from the list of
> board maintainers

Ok. I will remove Thomas Sailer as well because his e-mail address bounces.

>> ---
>>  arch/mips/cpu/u-boot.lds |   90 ++++++++++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 90 insertions(+)
>>  create mode 100644 arch/mips/cpu/u-boot.lds
>>

<...>

>> +OUTPUT_FORMAT(MIPS_FORMAT, MIPS_FORMAT, MIPS_FORMAT)
> 
> we need to get rid of OUTPUT_FORMAT. This was always misused due to
> some endianess and toolchain problems which have been resolved in the meantime.
> 
> We should use gcc flags like it is done in linux kernel. The config.mk
> of mips64 already
> has those flags. Mips32 and xburst need to be extended with:
> 
> PLATFORM_CPPFLAGS += -mabi=32 -DCONFIG_32BIT
> ifdef CONFIG_SYS_BIG_ENDIAN
> PLATFORM_LDFLAGS  += -m elf32btsmip
> else
> PLATFORM_LDFLAGS  += -m elf32ltsmip
> endif

Makes sense. However I would do that in a separate change. Either before or
after the current series.

> 
>> +OUTPUT_ARCH(mips)
>> +ENTRY(_start)
>> +SECTIONS
>> +{
>> +       . = 0x00000000;
>> +
>> +       . = ALIGN(4);
>> +       .text       :
>> +       {
>> +         *(.text*)
>> +       }
> 
> please fix the style globally to
> 
> .text : {
>         *(.text*)
> }

Ok, will change it.

> 
>> +
>> +       . = ALIGN(4);
>> +       .rodata  : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
>> +
>> +       . = ALIGN(4);
>> +       .data  : { *(.data*) }
>> +
>> +       . = .;
>> +       _gp = ALIGN(16) +0x7ff0;
>> +
>> +       .got  : {
>> +               __got_start = .;
>> +               *(.got)
>> +               __got_end = .;
>> +       }
>> +
>> +       . = ALIGN(4);
>> +       .sdata  : { *(.sdata*) }
> 
> *(.sdata*) should be merged with .data

This is separated in all current linker scripts, so the merge should be done in
a separate patch IMHO.

> 
>> +
>> +       . = ALIGN(4);
>> +       .u_boot_list : {
>> +               #include <u-boot.lst>
>> +       }
>> +
>> +       uboot_end_data = .;
>> +
>> +       num_got_entries = (__got_end - __got_start) >> PTR_COUNT_SHIFT;
>> +
>> +       . = ALIGN(4);
>> +       .sbss  : { *(.sbss*) }
>> +       .bss : {
>> +               *(.bss*)
>> +               . = ALIGN(4);
>> +       }
> 
> . = ALIGN(4);
> .bss : {
>         *(.bss*)
>         *(.sbss*)
>         . = ALIGN(4);
> }

Same as above.

Thank you for the review!

-Gabor


More information about the U-Boot mailing list