ARM: fix u-boot.lds for -ffunction-sections/-fdata-sections
authorStephen Warren <swarren@nvidia.com>
Mon, 22 Oct 2012 06:19:32 +0000 (06:19 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Fri, 26 Oct 2012 21:46:21 +0000 (23:46 +0200)
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>
Acked-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
arch/arm/cpu/u-boot.lds

index 227aaff1e60b822056736137e402faf6a3e707a9..1996b975360ef5da7f2b95527ce60cbf1334f594 100644 (file)
@@ -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);
@@ -83,7 +83,7 @@ SECTIONS
 
        .bss __rel_dyn_start (OVERLAY) : {
                __bss_start = .;
-               *(.bss)
+               *(.bss*)
                 . = ALIGN(4);
                __bss_end__ = .;
        }