mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-23 22:14:54 +00:00
arm: move image_copy_start/end to linker symbols
image_copy_start/end are defined as c variables in order to force the compiler emit relative references. However, defining those within a section definition will do the same thing since [0]. So let's remove the special sections from the linker scripts, the variable definitions from sections.c and define them as a symbols within a section. [0] binutils commit 6b3b0ab89663 ("Make linker assigned symbol dynamic only for shared object") Suggested-by: Sam Edwards <CFSworks@gmail.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Tested-by: Sam Edwards <CFSworks@gmail.com> # Binary output identical Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
parent
c0802104d6
commit
4ee32ea0c4
9 changed files with 15 additions and 32 deletions
|
@ -21,9 +21,9 @@ OUTPUT_ARCH(aarch64)
|
||||||
ENTRY(_start)
|
ENTRY(_start)
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
|
__image_copy_start = ADDR(.text);
|
||||||
.text : {
|
.text : {
|
||||||
. = ALIGN(8);
|
. = ALIGN(8);
|
||||||
__image_copy_start = .;
|
|
||||||
CPUDIR/start.o (.text*)
|
CPUDIR/start.o (.text*)
|
||||||
*(.text*)
|
*(.text*)
|
||||||
} >.sram
|
} >.sram
|
||||||
|
@ -51,10 +51,8 @@ SECTIONS
|
||||||
KEEP(*(SORT(__u_boot_list*)));
|
KEEP(*(SORT(__u_boot_list*)));
|
||||||
} >.sram
|
} >.sram
|
||||||
|
|
||||||
.image_copy_end : {
|
. = ALIGN(8);
|
||||||
. = ALIGN(8);
|
__image_copy_end = .;
|
||||||
*(.__image_copy_end)
|
|
||||||
} >.sram
|
|
||||||
|
|
||||||
.end : {
|
.end : {
|
||||||
. = ALIGN(8);
|
. = ALIGN(8);
|
||||||
|
|
|
@ -21,9 +21,9 @@ SECTIONS
|
||||||
. = 0x00000000;
|
. = 0x00000000;
|
||||||
|
|
||||||
. = ALIGN(8);
|
. = ALIGN(8);
|
||||||
|
__image_copy_start = ADDR(.text);
|
||||||
.text :
|
.text :
|
||||||
{
|
{
|
||||||
*(.__image_copy_start)
|
|
||||||
CPUDIR/start.o (.text*)
|
CPUDIR/start.o (.text*)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -123,11 +123,7 @@ SECTIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
. = ALIGN(8);
|
. = ALIGN(8);
|
||||||
|
__image_copy_end = .;
|
||||||
.image_copy_end :
|
|
||||||
{
|
|
||||||
*(.__image_copy_end)
|
|
||||||
}
|
|
||||||
|
|
||||||
.rela.dyn ALIGN(8) : {
|
.rela.dyn ALIGN(8) : {
|
||||||
__rel_dyn_start = .;
|
__rel_dyn_start = .;
|
||||||
|
|
|
@ -14,9 +14,9 @@ SECTIONS
|
||||||
. = 0x00000000;
|
. = 0x00000000;
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
__image_copy_start = ADDR(.text);
|
||||||
.text :
|
.text :
|
||||||
{
|
{
|
||||||
__image_copy_start = .;
|
|
||||||
*(.vectors)
|
*(.vectors)
|
||||||
CPUDIR/start.o (.text*)
|
CPUDIR/start.o (.text*)
|
||||||
*(.text*)
|
*(.text*)
|
||||||
|
|
|
@ -35,9 +35,9 @@ SECTIONS
|
||||||
. = 0x00000000;
|
. = 0x00000000;
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
__image_copy_start = ADDR(.text);
|
||||||
.text :
|
.text :
|
||||||
{
|
{
|
||||||
*(.__image_copy_start)
|
|
||||||
*(.vectors)
|
*(.vectors)
|
||||||
CPUDIR/start.o (.text*)
|
CPUDIR/start.o (.text*)
|
||||||
}
|
}
|
||||||
|
@ -154,11 +154,7 @@ SECTIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
__image_copy_end = .;
|
||||||
.image_copy_end :
|
|
||||||
{
|
|
||||||
*(.__image_copy_end)
|
|
||||||
}
|
|
||||||
|
|
||||||
.rel.dyn ALIGN(4) : {
|
.rel.dyn ALIGN(4) : {
|
||||||
__rel_dyn_start = .;
|
__rel_dyn_start = .;
|
||||||
|
|
|
@ -19,8 +19,6 @@
|
||||||
* aliasing warnings.
|
* aliasing warnings.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char __image_copy_start[0] __section(".__image_copy_start");
|
|
||||||
char __image_copy_end[0] __section(".__image_copy_end");
|
|
||||||
char __secure_start[0] __section(".__secure_start");
|
char __secure_start[0] __section(".__secure_start");
|
||||||
char __secure_end[0] __section(".__secure_end");
|
char __secure_end[0] __section(".__secure_end");
|
||||||
char __secure_stack_start[0] __section(".__secure_stack_start");
|
char __secure_stack_start[0] __section(".__secure_stack_start");
|
||||||
|
|
|
@ -22,9 +22,9 @@ SECTIONS
|
||||||
. = 0x00000000;
|
. = 0x00000000;
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
__image_copy_start = ADDR(.text);
|
||||||
.text :
|
.text :
|
||||||
{
|
{
|
||||||
__image_copy_start = .;
|
|
||||||
*(.vectors)
|
*(.vectors)
|
||||||
CPUDIR/start.o (.text*)
|
CPUDIR/start.o (.text*)
|
||||||
*(.text*)
|
*(.text*)
|
||||||
|
|
|
@ -22,9 +22,9 @@ SECTIONS
|
||||||
{
|
{
|
||||||
. = 0x00000000;
|
. = 0x00000000;
|
||||||
|
|
||||||
|
__image_copy_start = ADDR(.text);
|
||||||
.text : {
|
.text : {
|
||||||
. = ALIGN(8);
|
. = ALIGN(8);
|
||||||
*(.__image_copy_start)
|
|
||||||
CPUDIR/start.o (.text*)
|
CPUDIR/start.o (.text*)
|
||||||
*(.text*)
|
*(.text*)
|
||||||
}
|
}
|
||||||
|
@ -44,10 +44,8 @@ SECTIONS
|
||||||
KEEP(*(SORT(__u_boot_list*)));
|
KEEP(*(SORT(__u_boot_list*)));
|
||||||
}
|
}
|
||||||
|
|
||||||
.image_copy_end : {
|
. = ALIGN(8);
|
||||||
. = ALIGN(8);
|
__image_copy_end = .;
|
||||||
*(.__image_copy_end)
|
|
||||||
}
|
|
||||||
|
|
||||||
.end : {
|
.end : {
|
||||||
. = ALIGN(8);
|
. = ALIGN(8);
|
||||||
|
|
|
@ -18,9 +18,9 @@ ENTRY(_start)
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
__image_copy_start = ADDR(.text);
|
||||||
.text :
|
.text :
|
||||||
{
|
{
|
||||||
__image_copy_start = .;
|
|
||||||
*(.vectors)
|
*(.vectors)
|
||||||
CPUDIR/start.o (.text*)
|
CPUDIR/start.o (.text*)
|
||||||
*(.text*)
|
*(.text*)
|
||||||
|
|
|
@ -14,9 +14,9 @@ SECTIONS
|
||||||
. = 0x00000000;
|
. = 0x00000000;
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
__image_copy_start = ADDR(.text);
|
||||||
.text :
|
.text :
|
||||||
{
|
{
|
||||||
*(.__image_copy_start)
|
|
||||||
*(.vectors)
|
*(.vectors)
|
||||||
CPUDIR/start.o (.text*)
|
CPUDIR/start.o (.text*)
|
||||||
}
|
}
|
||||||
|
@ -60,10 +60,7 @@ SECTIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
. = ALIGN(8);
|
. = ALIGN(8);
|
||||||
.image_copy_end :
|
__image_copy_end = .;
|
||||||
{
|
|
||||||
*(.__image_copy_end)
|
|
||||||
}
|
|
||||||
|
|
||||||
.rel.dyn ALIGN(8) : {
|
.rel.dyn ALIGN(8) : {
|
||||||
__rel_dyn_start = .;
|
__rel_dyn_start = .;
|
||||||
|
|
Loading…
Add table
Reference in a new issue