Re: [U-Boot] [PATCH] armv7: fix linker file for newer ld support
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 661K381K arm926ejs 4.5.1 641K360K armv7 4.3.5 461K262K armv7 4.5.1 443K244K (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). ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] armv7: fix linker file for newer ld support
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. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] armv7: fix linker file for newer ld support
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 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] armv7: fix linker file for newer ld support
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 = .; ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] armv7: fix linker file for newer ld support
Le 02/11/2010 14:08, Steve Sakoman a écrit : On Tue, Nov 2, 2010 at 12:48 AM, Albert ARIBAUDalbert.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? Amicalement, -- Albert. ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] armv7: fix linker file for newer ld support
On Tue, Nov 2, 2010 at 9:28 AM, Albert ARIBAUD albert.arib...@free.fr wrote: Le 02/11/2010 14:08, Steve Sakoman a écrit : On Tue, Nov 2, 2010 at 12:48 AM, Albert ARIBAUDalbert.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? I used gcc 4.3.3 and binutils 2.18.50 and built beagle and overo. Steve ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] armv7: fix linker file for newer ld support
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 ARIBAUDalbert.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. 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 m...@mansr.com ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] armv7: fix linker file for newer ld support
Le 02/11/2010 18:00, Måns Rullgård a écrit : Albert ARIBAUDalbert.arib...@free.fr writes: Le 02/11/2010 14:08, Steve Sakoman a écrit : On Tue, Nov 2, 2010 at 12:48 AM, Albert ARIBAUDalbert.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
[U-Boot] [PATCH] armv7: fix linker file for newer ld support
Signed-off-by: Alexander Holler hol...@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 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] armv7: fix linker file for newer ld support
On Mon, Nov 1, 2010 at 8:23 PM, Alexander Holler hol...@ahsoftware.de wrote: Signed-off-by: Alexander Holler hol...@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 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot