From: Albert ARIBAUD <albert.aribaud@free.fr>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] armv7: fix linker file for newer ld support
Date: Tue, 02 Nov 2010 18:38:13 +0100 [thread overview]
Message-ID: <4CD04C85.4030300@free.fr> (raw)
In-Reply-To: <yw1xhbfzzmnc.fsf@unicorn.mansr.com>
Le 02/11/2010 18:00, M?ns Rullg?rd a ?crit :
> Albert ARIBAUD<albert.aribaud@free.fr> writes:
>
>> Le 02/11/2010 14:08, Steve Sakoman a ?crit :
>>> On Tue, Nov 2, 2010 at 12:48 AM, Albert ARIBAUD<albert.aribaud@free.fr> wrote:
>>>> Le 02/11/2010 05:05, Steve Sakoman a ?crit :
>>>>
>>>>> I've been using gcc 4.3.3, so I haven't run into the issue that this
>>>>> patch is attempting to fix.
>>>>>
>>>>> I tested this patch using gcc 4.3.3, and while it produces a usable
>>>>> image, it causes the size of the image to grow from 227K to 433K!
>>>>>
>>>>> So perhaps we need a patch that uses a more restrictive wildcard.
>>>>>
>>>>> Steve
>>>>
>>>> Thanks for pointing this out, Steve. That'll go into V3 of my patch set I
>>>> guess, as Alexander's patch derives from mine and I most probably hit the
>>>> same size increase issue as he does.
>>>>
>>>> Wolfgang: that may mean the tx25 config file patch is unneeded. Stay tuned.
>>>
>>> I should have stated that I was using gcc 4.3.3 and binutils 2.18.50,
>>> since indeed it does seem to be binutils related.
>>>
>>> I have had a couple of reports that the following patch works with
>>> recent gcc/binutils without increasing the size of the binary.
>>>
>>> Could others check and report results?
>>>
>>> Steve
>>>
>>>
>>> ARMV7: Fix build issue with recent versions of gcc/binutils
>>> ---
>>>
>>> diff --git a/arch/arm/cpu/armv7/u-boot.lds b/arch/arm/cpu/armv7/u-boot.lds
>>> index 88a0fec..e690b58 100644
>>> --- a/arch/arm/cpu/armv7/u-boot.lds
>>> +++ b/arch/arm/cpu/armv7/u-boot.lds
>>> @@ -55,7 +55,7 @@ SECTIONS
>>> }
>>> . = ALIGN(4);
>>> __rel_dyn_start = .;
>>> - .rel.dyn : { *(.rel.dyn) }
>>> + .rel.dyn : { *(.rel.*) }
>>> __rel_dyn_end = .;
>>>
>>> __dynsym_start = .;
>>
>> Weird... This patch seems indeed more restrictive than mine, but the
>> input sections collected in .rel.dyn are actually the same for both.
>>
>> We can gain a bit less than 60k by overlapping .bss and .rel.dyn, but
>> certainly not 200k!
>>
>> OTOH, it happened during my 'cross-build' tests (using one chain's gcc
>> with another chain's ld) that the resulting u-boot was drastically
>> reduced; but I chalked that to my misusing of the build tools.
>>
>> Steve, can you indicate which toolchain excatly exhibits the
>> 230k-to-430k issue, and which board I should build?
>
> The problem is that the first patch posted here places .rel.dyn after
> ..bss, so when dumping u-boot.img, all of .bss is included in the file.
> Keeping it before .bss allows the flat binary to omit .bss as usual.
Indeed, but that accounts only for about 60k, as I said. Steve talks
about a 200k delta; I can't find how this much can be added just by
moving the .rel.dyn section around.
The idea of having .text, .*data and .bss contiguous is that it will
reduce RAM footprint. In order to keep this and not increase FLASH/NAND
footprint, I think we can overlap .bss and .rel.dyn.
> Using the patch quoted above, I get a working u-boot from all
> combinations of gcc and binutils I cared to try, including gcc
> 4.5-linaro with binutils 2.20.1.
Thanks for the feedback.
Amicalement,
--
Albert.
next prev parent reply other threads:[~2010-11-02 17:38 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-02 3:23 [U-Boot] [PATCH] armv7: fix linker file for newer ld support Alexander Holler
2010-11-02 4:05 ` Steve Sakoman
2010-11-02 7:48 ` Albert ARIBAUD
2010-11-02 13:08 ` Steve Sakoman
2010-11-02 16:28 ` Albert ARIBAUD
2010-11-02 16:56 ` Steve Sakoman
2010-11-02 17:00 ` Måns Rullgård
2010-11-02 17:38 ` Albert ARIBAUD [this message]
2010-11-03 12:26 ` Alexander Holler
2010-11-02 10:19 ` Alexander Holler
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4CD04C85.4030300@free.fr \
--to=albert.aribaud@free.fr \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox