[U-Boot] axm SPL image too big

Heiko Schocher
2016-01-13T05:22:34Z

Hello Albert,

Am 12.01.2016 um 15:25 schrieb Albert ARIBAUD:
> Hello Heiko,
>
> On Tue, 12 Jan 2016 11:48:17 +0100, Heiko Schocher <hs@denx.de> wrote:
>> Hello Albert,
>>
>> Am 12.01.2016 um 11:26 schrieb Albert ARIBAUD:
>>> (cc:ing Heiko as the maintainer for axm/taurus)
>>>
>>> Hello,
>>>
>>> AXM is currently the only board failing 'buildman arm aarch64':
>>>
>>> +arm-unknown-linux-gnueabi-ld.bfd: SPL image too big
>>> +make[2]: *** [spl/u-boot-spl] Error 1
>>> +make[1]: *** [spl/u-boot-spl] Error 2
>>> +make: *** [sub-make] Error 2
>>>
>>> Apparently SPL is already being built in Thumb instruction set, so no
>>> way to gain anything that way.
>>
>> I know, it was tricky to get SPL into 4k ...
>>
>>> What else can we do to get SPL size back under limit?
>>
>> Hmm.. what is your exact toolchain?
>
> I tested with the buildman-fetched gcc, -v gives 'gcc version 4.9.0
> (GCC)'.
>
> I've deleted the toolchain and re-fetched it again through buildman in
> case there was an issue with the install, and am getting the same
> result.
>
> I've also tested with the latest ARM gcc package available with Ubuntu,
> that is, 'gcc version 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu1)', again
> with the same result.
>
>> I see for the axm board:
>>
>> With eldk-5.4
>> pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size u-boot
>> text data bss dec hex filename
>> 212583 23792 23552 259927 3f757 u-boot
>> pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size spl/u-boot-spl
>> text data bss dec hex filename
>> 14568 1212 1140 16920 4218 spl/u-boot-spl
>> pollux:u-boot-smartweb hs [master] $
>
> Confirmed right now that with eldk 5.4's gcc 4.7.2 axm builds fine.
>
>> With eldk-5.5
>> pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size u-boot
>> text data bss dec hex filename
>> 210690 23672 23556 257918 3ef7e u-boot
>> pollux:u-boot-smartweb hs [master] $ arm-linux-gnueabi-size spl/u-boot-spl
>> text data bss dec hex filename
>> 14472 1212 1140 16824 41b8 spl/u-boot-spl
>> pollux:u-boot-smartweb hs [master] $
>
> Confirmed right now that with eldk 5.5's (or 5.5.3's) gcc 4.8.1 axm
> builds fine.
>
> The issue appears with gcc 4.9 and 5.2.1 (and I suspect any version
> between 4.9 and 5.2.1 and beyond 5.2.1)

Yes :-(

Tested with linaro 5.2 using:
hs at localhost:u-boot [master] $ arm-unknown-linux-gnueabi-gcc --version
arm-unknown-linux-gnueabi-gcc (crosstool-NG 1.21.0) 5.2.1 20151005
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

hs at localhost:u-boot [master] $

and size is:
hs at localhost:u-boot [master] $ arm-unknown-linux-gnueabi-size spl/u-boot-spl
text data bss dec hex filename
14734 1212 1140 17086 42be spl/u-boot-spl
hs at localhost:u-boot [master] $

aprox 0x100 bigger than with eldk-5.5 ... :-(

But I have only 16k sram on at91sam9g20 ... Ok, there are 2 such
areas, but between them is a hole :-( damn...

Adding Andreas to cc, may he has an idea?

Do gcc 4.9 need other settings for optimizing code?

bye,
Heiko
--
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany