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>
This commit is contained in:
Wolfgang Denk 2008-01-12 20:31:39 +01:00
parent 3afac79ec2
commit 64134f0112
268 changed files with 281 additions and 281 deletions

View File

@ -126,7 +126,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
_sbss = .;
*(.sbss) *(.scommon)

View File

@ -142,7 +142,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -128,7 +128,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -126,7 +126,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -126,7 +126,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -130,7 +130,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -130,7 +130,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -130,7 +130,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -132,7 +132,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -112,7 +112,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -109,7 +109,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -51,6 +51,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -61,7 +61,7 @@ SECTIONS
__bss_start = .;
. = ALIGN(4);
.bss :
.bss (NOLOAD) :
{
*(.bss)
}

View File

@ -61,7 +61,7 @@ SECTIONS
__bss_start = .;
. = ALIGN(4);
.bss :
.bss (NOLOAD) :
{
*(.bss)
}

View File

@ -87,7 +87,7 @@ SECTIONS
* bss follows. We keep it adjacent to simplify init code.
*/
__bss_start = .;
.sbss :
.sbss (NOLOAD) :
{
*(.sbss)
*(.sbss.*)
@ -95,7 +95,7 @@ SECTIONS
*(.scommon)
}
. = ALIGN(4);
.bss :
.bss (NOLOAD) :
{
*(.bss)
*(.bss.*)

View File

@ -87,7 +87,7 @@ SECTIONS
* bss follows. We keep it adjacent to simplify init code.
*/
__bss_start = .;
.sbss :
.sbss (NOLOAD) :
{
*(.sbss)
*(.sbss.*)
@ -95,7 +95,7 @@ SECTIONS
*(.scommon)
}
. = ALIGN(4);
.bss :
.bss (NOLOAD) :
{
*(.bss)
*(.bss.*)

View File

@ -87,7 +87,7 @@ SECTIONS
* bss follows. We keep it adjacent to simplify init code.
*/
__bss_start = .;
.sbss :
.sbss (NOLOAD) :
{
*(.sbss)
*(.sbss.*)
@ -95,7 +95,7 @@ SECTIONS
*(.scommon)
}
. = ALIGN(4);
.bss :
.bss (NOLOAD) :
{
*(.bss)
*(.bss.*)

View File

@ -124,7 +124,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -125,7 +125,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -124,7 +124,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -133,7 +133,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -125,7 +125,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -132,7 +132,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -129,7 +129,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -124,7 +124,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -125,7 +125,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -132,7 +132,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -125,7 +125,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -132,7 +132,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -124,7 +124,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -130,7 +130,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -125,7 +125,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -132,7 +132,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -126,7 +126,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -132,7 +132,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -132,7 +132,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -133,7 +133,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -58,6 +58,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -50,6 +50,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -53,6 +53,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -52,6 +52,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -71,7 +71,7 @@ SECTIONS
. = ALIGN(8);
_edata = .;
.bss : {
.bss (NOLOAD) : {
*(.bss)
*(.bss.*)
}

View File

@ -135,7 +135,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -129,7 +129,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -51,6 +51,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -51,6 +51,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -51,6 +51,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -111,7 +111,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -52,6 +52,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -129,7 +129,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
_sbss = .;
*(.sbss) *(.scommon)

View File

@ -117,7 +117,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -51,6 +51,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -141,7 +141,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -51,6 +51,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -142,7 +142,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -142,7 +142,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -51,6 +51,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -53,6 +53,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -136,7 +136,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -47,6 +47,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -47,6 +47,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -47,6 +47,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -64,7 +64,7 @@ SECTIONS
num_got_entries = (__got_end - __got_start) >> 2;
. = ALIGN(4);
.sbss : { *(.sbss) }
.bss : { *(.bss) }
.sbss (NOLOAD) : { *(.sbss) }
.bss (NOLOAD) : { *(.bss) }
uboot_end = .;
}

View File

@ -51,6 +51,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -51,6 +51,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -126,7 +126,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -126,7 +126,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -119,7 +119,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -119,7 +119,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -51,6 +51,6 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
}

View File

@ -109,7 +109,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -141,7 +141,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -127,7 +127,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -138,7 +138,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -152,7 +152,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -137,7 +137,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -150,7 +150,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -138,7 +138,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -138,7 +138,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -138,7 +138,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -126,7 +126,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -138,7 +138,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -153,7 +153,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -139,7 +139,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -138,7 +138,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -138,7 +138,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -138,7 +138,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -138,7 +138,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -138,7 +138,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -139,7 +139,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -137,7 +137,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -124,7 +124,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -130,7 +130,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -131,7 +131,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
_sbss = .;
*(.sbss) *(.scommon)

View File

@ -139,7 +139,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -138,7 +138,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -137,7 +137,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -129,7 +129,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -131,7 +131,7 @@ SECTIONS
__init_end = .;
__bss_start = .;
.bss :
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)

View File

@ -51,7 +51,7 @@ SECTIONS
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
.bss (NOLOAD) : { *(.bss) }
_end = .;
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }

Some files were not shown because too many files have changed in this diff Show More