[U-Boot] [PATCH 1/4] ARM: fix u-boot.lds for -ffunction-sections/-fdata-sections
Stephen Warren
swarren at wwwdotorg.org
Tue Oct 16 23:50:06 CEST 2012
From: Stephen Warren <swarren at 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 at nvidia.com>
---
This series fixes an SPL size overflow problem on Tegra. Tom Warren is
out on vacation until Oct 25th, so he certainly won't be able to review
this. Perhaps it could be applied directly to the ARM tree if enough
Tegra people ack the series?
Note that this series is not enough to make Tegra support work; either
you must hack ./arch/arm/cpu/arm720t/tegra-common/spl.c to call
serial_initialize() right before serial_init() in preloader_console_init()
or wait for Allen Martin to rework Tegra's SPL support using the common
SPL code.
arch/arm/cpu/u-boot.lds | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds
index e49ca0c..ae04a6e 100644
--- a/arch/arm/cpu/u-boot.lds
+++ b/arch/arm/cpu/u-boot.lds
@@ -35,7 +35,7 @@ SECTIONS
{
__image_copy_start = .;
CPUDIR/start.o (.text)
- *(.text)
+ *(.text*)
}
. = ALIGN(4);
@@ -43,14 +43,14 @@ SECTIONS
. = ALIGN(4);
.data : {
- *(.data)
+ *(.data*)
}
. = ALIGN(4);
. = .;
__u_boot_cmd_start = .;
- .u_boot_cmd : { *(.u_boot_cmd) }
+ .u_boot_cmd : { *(.u_boot_cmd*) }
__u_boot_cmd_end = .;
. = ALIGN(4);
@@ -65,7 +65,7 @@ SECTIONS
.dynsym : {
__dynsym_start = .;
- *(.dynsym)
+ *(.dynsym*)
}
_end = .;
@@ -81,7 +81,7 @@ SECTIONS
.bss __rel_dyn_start (OVERLAY) : {
__bss_start = .;
- *(.bss)
+ *(.bss*)
. = ALIGN(4);
__bss_end__ = .;
}
--
1.7.0.4
More information about the U-Boot
mailing list