Patchwork [U-Boot,V3,1/5] ARM: fix u-boot.lds for -ffunction-sections/-fdata-sections

login
register
mail settings
Submitter Stephen Warren
Date Oct. 22, 2012, 4:19 p.m.
Message ID <1350922776-30909-1-git-send-email-swarren@wwwdotorg.org>
Download mbox | patch
Permalink /patch/193207/
State Accepted
Delegated to: Albert ARIBAUD
Headers show

Comments

Stephen Warren - Oct. 22, 2012, 4:19 p.m.
From: Stephen Warren <swarren@nvidia.com>

When -ffunction-sections or -fdata-section are used, symbols are placed
into sections such as .data.eserial1_device and .bss.serial_current.
Update the linker script to explicitly include these. Without this
change (at least with my gcc-4.5.3 built using crosstool-ng), I see that
the sections do end up being included, but __bss_end__ gets set to the
same value as __bss_start.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Allen Martin <amartin@nvidia.com>
---
v3: No change.
v2: Removed changes from some entries where it wasn't needed.
---
 arch/arm/cpu/u-boot.lds |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
Simon Glass - Oct. 25, 2012, 6:11 p.m.
On Mon, Oct 22, 2012 at 9:19 AM, Stephen Warren <swarren@wwwdotorg.org> wrote:
> From: Stephen Warren <swarren@nvidia.com>
>
> When -ffunction-sections or -fdata-section are used, symbols are placed
> into sections such as .data.eserial1_device and .bss.serial_current.
> Update the linker script to explicitly include these. Without this
> change (at least with my gcc-4.5.3 built using crosstool-ng), I see that
> the sections do end up being included, but __bss_end__ gets set to the
> same value as __bss_start.
>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> Acked-by: Allen Martin <amartin@nvidia.com>

I tested this series on seaboard.

Acked-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>

Regards,
Simon
Albert ARIBAUD - Oct. 26, 2012, 9:45 p.m.
Hi Simon,

On Thu, 25 Oct 2012 11:11:14 -0700, Simon Glass <sjg@chromium.org>
wrote:

> On Mon, Oct 22, 2012 at 9:19 AM, Stephen Warren <swarren@wwwdotorg.org> wrote:
> > From: Stephen Warren <swarren@nvidia.com>
> >
> > When -ffunction-sections or -fdata-section are used, symbols are placed
> > into sections such as .data.eserial1_device and .bss.serial_current.
> > Update the linker script to explicitly include these. Without this
> > change (at least with my gcc-4.5.3 built using crosstool-ng), I see that
> > the sections do end up being included, but __bss_end__ gets set to the
> > same value as __bss_start.
> >
> > Signed-off-by: Stephen Warren <swarren@nvidia.com>
> > Acked-by: Allen Martin <amartin@nvidia.com>
> 
> I tested this series on seaboard.
> 
> Acked-by: Simon Glass <sjg@chromium.org>
> Tested-by: Simon Glass <sjg@chromium.org>
> 
> Regards,
> Simon
> 

Applied (this patch only in the series) to u-boot-arm/master, thanks!

Amicalement,

Patch

diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds
index e49ca0c..9153c3d 100644
--- a/arch/arm/cpu/u-boot.lds
+++ b/arch/arm/cpu/u-boot.lds
@@ -34,8 +34,8 @@  SECTIONS
 	.text :
 	{
 		__image_copy_start = .;
-		CPUDIR/start.o (.text)
-		*(.text)
+		CPUDIR/start.o (.text*)
+		*(.text*)
 	}
 
 	. = ALIGN(4);
@@ -43,7 +43,7 @@  SECTIONS
 
 	. = ALIGN(4);
 	.data : {
-		*(.data)
+		*(.data*)
 	}
 
 	. = ALIGN(4);
@@ -81,7 +81,7 @@  SECTIONS
 
 	.bss __rel_dyn_start (OVERLAY) : {
 		__bss_start = .;
-		*(.bss)
+		*(.bss*)
 		 . = ALIGN(4);
 		__bss_end__ = .;
 	}