diff options
author | Shiji Yang <yangshiji66@outlook.com> | 2023-08-03 09:47:16 +0800 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-08-09 09:21:42 -0400 |
commit | 506df9dc5881b74ca6463b89e9edcd14732a7da5 (patch) | |
tree | 3b3fdb9ac6af400dd400c99b47f9c356012588bc /arch | |
parent | a077ac13d03c8cde646ddab30b03ec0f8b753e1e (diff) | |
download | u-boot-506df9dc5881b74ca6463b89e9edcd14732a7da5.zip u-boot-506df9dc5881b74ca6463b89e9edcd14732a7da5.tar.gz u-boot-506df9dc5881b74ca6463b89e9edcd14732a7da5.tar.bz2 |
treewide: rework linker symbol declarations in sections header
1. Convert all linker symbols to char[] type so that we can get the
corresponding address by calling array name 'var' or its address
'&var'. In this way, we can avoid some potential issues[1].
2. Remove unused symbol '_TEXT_BASE'. It has been abandoned and has
not been referenced by any source code.
3. Move '__data_end' to the arch x86's own sections header as it's
only used by x86 arch.
4. Remove some duplicate declared linker symbols. Now we use the
standard header file to declare them.
[1] This patch fixes the boot failure on MIPS target. Error log:
SPL: Image overlaps SPL
Fixes: 1b8a1be1a1f1 ("spl: spl_legacy: Fix spl_end address")
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arc/include/asm/sections.h | 5 | ||||
-rw-r--r-- | arch/arc/lib/relocate.c | 7 | ||||
-rw-r--r-- | arch/arm/include/asm/spl.h | 3 | ||||
-rw-r--r-- | arch/microblaze/include/asm/processor.h | 5 | ||||
-rw-r--r-- | arch/x86/include/asm/sections.h | 2 |
5 files changed, 6 insertions, 16 deletions
diff --git a/arch/arc/include/asm/sections.h b/arch/arc/include/asm/sections.h index 1c9c9db..ffad4a6 100644 --- a/arch/arc/include/asm/sections.h +++ b/arch/arc/include/asm/sections.h @@ -8,7 +8,8 @@ #include <asm-generic/sections.h> -extern ulong __ivt_start; -extern ulong __ivt_end; +extern char __ivt_start[]; +extern char __ivt_end[]; +extern char __text_end[]; #endif /* __ASM_ARC_SECTIONS_H */ diff --git a/arch/arc/lib/relocate.c b/arch/arc/lib/relocate.c index 7f531c9..682e274 100644 --- a/arch/arc/lib/relocate.c +++ b/arch/arc/lib/relocate.c @@ -6,14 +6,9 @@ #include <common.h> #include <elf.h> #include <log.h> -#include <asm-generic/sections.h> +#include <asm/sections.h> #include <asm/global_data.h> -extern ulong __image_copy_start; -extern ulong __ivt_start; -extern ulong __ivt_end; -extern ulong __text_end; - DECLARE_GLOBAL_DATA_PTR; int copy_uboot_to_ram(void) diff --git a/arch/arm/include/asm/spl.h b/arch/arm/include/asm/spl.h index 0ece4b0..ee79a19 100644 --- a/arch/arm/include/asm/spl.h +++ b/arch/arm/include/asm/spl.h @@ -34,9 +34,6 @@ enum { }; #endif -/* Linker symbols. */ -extern char __bss_start[], __bss_end[]; - #ifndef CONFIG_DM extern gd_t gdata; #endif diff --git a/arch/microblaze/include/asm/processor.h b/arch/microblaze/include/asm/processor.h index 958018c..c0423ea 100644 --- a/arch/microblaze/include/asm/processor.h +++ b/arch/microblaze/include/asm/processor.h @@ -6,11 +6,6 @@ #ifndef __ASM_MICROBLAZE_PROCESSOR_H #define __ASM_MICROBLAZE_PROCESSOR_H -/* References to section boundaries */ - -extern char _end[]; -extern char __text_start[]; - /* Microblaze board initialization function */ void board_init(void); diff --git a/arch/x86/include/asm/sections.h b/arch/x86/include/asm/sections.h index a6be360..874a43d 100644 --- a/arch/x86/include/asm/sections.h +++ b/arch/x86/include/asm/sections.h @@ -8,4 +8,6 @@ #include <asm-generic/sections.h> +extern char __data_end[]; + #endif |