* [U-Boot] [PATCH] armv7: fix linker file for newer ld support @ 2010-11-02 3:23 Alexander Holler 2010-11-02 4:05 ` Steve Sakoman 0 siblings, 1 reply; 10+ messages in thread From: Alexander Holler @ 2010-11-02 3:23 UTC (permalink / raw) To: u-boot Signed-off-by: Alexander Holler <holler@ahsoftware.de> --- arch/arm/cpu/armv7/u-boot.lds | 15 ++++++++------- 1 files changed, 8 insertions(+), 7 deletions(-) diff --git a/arch/arm/cpu/armv7/u-boot.lds b/arch/arm/cpu/armv7/u-boot.lds index 88a0fec..34e0a79 100644 --- a/arch/arm/cpu/armv7/u-boot.lds +++ b/arch/arm/cpu/armv7/u-boot.lds @@ -54,13 +54,6 @@ SECTIONS *(.data.rel.ro) } . = ALIGN(4); - __rel_dyn_start = .; - .rel.dyn : { *(.rel.dyn) } - __rel_dyn_end = .; - - __dynsym_start = .; - .dynsym : { *(.dynsym) } - __got_start = .; . = ALIGN(4); .got : { *(.got) } @@ -74,4 +67,12 @@ SECTIONS __bss_start = .; .bss : { *(.bss) } _end = .; + + . = ALIGN(4); + __rel_dyn_start = .; + .rel.dyn : { *(.rel*) } + __rel_dyn_end = .; + + __dynsym_start = .; + .dynsym : { *(.dynsym) } } -- 1.7.2.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH] armv7: fix linker file for newer ld support 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 10:19 ` Alexander Holler 0 siblings, 2 replies; 10+ messages in thread From: Steve Sakoman @ 2010-11-02 4:05 UTC (permalink / raw) To: u-boot On Mon, Nov 1, 2010 at 8:23 PM, Alexander Holler <holler@ahsoftware.de> wrote: > Signed-off-by: Alexander Holler <holler@ahsoftware.de> > --- > ?arch/arm/cpu/armv7/u-boot.lds | ? 15 ++++++++------- > ?1 files changed, 8 insertions(+), 7 deletions(-) > > diff --git a/arch/arm/cpu/armv7/u-boot.lds b/arch/arm/cpu/armv7/u-boot.lds > index 88a0fec..34e0a79 100644 > --- a/arch/arm/cpu/armv7/u-boot.lds > +++ b/arch/arm/cpu/armv7/u-boot.lds > @@ -54,13 +54,6 @@ SECTIONS > ? ? ? ? ? ? ? ?*(.data.rel.ro) > ? ? ? ?} > ? ? ? ?. = ALIGN(4); > - ? ? ? __rel_dyn_start = .; > - ? ? ? .rel.dyn : { *(.rel.dyn) } > - ? ? ? __rel_dyn_end = .; > - > - ? ? ? __dynsym_start = .; > - ? ? ? .dynsym : { *(.dynsym) } > - > ? ? ? ?__got_start = .; > ? ? ? ?. = ALIGN(4); > ? ? ? ?.got : { *(.got) } > @@ -74,4 +67,12 @@ SECTIONS > ? ? ? ?__bss_start = .; > ? ? ? ?.bss : { *(.bss) } > ? ? ? ?_end = .; > + > + ? ? ? . = ALIGN(4); > + ? ? ? __rel_dyn_start = .; > + ? ? ? .rel.dyn : { *(.rel*) } > + ? ? ? __rel_dyn_end = .; > + > + ? ? ? __dynsym_start = .; > + ? ? ? .dynsym : { *(.dynsym) } > ?} > -- 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 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH] armv7: fix linker file for newer ld support 2010-11-02 4:05 ` Steve Sakoman @ 2010-11-02 7:48 ` Albert ARIBAUD 2010-11-02 13:08 ` Steve Sakoman 2010-11-02 10:19 ` Alexander Holler 1 sibling, 1 reply; 10+ messages in thread From: Albert ARIBAUD @ 2010-11-02 7:48 UTC (permalink / raw) To: u-boot 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. Amicalement, -- Albert. ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH] armv7: fix linker file for newer ld support 2010-11-02 7:48 ` Albert ARIBAUD @ 2010-11-02 13:08 ` Steve Sakoman 2010-11-02 16:28 ` Albert ARIBAUD 0 siblings, 1 reply; 10+ messages in thread From: Steve Sakoman @ 2010-11-02 13:08 UTC (permalink / raw) To: u-boot 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 = .; ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH] armv7: fix linker file for newer ld support 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 0 siblings, 2 replies; 10+ messages in thread From: Albert ARIBAUD @ 2010-11-02 16:28 UTC (permalink / raw) To: u-boot 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? Amicalement, -- Albert. ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH] armv7: fix linker file for newer ld support 2010-11-02 16:28 ` Albert ARIBAUD @ 2010-11-02 16:56 ` Steve Sakoman 2010-11-02 17:00 ` Måns Rullgård 1 sibling, 0 replies; 10+ messages in thread From: Steve Sakoman @ 2010-11-02 16:56 UTC (permalink / raw) To: u-boot On Tue, Nov 2, 2010 at 9:28 AM, Albert ARIBAUD <albert.aribaud@free.fr> wrote: > 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? I used gcc 4.3.3 and binutils 2.18.50 and built beagle and overo. Steve ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH] armv7: fix linker file for newer ld support 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 1 sibling, 1 reply; 10+ messages in thread From: Måns Rullgård @ 2010-11-02 17:00 UTC (permalink / raw) To: u-boot 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. 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. -- M?ns Rullg?rd mans at mansr.com ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH] armv7: fix linker file for newer ld support 2010-11-02 17:00 ` Måns Rullgård @ 2010-11-02 17:38 ` Albert ARIBAUD 2010-11-03 12:26 ` Alexander Holler 0 siblings, 1 reply; 10+ messages in thread From: Albert ARIBAUD @ 2010-11-02 17:38 UTC (permalink / raw) To: u-boot 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. ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH] armv7: fix linker file for newer ld support 2010-11-02 17:38 ` Albert ARIBAUD @ 2010-11-03 12:26 ` Alexander Holler 0 siblings, 0 replies; 10+ messages in thread From: Alexander Holler @ 2010-11-03 12:26 UTC (permalink / raw) To: u-boot Hello, Am 02.11.2010 18:38, schrieb Albert ARIBAUD: >> 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. Sorry, I never had an interest in the size of u-boot, therefore I haven't had a look at the size. I've taken the time to compile u-boot with those gcc's I'm using here and with the patch which adds rel.* after and before bss: after bss before arm926ejs 4.3.4 661K 381K arm926ejs 4.5.1 641K 360K armv7 4.3.5 461K 262K armv7 4.5.1 443K 244K (both don't work) I've used always binutils 2.20.1. The difference in sizes between arm926ejs (kirkwood ) and armv7 (omap3) are because of different options. For the arm926ejs I'm using a non standard configuration, but for the armv7 I've used the standard config for the Beagleboard (make omap3_beagle_config) with the relocation-patch on top of commit 0c0892be0d93a5a892b93739c5eb3bf692fed4ff, so this one can be checked by others against other toolchains too. Regards, Alexander PS: The problem with omap-u-boot and gcc 4.5.1 I'm having here is unrelated to relocation, I have this problem since I've installed gcc 4.5.1, means with older versions of u-boot too (without the new relocation). ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH] armv7: fix linker file for newer ld support 2010-11-02 4:05 ` Steve Sakoman 2010-11-02 7:48 ` Albert ARIBAUD @ 2010-11-02 10:19 ` Alexander Holler 1 sibling, 0 replies; 10+ messages in thread From: Alexander Holler @ 2010-11-02 10:19 UTC (permalink / raw) To: u-boot Hello, Am 02.11.2010 05:05, schrieb Steve Sakoman: > I've been using gcc 4.3.3, so I haven't run into the issue that this > patch is attempting to fix. > > just to correct this, the problem is a change in binutils and not, as I wrongly assumed earlier, gcc. Using ld from binutils 2.20.1 leads to problems with the relocation without a patch. gcc is unrelated, at least here. I'm unable to get working u-boot for the Beagleboard using gcc 4.5.1 (and binutils 2.20.1), but using gcc 4.3.5 (and binutils 2.20.1) u-boot runs. There seems to be an error with using mmc, but I assume this is unrelated to relocation (as the problem with gcc 4.5.1). Regards, Alexander ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2010-11-03 12:26 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 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 2010-11-03 12:26 ` Alexander Holler 2010-11-02 10:19 ` Alexander Holler
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox