arm: make _end compiler-generated
authorAlbert ARIBAUD <albert.u.boot@aribaud.net>
Sat, 22 Feb 2014 16:53:42 +0000 (17:53 +0100)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Wed, 26 Feb 2014 20:18:09 +0000 (21:18 +0100)
This prevents references to _end from generating absolute
relocation records.

This change is binary invariant for ARM targets.

Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
22 files changed:
arch/arm/cpu/arm1136/u-boot-spl.lds
arch/arm/cpu/arm920t/ep93xx/u-boot.lds
arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
arch/arm/cpu/armv7/am33xx/u-boot-spl.lds
arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
arch/arm/cpu/armv7/socfpga/u-boot-spl.lds
arch/arm/cpu/armv7/zynq/u-boot.lds
arch/arm/cpu/at91-common/u-boot-spl.lds
arch/arm/cpu/u-boot-spl.lds
arch/arm/cpu/u-boot.lds
arch/arm/lib/Makefile
arch/arm/lib/sections.c
board/Barix/ipam390/u-boot-spl-ipam390.lds
board/ait/cam_enc_4xx/u-boot-spl.lds
board/compulab/cm_t335/u-boot.lds
board/davinci/da8xxevm/u-boot-spl-da850evm.lds
board/davinci/da8xxevm/u-boot-spl-hawk.lds
board/freescale/mx31ads/u-boot.lds
board/samsung/common/exynos-uboot-spl.lds
board/ti/am335x/u-boot.lds
board/vpac270/u-boot-spl.lds

index bccde7331715ed27e4fa0bdaa01540f2a40fe5ee..0299902f203522f0fe8a5831da4614ae7bfb0771 100644 (file)
@@ -33,7 +33,11 @@ SECTIONS
        .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
        . = ALIGN(4);
        __image_copy_end = .;
-       _end = .;
+
+       .end :
+       {
+               *(.__end)
+       }
 
        .bss :
        {
index 4bed4fcdd742397a50e259b6b429cd4503634f28..96994043e438cf570e03cd09cde9ff807311dd35 100644 (file)
@@ -50,5 +50,8 @@ SECTIONS
        .bss : { *(.bss*) }
        __bss_end = .;
 
-       _end = .;
+       .end :
+       {
+               *(.__end)
+       }
 }
index 80fb9bdc8d10de934967cdf6d5c9b7874ec9b755..d0b482d61532ce13bf1857d7fd28e43739bc464f 100644 (file)
@@ -49,9 +49,14 @@ SECTIONS
                __bss_end = .;
        }
 
-       _end = .;
+       .end :
+       {
+               *(.__end)
+       }
+
+       _image_binary_end = .;
 
-       .dynsym _end : { *(.dynsym) }
+       .dynsym _image_binary_end : { *(.dynsym) }
        .dynbss : { *(.dynbss) }
        .dynstr : { *(.dynstr*) }
        .dynamic : { *(.dynamic*) }
index 76b499d87f146e7bef6c026795983c4cb625303f..b6d0f65b66b4f69ec540b023e2f4b36a27c9402d 100644 (file)
@@ -49,9 +49,14 @@ SECTIONS
                __bss_end = .;
        }
 
-       _end = .;
+       .end :
+       {
+               *(.__end)
+       }
+
+       _image_binary_end = .;
 
-       .dynsym _end : { *(.dynsym) }
+       .dynsym _image_binary_end : { *(.dynsym) }
        .dynbss : { *(.dynbss) }
        .dynstr : { *(.dynstr*) }
        .dynamic : { *(.dynamic*) }
index 9302856a957475ab62d1dbee22784d6fea291c36..b1c28c9442dff555aa228beccb4d999594ae8a57 100644 (file)
@@ -38,7 +38,11 @@ SECTIONS
 
        . = ALIGN(4);
        __image_copy_end = .;
-       _end = .;
+
+       .end :
+       {
+               *(.__end)
+       } >.sram
 
        .bss :
        {
index 02aa1297338661f009bebd01dbff690c6daff155..745603d0fe7aa4302db5f2f22cbd5e4ea9948d53 100644 (file)
@@ -39,7 +39,11 @@ SECTIONS
 
        . = ALIGN(4);
        __image_copy_end = .;
-       _end = .;
+
+       .end :
+       {
+               *(.__end)
+       }
 
        .bss :
        {
index a7c9c9d281a276ba8e7b65460b1073c2ebc30f1b..4282beb395071ec2e834b14b51442522ddae2042 100644 (file)
@@ -28,7 +28,11 @@ SECTIONS
 
        . = ALIGN(4);
        __image_copy_end = .;
-       _end = .;
+
+       .end :
+       {
+               *(.__end)
+       }
 
        .bss : {
                . = ALIGN(4);
index a68b050f2bda6408d536a2f98fb1b19b4f928ad2..f2a59659881850ddf03ef5904a5dfdd42906e89d 100644 (file)
@@ -60,7 +60,12 @@ SECTIONS
                *(.__rel_dyn_end)
        }
 
-       _end = .;
+       .end :
+       {
+               *(.__end)
+       }
+
+       _image_binary_end = .;
 
 /*
  * Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c
index 038335d3da68f5365a3f5ebdd9153cc33c947f02..57ac1eb24232c587a659ad4e2f246ae3726eccaf 100644 (file)
@@ -37,7 +37,11 @@ SECTIONS
 
        . = ALIGN(4);
        __image_copy_end = .;
-       _end = .;
+
+       .end :
+       {
+               *(.__end)
+       } >.sram
 
        .bss :
        {
index 4880d0f78acdeac78ae019979607f98225351818..3e886680e87c68c1696c7a2c4af99c0c5cf77f88 100644 (file)
@@ -42,7 +42,12 @@ SECTIONS
                __rel_dyn_end = .;
        }
 
-       _end = .;
+       .end :
+       {
+               *(.__end)
+       }
+
+       _image_binary_end = .;
 
        .bss __rel_dyn_start (OVERLAY) : {
                __bss_start = .;
@@ -51,7 +56,7 @@ SECTIONS
                __bss_end = .;
        }
 
-       .dynsym _end : { *(.dynsym) }
+       .dynsym _image_binary_end : { *(.dynsym) }
        .dynbss : { *(.dynbss) }
        .dynstr : { *(.dynstr*) }
        .dynamic : { *(.dynamic*) }
index 4da5d246e0ef78ce36f6d8520b11932200ac41d8..87c2de22f5a795a2f69527f8b66def875a6405de 100644 (file)
@@ -60,7 +60,12 @@ SECTIONS
                *(.__rel_dyn_end)
        }
 
-       _end = .;
+       .end :
+       {
+               *(.__end)
+       }
+
+       _image_binary_end = .;
 
        /*
         * Deprecated: this MMU section is used by pxa at present but
@@ -91,7 +96,7 @@ SECTIONS
                KEEP(*(.__bss_end));
        }
 
-       .dynsym _end : { *(.dynsym) }
+       .dynsym _image_binary_end : { *(.dynsym) }
        .dynbss : { *(.dynbss) }
        .dynstr : { *(.dynstr*) }
        .dynamic : { *(.dynamic*) }
index 321997c332cb1c8a06df29c944350021fc1b6dde..45febcfd98afa349fb537a0edb03f3631ae7d450 100644 (file)
@@ -32,7 +32,6 @@ endif
 ifndef CONFIG_SYS_GENERIC_BOARD
 obj-y  += board.o
 endif
-obj-y  += sections.o
 
 obj-$(CONFIG_OF_LIBFDT) += bootm-fdt.o
 obj-$(CONFIG_CMD_BOOTM) += bootm.o
@@ -43,6 +42,7 @@ else
 obj-$(CONFIG_SPL_FRAMEWORK) += spl.o
 endif
 
+obj-y  += sections.o
 ifdef CONFIG_ARM64
 obj-y  += interrupts_64.o
 else
index e35687c09cdd5193041a5d7bbfbe78fdf9026e97..5b30bcb9a51bfd497a95d8b560f2ae8feeff2a9c 100644 (file)
@@ -25,3 +25,4 @@ char __image_copy_start[0] __attribute__((section(".__image_copy_start")));
 char __image_copy_end[0] __attribute__((section(".__image_copy_end")));
 char __rel_dyn_start[0] __attribute__((section(".__rel_dyn_start")));
 char __rel_dyn_end[0] __attribute__((section(".__rel_dyn_end")));
+char _end[0] __attribute__((section(".__end")));
index 5480d1f276cae881922f2e4b61460bb18fd7a345..8604696be7e218b9c1f10a8a28ab798dd24a7e11 100644 (file)
@@ -49,5 +49,9 @@ SECTIONS
        } >.sram
 
        __image_copy_end = .;
-       _end = .;
+
+       .end :
+       {
+               *(.__end)
+       } >.sram
 }
index fdfbfc38a96769bb805105be4bd2fa0225156518..c0d09adf7c72bcd5de9eb7c9c3c22ad532d88a5a 100644 (file)
@@ -48,5 +48,9 @@ SECTIONS
        } >.sram
 
        __image_copy_end = .;
-       _end = .;
+
+       .end :
+       {
+               *(.__end)
+       }
 }
index d25c19a834d7d86416bdd34b22b7bf9f2afe06ac..0984dfe6ea495bbc076b05ce11c35db20d088019 100644 (file)
@@ -61,7 +61,12 @@ SECTIONS
                *(.__rel_dyn_end)
        }
 
-       _end = .;
+       .end :
+       {
+               *(.__end)
+       }
+
+       _image_binary_end = .;
 
        /*
         * Deprecated: this MMU section is used by pxa at present but
@@ -92,7 +97,7 @@ SECTIONS
                KEEP(*(.__bss_end));
        }
 
-       .dynsym _end : { *(.dynsym) }
+       .dynsym _image_binary_end : { *(.dynsym) }
        .hash : { *(.hash) }
        .got.plt : { *(.got.plt) }
        .dynbss : { *(.dynbss) }
index 5480d1f276cae881922f2e4b61460bb18fd7a345..de21a132b056b7ab9ad12491eacd5a2df783e821 100644 (file)
@@ -49,5 +49,9 @@ SECTIONS
        } >.sram
 
        __image_copy_end = .;
-       _end = .;
+
+       .end :
+       {
+               *(.__end)
+       }
 }
index d49c3144904cb65df0868a81b8e62d17728048fc..299226b95fadc090297dc6c195a9dc0423512e4e 100644 (file)
@@ -61,5 +61,8 @@ SECTIONS
                __bss_end = .;
        }
 
-       _end = .;
+       .end :
+       {
+               *(.__end)
+       }
 }
index 1cca176c38df6052e54b72ab3e3af9e10399c569..6da1d4b5f5cef55d0672302018b0ade6809a3323 100644 (file)
@@ -69,7 +69,12 @@ SECTIONS
                *(.__rel_dyn_end)
        }
 
-       _end = .;
+       .end :
+       {
+               *(.__end)
+       }
+
+       _image_binary_end = .;
 
 /*
  * Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c
@@ -90,7 +95,7 @@ SECTIONS
                KEEP(*(.__bss_end));
        }
 
-       .dynsym _end : { *(.dynsym) }
+       .dynsym _image_binary_end : { *(.dynsym) }
        .dynbss : { *(.dynbss) }
        .dynstr : { *(.dynstr*) }
        .dynamic : { *(.dynamic*) }
index 8e3b73ecf7859ede269071727a2c39d6e73af459..b22f9e07bbbf47f2c1a0d590c2da65c41245541d 100644 (file)
@@ -42,7 +42,11 @@ SECTIONS
        . = ALIGN(4);
 
        __image_copy_end = .;
-       _end = .;
+
+       .end :
+       {
+               *(.__end)
+       } >.sram
 
        .bss :
        {
index 6a734b30aca823d8899ce10879112b35b4dd7c29..ceb20226ff89f9a1ce23ce2d08d8ca29f9baee28 100644 (file)
@@ -77,7 +77,12 @@ SECTIONS
                *(.__rel_dyn_end)
        }
 
-       _end = .;
+       .end :
+       {
+               *(.__end)
+       }
+
+       _image_binary_end = .;
 
        /*
         * Deprecated: this MMU section is used by pxa at present but
@@ -108,7 +113,7 @@ SECTIONS
                KEEP(*(.__bss_end));
        }
 
-       .dynsym _end : { *(.dynsym) }
+       .dynsym _image_binary_end : { *(.dynsym) }
        .dynbss : { *(.dynbss) }
        .dynstr : { *(.dynstr*) }
        .dynamic : { *(.dynamic*) }
index b6fdde4d1b0c53e1069c36993d579df542a99a1a..5dbf94e44e6faf84a1fc42cbe1150d268df1118a 100644 (file)
@@ -54,7 +54,12 @@ SECTIONS
 
        . = ALIGN(0x800);
 
-       _end = .;
+       .end :
+       {
+               *(.__end)
+       }
+
+       _image_binary_end = .;
 
        .bss __rel_dyn_start (OVERLAY) : {
                __bss_start = .;
@@ -63,7 +68,7 @@ SECTIONS
                __bss_end = .;
        }
 
-       .dynsym _end : { *(.dynsym) }
+       .dynsym _image_binary_end : { *(.dynsym) }
        .dynbss : { *(.dynbss) }
        .dynstr : { *(.dynstr*) }
        .dynamic : { *(.dynamic*) }