Fix linker scripts: add NOLOAD atribute to .bss/.sbss sections
With recent toolchain versions, some boards would not build because
or errors like this one (here for ocotea board when building with
ELDK 4.2 beta):
ppc_4xx-ld: section .bootpg [fffff000 -> fffff23b] overlaps section .bss [fffee900 -> fffff8ab]
For many boards, the .bss section is big enough that it wraps around
at the end of the address space (0xFFFFFFFF), so the problem will not
be visible unless you use a 64 bit tool chain for development. On
some boards however, changes to the code size (due to different
optimizations) we bail out with section overlaps like above.
The fix is to add the NOLOAD attribute to the .bss and .sbss
sections, telling the linker that .bss does not consume any space in
the image.
Signed-off-by: Wolfgang Denk <wd@denx.de>
diff --git a/cpu/mpc5xx/u-boot.lds b/cpu/mpc5xx/u-boot.lds
index 5b03fef..ca1de95 100644
--- a/cpu/mpc5xx/u-boot.lds
+++ b/cpu/mpc5xx/u-boot.lds
@@ -121,7 +121,7 @@
__init_end = .;
__bss_start = .;
- .bss :
+ .bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)
diff --git a/cpu/mpc5xxx/u-boot-customlayout.lds b/cpu/mpc5xxx/u-boot-customlayout.lds
index 123a14c..4e10ddb 100644
--- a/cpu/mpc5xxx/u-boot-customlayout.lds
+++ b/cpu/mpc5xxx/u-boot-customlayout.lds
@@ -124,7 +124,7 @@
__init_end = .;
__bss_start = .;
- .bss :
+ .bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)
diff --git a/cpu/mpc5xxx/u-boot.lds b/cpu/mpc5xxx/u-boot.lds
index 78818a4..bb2747b 100644
--- a/cpu/mpc5xxx/u-boot.lds
+++ b/cpu/mpc5xxx/u-boot.lds
@@ -113,7 +113,7 @@
__init_end = .;
__bss_start = .;
- .bss :
+ .bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)
diff --git a/cpu/mpc8220/u-boot.lds b/cpu/mpc8220/u-boot.lds
index 889bc77..98b0a79 100644
--- a/cpu/mpc8220/u-boot.lds
+++ b/cpu/mpc8220/u-boot.lds
@@ -113,7 +113,7 @@
__init_end = .;
__bss_start = .;
- .bss :
+ .bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)
diff --git a/cpu/mpc824x/u-boot.lds b/cpu/mpc824x/u-boot.lds
index c90d1e9..036e61b 100644
--- a/cpu/mpc824x/u-boot.lds
+++ b/cpu/mpc824x/u-boot.lds
@@ -113,7 +113,7 @@
__init_end = .;
__bss_start = .;
- .bss :
+ .bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)
diff --git a/cpu/mpc8260/u-boot.lds b/cpu/mpc8260/u-boot.lds
index 3e84f23..8384549 100644
--- a/cpu/mpc8260/u-boot.lds
+++ b/cpu/mpc8260/u-boot.lds
@@ -113,7 +113,7 @@
__init_end = .;
__bss_start = .;
- .bss :
+ .bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)
diff --git a/cpu/mpc83xx/u-boot.lds b/cpu/mpc83xx/u-boot.lds
index 937c87a..8da6f14 100644
--- a/cpu/mpc83xx/u-boot.lds
+++ b/cpu/mpc83xx/u-boot.lds
@@ -110,7 +110,7 @@
__init_end = .;
__bss_start = .;
- .bss :
+ .bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)