mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-24 04:34:22 +08: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
@ -21,9 +21,9 @@ OUTPUT_ARCH(aarch64)
|
||||
ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
__image_copy_start = ADDR(.text);
|
||||
.text : {
|
||||
. = ALIGN(8);
|
||||
__image_copy_start = .;
|
||||
CPUDIR/start.o (.text*)
|
||||
*(.text*)
|
||||
} >.sram
|
||||
@ -51,10 +51,8 @@ SECTIONS
|
||||
KEEP(*(SORT(__u_boot_list*)));
|
||||
} >.sram
|
||||
|
||||
.image_copy_end : {
|
||||
. = ALIGN(8);
|
||||
*(.__image_copy_end)
|
||||
} >.sram
|
||||
. = ALIGN(8);
|
||||
__image_copy_end = .;
|
||||
|
||||
.end : {
|
||||
. = ALIGN(8);
|
||||
|
@ -21,9 +21,9 @@ SECTIONS
|
||||
. = 0x00000000;
|
||||
|
||||
. = ALIGN(8);
|
||||
__image_copy_start = ADDR(.text);
|
||||
.text :
|
||||
{
|
||||
*(.__image_copy_start)
|
||||
CPUDIR/start.o (.text*)
|
||||
}
|
||||
|
||||
@ -123,11 +123,7 @@ SECTIONS
|
||||
}
|
||||
|
||||
. = ALIGN(8);
|
||||
|
||||
.image_copy_end :
|
||||
{
|
||||
*(.__image_copy_end)
|
||||
}
|
||||
__image_copy_end = .;
|
||||
|
||||
.rela.dyn ALIGN(8) : {
|
||||
__rel_dyn_start = .;
|
||||
|
@ -14,9 +14,9 @@ SECTIONS
|
||||
. = 0x00000000;
|
||||
|
||||
. = ALIGN(4);
|
||||
__image_copy_start = ADDR(.text);
|
||||
.text :
|
||||
{
|
||||
__image_copy_start = .;
|
||||
*(.vectors)
|
||||
CPUDIR/start.o (.text*)
|
||||
*(.text*)
|
||||
|
@ -35,9 +35,9 @@ SECTIONS
|
||||
. = 0x00000000;
|
||||
|
||||
. = ALIGN(4);
|
||||
__image_copy_start = ADDR(.text);
|
||||
.text :
|
||||
{
|
||||
*(.__image_copy_start)
|
||||
*(.vectors)
|
||||
CPUDIR/start.o (.text*)
|
||||
}
|
||||
@ -154,11 +154,7 @@ SECTIONS
|
||||
}
|
||||
|
||||
. = ALIGN(4);
|
||||
|
||||
.image_copy_end :
|
||||
{
|
||||
*(.__image_copy_end)
|
||||
}
|
||||
__image_copy_end = .;
|
||||
|
||||
.rel.dyn ALIGN(4) : {
|
||||
__rel_dyn_start = .;
|
||||
|
@ -19,8 +19,6 @@
|
||||
* 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_end[0] __section(".__secure_end");
|
||||
char __secure_stack_start[0] __section(".__secure_stack_start");
|
||||
|
@ -22,9 +22,9 @@ SECTIONS
|
||||
. = 0x00000000;
|
||||
|
||||
. = ALIGN(4);
|
||||
__image_copy_start = ADDR(.text);
|
||||
.text :
|
||||
{
|
||||
__image_copy_start = .;
|
||||
*(.vectors)
|
||||
CPUDIR/start.o (.text*)
|
||||
*(.text*)
|
||||
|
@ -22,9 +22,9 @@ SECTIONS
|
||||
{
|
||||
. = 0x00000000;
|
||||
|
||||
__image_copy_start = ADDR(.text);
|
||||
.text : {
|
||||
. = ALIGN(8);
|
||||
*(.__image_copy_start)
|
||||
CPUDIR/start.o (.text*)
|
||||
*(.text*)
|
||||
}
|
||||
@ -44,10 +44,8 @@ SECTIONS
|
||||
KEEP(*(SORT(__u_boot_list*)));
|
||||
}
|
||||
|
||||
.image_copy_end : {
|
||||
. = ALIGN(8);
|
||||
*(.__image_copy_end)
|
||||
}
|
||||
. = ALIGN(8);
|
||||
__image_copy_end = .;
|
||||
|
||||
.end : {
|
||||
. = ALIGN(8);
|
||||
|
@ -18,9 +18,9 @@ ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
. = ALIGN(4);
|
||||
__image_copy_start = ADDR(.text);
|
||||
.text :
|
||||
{
|
||||
__image_copy_start = .;
|
||||
*(.vectors)
|
||||
CPUDIR/start.o (.text*)
|
||||
*(.text*)
|
||||
|
@ -14,9 +14,9 @@ SECTIONS
|
||||
. = 0x00000000;
|
||||
|
||||
. = ALIGN(4);
|
||||
__image_copy_start = ADDR(.text);
|
||||
.text :
|
||||
{
|
||||
*(.__image_copy_start)
|
||||
*(.vectors)
|
||||
CPUDIR/start.o (.text*)
|
||||
}
|
||||
@ -60,10 +60,7 @@ SECTIONS
|
||||
}
|
||||
|
||||
. = ALIGN(8);
|
||||
.image_copy_end :
|
||||
{
|
||||
*(.__image_copy_end)
|
||||
}
|
||||
__image_copy_end = .;
|
||||
|
||||
.rel.dyn ALIGN(8) : {
|
||||
__rel_dyn_start = .;
|
||||
|
Loading…
Reference in New Issue
Block a user