Re: [PATCH v2 04/12] linker_lists: Rename sections to remove . prefix

Heinrich Schuchardt
2022-05-17T08:06:57Z

On 4/14/22 15:59, Andrew Scull wrote:
> Rename the sections used to implement linker lists so they begin with
> '__u_boot_list' rather than '.u_boot_list'. The double underscore at the
> start is still distinct from the single underscore used by the symbol
> names.
>
> Having a '.' in the section names conflicts with clang's ASAN
> instrumentation which tries to add redzones between the linker list
> elements, causing expected accesses to fail. However, clang doesn't try
> to add redzones to user sections, which are names with all alphanumeric
> and underscore characters.
>
> Signed-off-by: Andrew Scull <ascull@google.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> ---
> arch/arc/cpu/u-boot.lds | 4 ++--
> arch/arm/config.mk | 4 ++--
> arch/arm/cpu/arm926ejs/sunxi/u-boot-spl.lds | 4 ++--
> arch/arm/cpu/armv7/sunxi/u-boot-spl.lds | 4 ++--
> arch/arm/cpu/armv8/u-boot-spl.lds | 4 ++--
> arch/arm/cpu/armv8/u-boot.lds | 4 ++--
> arch/arm/cpu/u-boot-spl.lds | 4 ++--
> arch/arm/cpu/u-boot.lds | 6 ++---
> arch/arm/mach-at91/arm926ejs/u-boot-spl.lds | 2 +-
> arch/arm/mach-at91/armv7/u-boot-spl.lds | 2 +-
> arch/arm/mach-omap2/u-boot-spl.lds | 4 ++--
> arch/arm/mach-orion5x/u-boot-spl.lds | 4 ++--
> arch/arm/mach-rockchip/u-boot-tpl-v8.lds | 4 ++--
> arch/arm/mach-zynq/u-boot-spl.lds | 4 ++--
> arch/arm/mach-zynq/u-boot.lds | 4 ++--
> arch/m68k/cpu/u-boot.lds | 4 ++--
> arch/microblaze/cpu/u-boot-spl.lds | 4 ++--
> arch/microblaze/cpu/u-boot.lds | 4 ++--
> arch/mips/config.mk | 2 +-
> arch/mips/cpu/u-boot-spl.lds | 4 ++--
> arch/mips/cpu/u-boot.lds | 4 ++--
> arch/nds32/cpu/n1213/u-boot.lds | 4 ++--
> arch/nios2/cpu/u-boot.lds | 4 ++--
> arch/powerpc/cpu/mpc83xx/u-boot.lds | 4 ++--
> arch/powerpc/cpu/mpc85xx/u-boot-nand.lds | 4 ++--
> arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds | 4 ++--
> arch/powerpc/cpu/mpc85xx/u-boot-spl.lds | 4 ++--
> arch/powerpc/cpu/mpc85xx/u-boot.lds | 4 ++--
> arch/riscv/cpu/u-boot-spl.lds | 4 ++--
> arch/riscv/cpu/u-boot.lds | 4 ++--
> arch/sandbox/config.mk | 4 ++--
> arch/sandbox/cpu/u-boot-spl.lds | 4 ++--
> arch/sandbox/cpu/u-boot.lds | 4 ++--
> arch/sh/cpu/u-boot.lds | 4 ++--
> arch/x86/cpu/u-boot-64.lds | 6 ++---
> arch/x86/cpu/u-boot-spl.lds | 6 ++---
> arch/x86/cpu/u-boot.lds | 6 ++---
> arch/x86/lib/elf_ia32_efi.lds | 4 ++--
> arch/x86/lib/elf_x86_64_efi.lds | 4 ++--

@Simon

This looks inconsistent.

Why should section u_boot_list exist in elf_x86_64_efi.lds and not in
elf_riscv64_efi.lds?

The sandbox is built and used on all architectures.

Best regards

Heinrich

> arch/xtensa/cpu/u-boot.lds | 2 +-
> arch/xtensa/include/asm/ldscript.h | 4 ++--
> board/compulab/cm_t335/u-boot.lds | 4 ++--
> board/cssi/MCR3000/u-boot.lds | 4 ++--
> .../davinci/da8xxevm/u-boot-spl-da850evm.lds | 2 +-
> board/qualcomm/dragonboard820c/u-boot.lds | 4 ++--
> board/samsung/common/exynos-uboot-spl.lds | 4 ++--
> board/synopsys/iot_devkit/u-boot.lds | 4 ++--
> board/ti/am335x/u-boot.lds | 4 ++--
> board/vscom/baltos/u-boot.lds | 4 ++--
> doc/api/linker_lists.rst | 22 +++++++++----------
> doc/develop/commands.rst | 4 ++--
> doc/develop/driver-model/of-plat.rst | 4 ++--
> include/linker_lists.h | 18 +++++++--------
> 53 files changed, 121 insertions(+), 121 deletions(-)
>
> diff --git a/arch/arc/cpu/u-boot.lds b/arch/arc/cpu/u-boot.lds
> index e12145c768..9f2973da65 100644
> --- a/arch/arc/cpu/u-boot.lds
> +++ b/arch/arc/cpu/u-boot.lds
> @@ -39,8 +39,8 @@ SECTIONS
> }
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(4);
> diff --git a/arch/arm/config.mk b/arch/arm/config.mk
> index b107b1af27..b3548ce243 100644
> --- a/arch/arm/config.mk
> +++ b/arch/arm/config.mk
> @@ -141,11 +141,11 @@ endif
> # limit ourselves to the sections we want in the .bin.
> ifdef CONFIG_ARM64
> OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .data \
> - -j .u_boot_list -j .rela.dyn -j .got -j .got.plt \
> + -j __u_boot_list -j .rela.dyn -j .got -j .got.plt \
> -j .binman_sym_table -j .text_rest
> else
> OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .hash \
> - -j .data -j .got -j .got.plt -j .u_boot_list -j .rel.dyn \
> + -j .data -j .got -j .got.plt -j __u_boot_list -j .rel.dyn \
> -j .binman_sym_table -j .text_rest
> endif
>
> diff --git a/arch/arm/cpu/arm926ejs/sunxi/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/sunxi/u-boot-spl.lds
> index 9a000ac5d3..c108736811 100644
> --- a/arch/arm/cpu/arm926ejs/sunxi/u-boot-spl.lds
> +++ b/arch/arm/cpu/arm926ejs/sunxi/u-boot-spl.lds
> @@ -29,8 +29,8 @@ SECTIONS
> .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> } > .sram
>
> . = ALIGN(4);
> diff --git a/arch/arm/cpu/armv7/sunxi/u-boot-spl.lds b/arch/arm/cpu/armv7/sunxi/u-boot-spl.lds
> index 942c29fc95..306a4ddf3c 100644
> --- a/arch/arm/cpu/armv7/sunxi/u-boot-spl.lds
> +++ b/arch/arm/cpu/armv7/sunxi/u-boot-spl.lds
> @@ -38,8 +38,8 @@ SECTIONS
> .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> } > .sram
>
> . = ALIGN(4);
> diff --git a/arch/arm/cpu/armv8/u-boot-spl.lds b/arch/arm/cpu/armv8/u-boot-spl.lds
> index 730eb93dbc..d02b788e60 100644
> --- a/arch/arm/cpu/armv8/u-boot-spl.lds
> +++ b/arch/arm/cpu/armv8/u-boot-spl.lds
> @@ -46,9 +46,9 @@ SECTIONS
> } >.sram
> #endif
>
> - .u_boot_list : {
> + __u_boot_list : {
> . = ALIGN(8);
> - KEEP(*(SORT(.u_boot_list*)));
> + KEEP(*(SORT(__u_boot_list*)));
> } >.sram
>
> .image_copy_end : {
> diff --git a/arch/arm/cpu/armv8/u-boot.lds b/arch/arm/cpu/armv8/u-boot.lds
> index 2554980595..8fe4682dd2 100644
> --- a/arch/arm/cpu/armv8/u-boot.lds
> +++ b/arch/arm/cpu/armv8/u-boot.lds
> @@ -109,8 +109,8 @@ SECTIONS
> . = .;
>
> . = ALIGN(8);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(8);
> diff --git a/arch/arm/cpu/u-boot-spl.lds b/arch/arm/cpu/u-boot-spl.lds
> index 97899a567f..fb2189d50d 100644
> --- a/arch/arm/cpu/u-boot-spl.lds
> +++ b/arch/arm/cpu/u-boot-spl.lds
> @@ -32,8 +32,8 @@ SECTIONS
> }
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(4);
> diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds
> index 0eb164d2e6..f25f72b2e0 100644
> --- a/arch/arm/cpu/u-boot.lds
> +++ b/arch/arm/cpu/u-boot.lds
> @@ -15,7 +15,7 @@ ENTRY(_start)
> SECTIONS
> {
> #ifndef CONFIG_CMDLINE
> - /DISCARD/ : { *(.u_boot_list_2_cmd_*) }
> + /DISCARD/ : { *(__u_boot_list_2_cmd_*) }
> #endif
> #if defined(CONFIG_ARMV7_SECURE_BASE) && defined(CONFIG_ARMV7_NONSEC)
> /*
> @@ -149,8 +149,8 @@ SECTIONS
> . = .;
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(4);
> diff --git a/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds b/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds
> index 74f6355229..1a8bf94dee 100644
> --- a/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds
> +++ b/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds
> @@ -29,7 +29,7 @@ SECTIONS
> .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
>
> . = ALIGN(4);
> - .u_boot_list : { KEEP(*(SORT(.u_boot_list*))) } > .sram
> + __u_boot_list : { KEEP(*(SORT(__u_boot_list*))) } > .sram
>
> . = ALIGN(4);
> __image_copy_end = .;
> diff --git a/arch/arm/mach-at91/armv7/u-boot-spl.lds b/arch/arm/mach-at91/armv7/u-boot-spl.lds
> index 950ea55d7c..6ca725fc4c 100644
> --- a/arch/arm/mach-at91/armv7/u-boot-spl.lds
> +++ b/arch/arm/mach-at91/armv7/u-boot-spl.lds
> @@ -36,7 +36,7 @@ SECTIONS
> .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
>
> . = ALIGN(4);
> - .u_boot_list : { KEEP(*(SORT(.u_boot_list*))) } > .sram
> + __u_boot_list : { KEEP(*(SORT(__u_boot_list*))) } > .sram
>
> . = ALIGN(4);
> __image_copy_end = .;
> diff --git a/arch/arm/mach-omap2/u-boot-spl.lds b/arch/arm/mach-omap2/u-boot-spl.lds
> index 88d81f9b98..1d6e5d45b4 100644
> --- a/arch/arm/mach-omap2/u-boot-spl.lds
> +++ b/arch/arm/mach-omap2/u-boot-spl.lds
> @@ -33,8 +33,8 @@ SECTIONS
> .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> } >.sram
>
> . = ALIGN(4);
> diff --git a/arch/arm/mach-orion5x/u-boot-spl.lds b/arch/arm/mach-orion5x/u-boot-spl.lds
> index a537fe0295..154bb12060 100644
> --- a/arch/arm/mach-orion5x/u-boot-spl.lds
> +++ b/arch/arm/mach-orion5x/u-boot-spl.lds
> @@ -41,8 +41,8 @@ SECTIONS
> .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.nor
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> } > .nor
>
> . = ALIGN(4);
> diff --git a/arch/arm/mach-rockchip/u-boot-tpl-v8.lds b/arch/arm/mach-rockchip/u-boot-tpl-v8.lds
> index 9869972e22..74618eba59 100644
> --- a/arch/arm/mach-rockchip/u-boot-tpl-v8.lds
> +++ b/arch/arm/mach-rockchip/u-boot-tpl-v8.lds
> @@ -39,9 +39,9 @@ SECTIONS
> *(.data*)
> }
>
> - .u_boot_list : {
> + __u_boot_list : {
> . = ALIGN(8);
> - KEEP(*(SORT(.u_boot_list*)));
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> .image_copy_end : {
> diff --git a/arch/arm/mach-zynq/u-boot-spl.lds b/arch/arm/mach-zynq/u-boot-spl.lds
> index 106d2e390b..8c18d3f91f 100644
> --- a/arch/arm/mach-zynq/u-boot-spl.lds
> +++ b/arch/arm/mach-zynq/u-boot-spl.lds
> @@ -37,8 +37,8 @@ SECTIONS
> } > .sram
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> } > .sram
>
> . = ALIGN(4);
> diff --git a/arch/arm/mach-zynq/u-boot.lds b/arch/arm/mach-zynq/u-boot.lds
> index 91c32e89e8..a5169fd915 100644
> --- a/arch/arm/mach-zynq/u-boot.lds
> +++ b/arch/arm/mach-zynq/u-boot.lds
> @@ -54,8 +54,8 @@ SECTIONS
> . = .;
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(4);
> diff --git a/arch/m68k/cpu/u-boot.lds b/arch/m68k/cpu/u-boot.lds
> index affb2d9374..133f79150b 100644
> --- a/arch/m68k/cpu/u-boot.lds
> +++ b/arch/m68k/cpu/u-boot.lds
> @@ -60,8 +60,8 @@ SECTIONS
> . = .;
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = .;
> diff --git a/arch/microblaze/cpu/u-boot-spl.lds b/arch/microblaze/cpu/u-boot-spl.lds
> index 7883a64b15..4ac5a21524 100644
> --- a/arch/microblaze/cpu/u-boot-spl.lds
> +++ b/arch/microblaze/cpu/u-boot-spl.lds
> @@ -37,8 +37,8 @@ SECTIONS
> }
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
> __init_end = . ;
>
> diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds
> index 2b316cc7f5..8bd515b099 100644
> --- a/arch/microblaze/cpu/u-boot.lds
> +++ b/arch/microblaze/cpu/u-boot.lds
> @@ -41,8 +41,8 @@ SECTIONS
> }
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
> __init_end = . ;
>
> diff --git a/arch/mips/config.mk b/arch/mips/config.mk
> index faf4129ac1..04f3627805 100644
> --- a/arch/mips/config.mk
> +++ b/arch/mips/config.mk
> @@ -65,6 +65,6 @@ PLATFORM_CPPFLAGS += -msoft-float
> KBUILD_LDFLAGS += -G 0 -static -n -nostdlib
> PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
> LDFLAGS_FINAL += --gc-sections
> -OBJCOPYFLAGS += -j .text -j .rodata -j .data -j .u_boot_list
> +OBJCOPYFLAGS += -j .text -j .rodata -j .data -j __u_boot_list
>
> LDFLAGS_STANDALONE += --gc-sections
> diff --git a/arch/mips/cpu/u-boot-spl.lds b/arch/mips/cpu/u-boot-spl.lds
> index 28ea4f2a48..194398be85 100644
> --- a/arch/mips/cpu/u-boot-spl.lds
> +++ b/arch/mips/cpu/u-boot-spl.lds
> @@ -29,8 +29,8 @@ SECTIONS
>
> #if defined(CONFIG_SPL_DM) || defined(CONFIG_SPL_LOADER_SUPPORT)
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> } > .spl_mem
> #endif
>
> diff --git a/arch/mips/cpu/u-boot.lds b/arch/mips/cpu/u-boot.lds
> index 86496737d3..9a4ebcd151 100644
> --- a/arch/mips/cpu/u-boot.lds
> +++ b/arch/mips/cpu/u-boot.lds
> @@ -33,8 +33,8 @@ SECTIONS
> }
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(4);
> diff --git a/arch/nds32/cpu/n1213/u-boot.lds b/arch/nds32/cpu/n1213/u-boot.lds
> index 4abaf0af1a..1040171415 100644
> --- a/arch/nds32/cpu/n1213/u-boot.lds
> +++ b/arch/nds32/cpu/n1213/u-boot.lds
> @@ -35,8 +35,8 @@ SECTIONS
> }
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(4);
> diff --git a/arch/nios2/cpu/u-boot.lds b/arch/nios2/cpu/u-boot.lds
> index cbf54b4610..5b9e27d940 100644
> --- a/arch/nios2/cpu/u-boot.lds
> +++ b/arch/nios2/cpu/u-boot.lds
> @@ -32,8 +32,8 @@ SECTIONS
> */
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> /* INIT DATA sections - "Small" data (see the gcc -G option)
> diff --git a/arch/powerpc/cpu/mpc83xx/u-boot.lds b/arch/powerpc/cpu/mpc83xx/u-boot.lds
> index d10f528da4..1a1e537b2a 100644
> --- a/arch/powerpc/cpu/mpc83xx/u-boot.lds
> +++ b/arch/powerpc/cpu/mpc83xx/u-boot.lds
> @@ -42,8 +42,8 @@ SECTIONS
> . = .;
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
>
> diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
> index 75b0285e4e..3a9746c860 100644
> --- a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
> +++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
> @@ -59,8 +59,8 @@ SECTIONS
>
> . = .;
>
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = .;
> diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
> index a2193bf768..fc2519d0b1 100644
> --- a/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
> +++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
> @@ -35,8 +35,8 @@ SECTIONS
> }
> _edata = .;
>
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(8);
> diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds b/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds
> index 27a5fe6306..2f59b4fc12 100644
> --- a/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds
> +++ b/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds
> @@ -43,8 +43,8 @@ SECTIONS
> _edata = .;
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = .;
> diff --git a/arch/powerpc/cpu/mpc85xx/u-boot.lds b/arch/powerpc/cpu/mpc85xx/u-boot.lds
> index 22bbac51aa..b6855f5571 100644
> --- a/arch/powerpc/cpu/mpc85xx/u-boot.lds
> +++ b/arch/powerpc/cpu/mpc85xx/u-boot.lds
> @@ -66,8 +66,8 @@ SECTIONS
> . = .;
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = .;
> diff --git a/arch/riscv/cpu/u-boot-spl.lds b/arch/riscv/cpu/u-boot-spl.lds
> index d0495ce248..993536302a 100644
> --- a/arch/riscv/cpu/u-boot-spl.lds
> +++ b/arch/riscv/cpu/u-boot-spl.lds
> @@ -40,8 +40,8 @@ SECTIONS
>
> . = ALIGN(4);
>
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> } > .spl_mem
>
> . = ALIGN(4);
> diff --git a/arch/riscv/cpu/u-boot.lds b/arch/riscv/cpu/u-boot.lds
> index c00d17c736..1c937aebee 100644
> --- a/arch/riscv/cpu/u-boot.lds
> +++ b/arch/riscv/cpu/u-boot.lds
> @@ -44,8 +44,8 @@ SECTIONS
>
> . = ALIGN(4);
>
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(4);
> diff --git a/arch/sandbox/config.mk b/arch/sandbox/config.mk
> index 2b1b657831..c42de2ff27 100644
> --- a/arch/sandbox/config.mk
> +++ b/arch/sandbox/config.mk
> @@ -44,13 +44,13 @@ EFI_TARGET := --target=efi-app-ia32
> else ifeq ($(HOST_ARCH),$(HOST_ARCH_AARCH64))
> EFI_LDS := ${SRCDIR}/../../../arch/arm/lib/elf_aarch64_efi.lds
> OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .data \
> - -j .u_boot_list -j .rela.dyn -j .got -j .got.plt \
> + -j __u_boot_list -j .rela.dyn -j .got -j .got.plt \
> -j .binman_sym_table -j .text_rest \
> -j .efi_runtime -j .efi_runtime_rel
> else ifeq ($(HOST_ARCH),$(HOST_ARCH_ARM))
> EFI_LDS := ${SRCDIR}/../../../arch/arm/lib/elf_arm_efi.lds
> OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .hash \
> - -j .data -j .got -j .got.plt -j .u_boot_list -j .rel.dyn \
> + -j .data -j .got -j .got.plt -j __u_boot_list -j .rel.dyn \
> -j .binman_sym_table -j .text_rest \
> -j .efi_runtime -j .efi_runtime_rel
> else ifeq ($(HOST_ARCH),$(HOST_ARCH_RISCV32))
> diff --git a/arch/sandbox/cpu/u-boot-spl.lds b/arch/sandbox/cpu/u-boot-spl.lds
> index 5c19d090cb..046ed0875b 100644
> --- a/arch/sandbox/cpu/u-boot-spl.lds
> +++ b/arch/sandbox/cpu/u-boot-spl.lds
> @@ -9,8 +9,8 @@ SECTIONS
> {
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> /* Private data for devices with OF_PLATDATA_RT */
> diff --git a/arch/sandbox/cpu/u-boot.lds b/arch/sandbox/cpu/u-boot.lds
> index 6fa244fae9..b74da3aa0d 100644
> --- a/arch/sandbox/cpu/u-boot.lds
> +++ b/arch/sandbox/cpu/u-boot.lds
> @@ -9,8 +9,8 @@ SECTIONS
> {
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> efi_runtime_start : {
> diff --git a/arch/sh/cpu/u-boot.lds b/arch/sh/cpu/u-boot.lds
> index 4cc97737f1..ff80ce78f3 100644
> --- a/arch/sh/cpu/u-boot.lds
> +++ b/arch/sh/cpu/u-boot.lds
> @@ -70,8 +70,8 @@ SECTIONS
> } >ram
> PROVIDE (_egot = .);
>
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> } >ram
>
> PROVIDE (__init_end = .);
> diff --git a/arch/x86/cpu/u-boot-64.lds b/arch/x86/cpu/u-boot-64.lds
> index 92a30c2a38..53c56043a9 100644
> --- a/arch/x86/cpu/u-boot-64.lds
> +++ b/arch/x86/cpu/u-boot-64.lds
> @@ -12,7 +12,7 @@ ENTRY(_start)
> SECTIONS
> {
> #ifndef CONFIG_CMDLINE
> - /DISCARD/ : { *(.u_boot_list_2_cmd_*) }
> + /DISCARD/ : { *(__u_boot_list_2_cmd_*) }
> #endif
>
> #ifdef CONFIG_SYS_TEXT_BASE
> @@ -41,8 +41,8 @@ SECTIONS
> . = ALIGN(4);
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(4);
> diff --git a/arch/x86/cpu/u-boot-spl.lds b/arch/x86/cpu/u-boot-spl.lds
> index 346f60bdac..a0a2a06a18 100644
> --- a/arch/x86/cpu/u-boot-spl.lds
> +++ b/arch/x86/cpu/u-boot-spl.lds
> @@ -12,7 +12,7 @@ ENTRY(_start)
> SECTIONS
> {
> #ifndef CONFIG_CMDLINE
> - /DISCARD/ : { *(.u_boot_list_2_cmd_*) }
> + /DISCARD/ : { *(__u_boot_list_2_cmd_*) }
> #endif
>
> . = IMAGE_TEXT_BASE; /* Location of bootcode in flash */
> @@ -25,8 +25,8 @@ SECTIONS
> . = ALIGN(4);
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(4);
> diff --git a/arch/x86/cpu/u-boot.lds b/arch/x86/cpu/u-boot.lds
> index 22fde01e74..7c87209834 100644
> --- a/arch/x86/cpu/u-boot.lds
> +++ b/arch/x86/cpu/u-boot.lds
> @@ -12,7 +12,7 @@ ENTRY(_start)
> SECTIONS
> {
> #ifndef CONFIG_CMDLINE
> - /DISCARD/ : { *(.u_boot_list_2_cmd_*) }
> + /DISCARD/ : { *(__u_boot_list_2_cmd_*) }
> #endif
>
> . = CONFIG_SYS_TEXT_BASE; /* Location of bootcode in flash */
> @@ -39,8 +39,8 @@ SECTIONS
> . = ALIGN(4);
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(4);
> diff --git a/arch/x86/lib/elf_ia32_efi.lds b/arch/x86/lib/elf_ia32_efi.lds
> index aad61e7f81..6d89c1fbd5 100644
> --- a/arch/x86/lib/elf_ia32_efi.lds
> +++ b/arch/x86/lib/elf_ia32_efi.lds
> @@ -51,7 +51,7 @@ SECTIONS
>
> /* U-Boot lists and device tree */
> . = ALIGN(8);
> - *(SORT(.u_boot_list*));
> + *(SORT(__u_boot_list*));
> . = ALIGN(8);
> *(.dtb*);
> }
> @@ -69,7 +69,7 @@ SECTIONS
> *(.data.rel.local)
> *(.data.rel.ro)
> *(.data.rel*)
> - *(.rel.u_boot_list*)
> + *(.rel__u_boot_list*)
> }
> . = ALIGN(4096);
> .reloc : /* This is the PECOFF .reloc section! */
> diff --git a/arch/x86/lib/elf_x86_64_efi.lds b/arch/x86/lib/elf_x86_64_efi.lds
> index 75727400aa..ada024c05c 100644
> --- a/arch/x86/lib/elf_x86_64_efi.lds
> +++ b/arch/x86/lib/elf_x86_64_efi.lds
> @@ -50,7 +50,7 @@ SECTIONS
>
> /* U-Boot lists and device tree */
> . = ALIGN(8);
> - *(SORT(.u_boot_list*));
> + *(SORT(__u_boot_list*));
> . = ALIGN(8);
> *(.dtb*);
> }
> @@ -63,7 +63,7 @@ SECTIONS
> *(.rela.data*)
> *(.rela.got)
> *(.rela.stab)
> - *(.rela.u_boot_list*)
> + *(.rela__u_boot_list*)
> }
>
> . = ALIGN(4096);
> diff --git a/arch/xtensa/cpu/u-boot.lds b/arch/xtensa/cpu/u-boot.lds
> index 493f3fdb99..37dc92b308 100644
> --- a/arch/xtensa/cpu/u-boot.lds
> +++ b/arch/xtensa/cpu/u-boot.lds
> @@ -78,7 +78,7 @@ SECTIONS
> SECTION_text(XTENSA_SYS_TEXT_ADDR, FOLLOWING(.DoubleExceptionVector.text))
> SECTION_rodata(ALIGN(16), FOLLOWING(.text))
> SECTION_u_boot_list(ALIGN(16), FOLLOWING(.rodata))
> - SECTION_data(ALIGN(16), FOLLOWING(.u_boot_list))
> + SECTION_data(ALIGN(16), FOLLOWING(__u_boot_list))
>
> __reloc_end = .;
> __init_end = .;
> diff --git a/arch/xtensa/include/asm/ldscript.h b/arch/xtensa/include/asm/ldscript.h
> index 08f5d0135e..4f75483356 100644
> --- a/arch/xtensa/include/asm/ldscript.h
> +++ b/arch/xtensa/include/asm/ldscript.h
> @@ -100,10 +100,10 @@
> }
>
> #define SECTION_u_boot_list(_vma_, _lma_) \
> - .u_boot_list _vma_ : _lma_ \
> + __u_boot_list _vma_ : _lma_ \
> { \
> _u_boot_list_start = ABSOLUTE(.); \
> - KEEP(*(SORT(.u_boot_list*))); \
> + KEEP(*(SORT(__u_boot_list*))); \
> _u_boot_list_end = ABSOLUTE(.); \
> }
>
> diff --git a/board/compulab/cm_t335/u-boot.lds b/board/compulab/cm_t335/u-boot.lds
> index b00e466d58..4993880461 100644
> --- a/board/compulab/cm_t335/u-boot.lds
> +++ b/board/compulab/cm_t335/u-boot.lds
> @@ -36,8 +36,8 @@ SECTIONS
> . = .;
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(4);
> diff --git a/board/cssi/MCR3000/u-boot.lds b/board/cssi/MCR3000/u-boot.lds
> index 70aef3241c..24b535e724 100644
> --- a/board/cssi/MCR3000/u-boot.lds
> +++ b/board/cssi/MCR3000/u-boot.lds
> @@ -59,8 +59,8 @@ SECTIONS
> . = .;
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = .;
> diff --git a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
> index 8f04911306..de1c9c6fce 100644
> --- a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
> +++ b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
> @@ -36,7 +36,7 @@ SECTIONS
> .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
>
> . = ALIGN(4);
> - .u_boot_list : { KEEP(*(SORT(.u_boot_list*))); } >.sram
> + __u_boot_list : { KEEP(*(SORT(__u_boot_list*))); } >.sram
>
> . = ALIGN(4);
> .rel.dyn : {
> diff --git a/board/qualcomm/dragonboard820c/u-boot.lds b/board/qualcomm/dragonboard820c/u-boot.lds
> index dcf8256cec..5251b59fbe 100644
> --- a/board/qualcomm/dragonboard820c/u-boot.lds
> +++ b/board/qualcomm/dragonboard820c/u-boot.lds
> @@ -49,8 +49,8 @@ SECTIONS
> . = .;
>
> . = ALIGN(8);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(8);
> diff --git a/board/samsung/common/exynos-uboot-spl.lds b/board/samsung/common/exynos-uboot-spl.lds
> index 5b32f7feb8..73cd97a1b1 100644
> --- a/board/samsung/common/exynos-uboot-spl.lds
> +++ b/board/samsung/common/exynos-uboot-spl.lds
> @@ -32,8 +32,8 @@ SECTIONS
> .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
> . = ALIGN(4);
>
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> } >.sram
> . = ALIGN(4);
>
> diff --git a/board/synopsys/iot_devkit/u-boot.lds b/board/synopsys/iot_devkit/u-boot.lds
> index d083168705..dca2e2daee 100644
> --- a/board/synopsys/iot_devkit/u-boot.lds
> +++ b/board/synopsys/iot_devkit/u-boot.lds
> @@ -39,8 +39,8 @@ SECTIONS
> } > ROM
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
>
> /* Mark RAM's LMA */
> . = ALIGN(4);
> diff --git a/board/ti/am335x/u-boot.lds b/board/ti/am335x/u-boot.lds
> index 03c1d5f73b..087dee8bb2 100644
> --- a/board/ti/am335x/u-boot.lds
> +++ b/board/ti/am335x/u-boot.lds
> @@ -72,8 +72,8 @@ SECTIONS
> . = .;
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(4);
> diff --git a/board/vscom/baltos/u-boot.lds b/board/vscom/baltos/u-boot.lds
> index 315ba5b99a..cb2ee67697 100644
> --- a/board/vscom/baltos/u-boot.lds
> +++ b/board/vscom/baltos/u-boot.lds
> @@ -53,8 +53,8 @@ SECTIONS
> . = .;
>
> . = ALIGN(4);
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> . = ALIGN(4);
> diff --git a/doc/api/linker_lists.rst b/doc/api/linker_lists.rst
> index 7063fdc831..3cd447f187 100644
> --- a/doc/api/linker_lists.rst
> +++ b/doc/api/linker_lists.rst
> @@ -13,7 +13,7 @@ then the corresponding input section name is
>
> ::
>
> - .u_boot_list_ + 2_ + @_list + _2_ + @_entry
> + __u_boot_list_ + 2_ + @_list + _2_ + @_entry
>
> and the C variable name is
>
> @@ -23,7 +23,7 @@ and the C variable name is
>
> This ensures uniqueness for both input section and C variable name.
>
> -Note that the names differ only in the first character, "." for the
> +Note that the names differ only in the characters, "__" for the
> section and "_" for the variable, so that the linker cannot confuse
> section and symbol names. From now on, both names will be referred
> to as
> @@ -63,11 +63,11 @@ iterated at least once.
>
> ::
>
> - .u_boot_list_2_array_1
> - .u_boot_list_2_array_2_first
> - .u_boot_list_2_array_2_second
> - .u_boot_list_2_array_2_third
> - .u_boot_list_2_array_3
> + __u_boot_list_2_array_1
> + __u_boot_list_2_array_2_first
> + __u_boot_list_2_array_2_second
> + __u_boot_list_2_array_2_third
> + __u_boot_list_2_array_3
>
> If lists must be divided into sublists (e.g. for iterating only on
> part of a list), one can simply give the list a name of the form
> @@ -129,17 +129,17 @@ the compiler cannot update the alignment of the linker_list item.
>
> In the first case, an 8-byte 'fill' region is added::
>
> - .u_boot_list_2_driver_2_testbus_drv
> + __u_boot_list_2_driver_2_testbus_drv
> 0x0000000000270018 0x80 test/built-in.o
> 0x0000000000270018 _u_boot_list_2_driver_2_testbus_drv
> - .u_boot_list_2_driver_2_testfdt1_drv
> + __u_boot_list_2_driver_2_testfdt1_drv
> 0x0000000000270098 0x80 test/built-in.o
> 0x0000000000270098 _u_boot_list_2_driver_2_testfdt1_drv
> *fill* 0x0000000000270118 0x8
> - .u_boot_list_2_driver_2_testfdt_drv
> + __u_boot_list_2_driver_2_testfdt_drv
> 0x0000000000270120 0x80 test/built-in.o
> 0x0000000000270120 _u_boot_list_2_driver_2_testfdt_drv
> - .u_boot_list_2_driver_2_testprobe_drv
> + __u_boot_list_2_driver_2_testprobe_drv
> 0x00000000002701a0 0x80 test/built-in.o
> 0x00000000002701a0 _u_boot_list_2_driver_2_testprobe_drv
>
> diff --git a/doc/develop/commands.rst b/doc/develop/commands.rst
> index c72d1b0aaa..ede880d248 100644
> --- a/doc/develop/commands.rst
> +++ b/doc/develop/commands.rst
> @@ -169,8 +169,8 @@ by writing in u-boot.lds ($(srctree)/board/boardname/u-boot.lds) these
>
> .. code-block:: c
>
> - .u_boot_list : {
> - KEEP(*(SORT(.u_boot_list*)));
> + __u_boot_list : {
> + KEEP(*(SORT(__u_boot_list*)));
> }
>
> Writing tests
> diff --git a/doc/develop/driver-model/of-plat.rst b/doc/develop/driver-model/of-plat.rst
> index 237af38ad4..b454f7be85 100644
> --- a/doc/develop/driver-model/of-plat.rst
> +++ b/doc/develop/driver-model/of-plat.rst
> @@ -707,9 +707,9 @@ Link errors / undefined reference
> Sometimes dtoc does not find the problem for you, but something is wrong and
> you get a link error, e.g.::
>
> - :(.u_boot_list_2_udevice_2_spl_test5+0x0): undefined reference to
> + :(__u_boot_list_2_udevice_2_spl_test5+0x0): undefined reference to
> `_u_boot_list_2_driver_2_sandbox_spl_test'
> - /usr/bin/ld: dts/dt-uclass.o:(.u_boot_list_2_uclass_2_misc+0x8):
> + /usr/bin/ld: dts/dt-uclass.o:(__u_boot_list_2_uclass_2_misc+0x8):
> undefined reference to `_u_boot_list_2_uclass_driver_2_misc'
>
> The first one indicates that the device cannot find its driver. This means that
> diff --git a/include/linker_lists.h b/include/linker_lists.h
> index 0575164ce4..d3da9d44e8 100644
> --- a/include/linker_lists.h
> +++ b/include/linker_lists.h
> @@ -70,7 +70,7 @@
> #define ll_entry_declare(_type, _name, _list) \
> _type _u_boot_list_2_##_list##_2_##_name __aligned(4) \
> __attribute__((unused)) \
> - __section(".u_boot_list_2_"#_list"_2_"#_name)
> + __section("__u_boot_list_2_"#_list"_2_"#_name)
>
> /**
> * ll_entry_declare_list() - Declare a list of link-generated array entries
> @@ -93,7 +93,7 @@
> #define ll_entry_declare_list(_type, _name, _list) \
> _type _u_boot_list_2_##_list##_2_##_name[] __aligned(4) \
> __attribute__((unused)) \
> - __section(".u_boot_list_2_"#_list"_2_"#_name)
> + __section("__u_boot_list_2_"#_list"_2_"#_name)
>
> /*
> * We need a 0-byte-size type for iterator symbols, and the compiler
> @@ -110,7 +110,7 @@
> * @_list: Name of the list in which this entry is placed
> *
> * This function returns ``(_type *)`` pointer to the very first entry of a
> - * linker-generated array placed into subsection of .u_boot_list section
> + * linker-generated array placed into subsection of __u_boot_list section
> * specified by _list argument.
> *
> * Since this macro defines an array start symbol, its leftmost index
> @@ -126,7 +126,7 @@
> ({ \
> static char start[0] __aligned(CONFIG_LINKER_LIST_ALIGN) \
> __attribute__((unused)) \
> - __section(".u_boot_list_2_"#_list"_1"); \
> + __section("__u_boot_list_2_"#_list"_1"); \
> (_type *)&start; \
> })
>
> @@ -137,7 +137,7 @@
> * (with underscores instead of dots)
> *
> * This function returns ``(_type *)`` pointer after the very last entry of
> - * a linker-generated array placed into subsection of .u_boot_list
> + * a linker-generated array placed into subsection of __u_boot_list
> * section specified by _list argument.
> *
> * Since this macro defines an array end symbol, its leftmost index
> @@ -152,7 +152,7 @@
> #define ll_entry_end(_type, _list) \
> ({ \
> static char end[0] __aligned(4) __attribute__((unused)) \
> - __section(".u_boot_list_2_"#_list"_3"); \
> + __section("__u_boot_list_2_"#_list"_3"); \
> (_type *)&end; \
> })
> /**
> @@ -161,7 +161,7 @@
> * @_list: Name of the list of which the number of elements is computed
> *
> * This function returns the number of elements of a linker-generated array
> - * placed into subsection of .u_boot_list section specified by _list
> + * placed into subsection of __u_boot_list section specified by _list
> * argument. The result is of an unsigned int type.
> *
> * Example:
> @@ -246,7 +246,7 @@
> #define ll_start(_type) \
> ({ \
> static char start[0] __aligned(4) __attribute__((unused)) \
> - __section(".u_boot_list_1"); \
> + __section("__u_boot_list_1"); \
> (_type *)&start; \
> })
>
> @@ -269,7 +269,7 @@
> #define ll_end(_type) \
> ({ \
> static char end[0] __aligned(4) __attribute__((unused)) \
> - __section(".u_boot_list_3"); \
> + __section("__u_boot_list_3"); \
> (_type *)&end; \
> })
>