[U-Boot] Fix for overlapping sections?

Charles Manning manningc2 at actrix.gen.nz
Wed Apr 20 21:03:53 CEST 2011


On Tuesday 19 April 2011 11:20:47 Ciummo, Larry (DS-1) wrote:
> Designation: Non-SSA/Finmeccanica
>
> A while back there was a fix for the overlapping section link problem
> (see below) involving changing some sort of global.  Does anyone have a
> pointer to the change.  I'm using a fairly old uboot for AMCC
> Canyonlands/460Ex and can't easily upgrade to a newer uboot build.
>
> Thanks
> Larry
>
> eldk/usr/bin/../lib/gcc/powerpc-linux/4.2.2/pic -lgcc -Map u-boot.map -o
> u-boot
> /opt/eldk/usr/bin/ppc_4xx-ld: section .bootpg [fffff000 -> fffff303]
> overlaps section .data.rel.local [ffffe1d8 -> fffffebb]
> /opt/eldk/usr/bin/ppc_4xx-ld: u-boot: section .bootpg lma 0xfffff000
> overlaps previous sections
> /opt/eldk/usr/bin/ppc_4xx-ld: u-boot: section .u_boot_cmd lma 0xfffffebc
> overlaps previous sections
> make: *** [u-boot] Error 1

Overlapping sections are commonly caused by one of two problems:
1) You have set up the memory map in a way that does not give enough space so 
the sections do indeed overlap.
2) Your ld script is not handling all the sections being fed to it. This is  
likely if you have switched to  using -ffunction-sections etc.

In the case of (2) you will need to modify your ld script with something like:
@@ -34,8 +34,8 @@ SECTIONS
        . = ALIGN(4);
        .text   :
        {
-               arch/arm/cpu/armv7/start.o      (.text)
-               *(.text)
+               KEEP(arch/arm/cpu/armv7/start.o (.text*))
+               *(.text*)
        }
 
        . = ALIGN(4);
@@ -70,7 +70,7 @@ SECTIONS
 
        .bss __rel_dyn_start (OVERLAY) : {
                __bss_start = .;
-               *(.bss)
+               *(.bss*)
                 . = ALIGN(4);
                __bss_end__ = .;
        }




More information about the U-Boot mailing list