Le 02/11/2010 18:00, Måns Rullgård a écrit : > Albert ARIBAUD<albert.arib...@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.arib...@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. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot