Skip to content
Snippets Groups Projects
Commit d0b5d9da authored by Albert ARIBAUD's avatar Albert ARIBAUD
Browse files

arm: make _end compiler-generated


This prevents references to _end from generating absolute
relocation records.

This change is binary invariant for ARM targets.

Signed-off-by: default avatarAlbert ARIBAUD <albert.u.boot@aribaud.net>
parent 62bbc2f2
No related branches found
No related tags found
No related merge requests found
Showing
with 103 additions and 25 deletions
...@@ -33,7 +33,11 @@ SECTIONS ...@@ -33,7 +33,11 @@ SECTIONS
.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
. = ALIGN(4); . = ALIGN(4);
__image_copy_end = .; __image_copy_end = .;
_end = .;
.end :
{
*(.__end)
}
.bss : .bss :
{ {
......
...@@ -50,5 +50,8 @@ SECTIONS ...@@ -50,5 +50,8 @@ SECTIONS
.bss : { *(.bss*) } .bss : { *(.bss*) }
__bss_end = .; __bss_end = .;
_end = .; .end :
{
*(.__end)
}
} }
...@@ -49,9 +49,14 @@ SECTIONS ...@@ -49,9 +49,14 @@ SECTIONS
__bss_end = .; __bss_end = .;
} }
_end = .; .end :
{
*(.__end)
}
_image_binary_end = .;
.dynsym _end : { *(.dynsym) } .dynsym _image_binary_end : { *(.dynsym) }
.dynbss : { *(.dynbss) } .dynbss : { *(.dynbss) }
.dynstr : { *(.dynstr*) } .dynstr : { *(.dynstr*) }
.dynamic : { *(.dynamic*) } .dynamic : { *(.dynamic*) }
......
...@@ -49,9 +49,14 @@ SECTIONS ...@@ -49,9 +49,14 @@ SECTIONS
__bss_end = .; __bss_end = .;
} }
_end = .; .end :
{
*(.__end)
}
_image_binary_end = .;
.dynsym _end : { *(.dynsym) } .dynsym _image_binary_end : { *(.dynsym) }
.dynbss : { *(.dynbss) } .dynbss : { *(.dynbss) }
.dynstr : { *(.dynstr*) } .dynstr : { *(.dynstr*) }
.dynamic : { *(.dynamic*) } .dynamic : { *(.dynamic*) }
......
...@@ -38,7 +38,11 @@ SECTIONS ...@@ -38,7 +38,11 @@ SECTIONS
. = ALIGN(4); . = ALIGN(4);
__image_copy_end = .; __image_copy_end = .;
_end = .;
.end :
{
*(.__end)
} >.sram
.bss : .bss :
{ {
......
...@@ -39,7 +39,11 @@ SECTIONS ...@@ -39,7 +39,11 @@ SECTIONS
. = ALIGN(4); . = ALIGN(4);
__image_copy_end = .; __image_copy_end = .;
_end = .;
.end :
{
*(.__end)
}
.bss : .bss :
{ {
......
...@@ -28,7 +28,11 @@ SECTIONS ...@@ -28,7 +28,11 @@ SECTIONS
. = ALIGN(4); . = ALIGN(4);
__image_copy_end = .; __image_copy_end = .;
_end = .;
.end :
{
*(.__end)
}
.bss : { .bss : {
. = ALIGN(4); . = ALIGN(4);
......
...@@ -60,7 +60,12 @@ SECTIONS ...@@ -60,7 +60,12 @@ SECTIONS
*(.__rel_dyn_end) *(.__rel_dyn_end)
} }
_end = .; .end :
{
*(.__end)
}
_image_binary_end = .;
/* /*
* Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c * Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c
......
...@@ -37,7 +37,11 @@ SECTIONS ...@@ -37,7 +37,11 @@ SECTIONS
. = ALIGN(4); . = ALIGN(4);
__image_copy_end = .; __image_copy_end = .;
_end = .;
.end :
{
*(.__end)
} >.sram
.bss : .bss :
{ {
......
...@@ -42,7 +42,12 @@ SECTIONS ...@@ -42,7 +42,12 @@ SECTIONS
__rel_dyn_end = .; __rel_dyn_end = .;
} }
_end = .; .end :
{
*(.__end)
}
_image_binary_end = .;
.bss __rel_dyn_start (OVERLAY) : { .bss __rel_dyn_start (OVERLAY) : {
__bss_start = .; __bss_start = .;
...@@ -51,7 +56,7 @@ SECTIONS ...@@ -51,7 +56,7 @@ SECTIONS
__bss_end = .; __bss_end = .;
} }
.dynsym _end : { *(.dynsym) } .dynsym _image_binary_end : { *(.dynsym) }
.dynbss : { *(.dynbss) } .dynbss : { *(.dynbss) }
.dynstr : { *(.dynstr*) } .dynstr : { *(.dynstr*) }
.dynamic : { *(.dynamic*) } .dynamic : { *(.dynamic*) }
......
...@@ -60,7 +60,12 @@ SECTIONS ...@@ -60,7 +60,12 @@ SECTIONS
*(.__rel_dyn_end) *(.__rel_dyn_end)
} }
_end = .; .end :
{
*(.__end)
}
_image_binary_end = .;
/* /*
* Deprecated: this MMU section is used by pxa at present but * Deprecated: this MMU section is used by pxa at present but
...@@ -91,7 +96,7 @@ SECTIONS ...@@ -91,7 +96,7 @@ SECTIONS
KEEP(*(.__bss_end)); KEEP(*(.__bss_end));
} }
.dynsym _end : { *(.dynsym) } .dynsym _image_binary_end : { *(.dynsym) }
.dynbss : { *(.dynbss) } .dynbss : { *(.dynbss) }
.dynstr : { *(.dynstr*) } .dynstr : { *(.dynstr*) }
.dynamic : { *(.dynamic*) } .dynamic : { *(.dynamic*) }
......
...@@ -32,7 +32,6 @@ endif ...@@ -32,7 +32,6 @@ endif
ifndef CONFIG_SYS_GENERIC_BOARD ifndef CONFIG_SYS_GENERIC_BOARD
obj-y += board.o obj-y += board.o
endif endif
obj-y += sections.o
obj-$(CONFIG_OF_LIBFDT) += bootm-fdt.o obj-$(CONFIG_OF_LIBFDT) += bootm-fdt.o
obj-$(CONFIG_CMD_BOOTM) += bootm.o obj-$(CONFIG_CMD_BOOTM) += bootm.o
...@@ -43,6 +42,7 @@ else ...@@ -43,6 +42,7 @@ else
obj-$(CONFIG_SPL_FRAMEWORK) += spl.o obj-$(CONFIG_SPL_FRAMEWORK) += spl.o
endif endif
obj-y += sections.o
ifdef CONFIG_ARM64 ifdef CONFIG_ARM64
obj-y += interrupts_64.o obj-y += interrupts_64.o
else else
......
...@@ -25,3 +25,4 @@ char __image_copy_start[0] __attribute__((section(".__image_copy_start"))); ...@@ -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 __image_copy_end[0] __attribute__((section(".__image_copy_end")));
char __rel_dyn_start[0] __attribute__((section(".__rel_dyn_start"))); char __rel_dyn_start[0] __attribute__((section(".__rel_dyn_start")));
char __rel_dyn_end[0] __attribute__((section(".__rel_dyn_end"))); char __rel_dyn_end[0] __attribute__((section(".__rel_dyn_end")));
char _end[0] __attribute__((section(".__end")));
...@@ -49,5 +49,9 @@ SECTIONS ...@@ -49,5 +49,9 @@ SECTIONS
} >.sram } >.sram
__image_copy_end = .; __image_copy_end = .;
_end = .;
.end :
{
*(.__end)
} >.sram
} }
...@@ -48,5 +48,9 @@ SECTIONS ...@@ -48,5 +48,9 @@ SECTIONS
} >.sram } >.sram
__image_copy_end = .; __image_copy_end = .;
_end = .;
.end :
{
*(.__end)
}
} }
...@@ -61,7 +61,12 @@ SECTIONS ...@@ -61,7 +61,12 @@ SECTIONS
*(.__rel_dyn_end) *(.__rel_dyn_end)
} }
_end = .; .end :
{
*(.__end)
}
_image_binary_end = .;
/* /*
* Deprecated: this MMU section is used by pxa at present but * Deprecated: this MMU section is used by pxa at present but
...@@ -92,7 +97,7 @@ SECTIONS ...@@ -92,7 +97,7 @@ SECTIONS
KEEP(*(.__bss_end)); KEEP(*(.__bss_end));
} }
.dynsym _end : { *(.dynsym) } .dynsym _image_binary_end : { *(.dynsym) }
.hash : { *(.hash) } .hash : { *(.hash) }
.got.plt : { *(.got.plt) } .got.plt : { *(.got.plt) }
.dynbss : { *(.dynbss) } .dynbss : { *(.dynbss) }
......
...@@ -49,5 +49,9 @@ SECTIONS ...@@ -49,5 +49,9 @@ SECTIONS
} >.sram } >.sram
__image_copy_end = .; __image_copy_end = .;
_end = .;
.end :
{
*(.__end)
}
} }
...@@ -61,5 +61,8 @@ SECTIONS ...@@ -61,5 +61,8 @@ SECTIONS
__bss_end = .; __bss_end = .;
} }
_end = .; .end :
{
*(.__end)
}
} }
...@@ -69,7 +69,12 @@ SECTIONS ...@@ -69,7 +69,12 @@ SECTIONS
*(.__rel_dyn_end) *(.__rel_dyn_end)
} }
_end = .; .end :
{
*(.__end)
}
_image_binary_end = .;
/* /*
* Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c * Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c
...@@ -90,7 +95,7 @@ SECTIONS ...@@ -90,7 +95,7 @@ SECTIONS
KEEP(*(.__bss_end)); KEEP(*(.__bss_end));
} }
.dynsym _end : { *(.dynsym) } .dynsym _image_binary_end : { *(.dynsym) }
.dynbss : { *(.dynbss) } .dynbss : { *(.dynbss) }
.dynstr : { *(.dynstr*) } .dynstr : { *(.dynstr*) }
.dynamic : { *(.dynamic*) } .dynamic : { *(.dynamic*) }
......
...@@ -42,7 +42,11 @@ SECTIONS ...@@ -42,7 +42,11 @@ SECTIONS
. = ALIGN(4); . = ALIGN(4);
__image_copy_end = .; __image_copy_end = .;
_end = .;
.end :
{
*(.__end)
} >.sram
.bss : .bss :
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment