All of lore.kernel.org
 help / color / mirror / Atom feed
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.

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.