]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
linker_lists: Rename sections to remove . prefix
authorAndrew Scull <ascull@google.com>
Mon, 30 May 2022 10:00:04 +0000 (10:00 +0000)
committerTom Rini <trini@konsulko.com>
Thu, 23 Jun 2022 16:58:18 +0000 (12:58 -0400)
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>
51 files changed:
arch/arc/cpu/u-boot.lds
arch/arm/config.mk
arch/arm/cpu/arm926ejs/sunxi/u-boot-spl.lds
arch/arm/cpu/armv7/sunxi/u-boot-spl.lds
arch/arm/cpu/armv8/u-boot-spl.lds
arch/arm/cpu/armv8/u-boot.lds
arch/arm/cpu/u-boot-spl.lds
arch/arm/cpu/u-boot.lds
arch/arm/mach-at91/arm926ejs/u-boot-spl.lds
arch/arm/mach-at91/armv7/u-boot-spl.lds
arch/arm/mach-omap2/u-boot-spl.lds
arch/arm/mach-orion5x/u-boot-spl.lds
arch/arm/mach-rockchip/u-boot-tpl-v8.lds
arch/arm/mach-zynq/u-boot-spl.lds
arch/arm/mach-zynq/u-boot.lds
arch/m68k/cpu/u-boot.lds
arch/microblaze/cpu/u-boot-spl.lds
arch/microblaze/cpu/u-boot.lds
arch/mips/config.mk
arch/mips/cpu/u-boot-spl.lds
arch/mips/cpu/u-boot.lds
arch/nios2/cpu/u-boot.lds
arch/powerpc/cpu/mpc83xx/u-boot.lds
arch/powerpc/cpu/mpc85xx/u-boot-spl.lds
arch/powerpc/cpu/mpc85xx/u-boot.lds
arch/riscv/cpu/u-boot-spl.lds
arch/riscv/cpu/u-boot.lds
arch/sandbox/config.mk
arch/sandbox/cpu/u-boot-spl.lds
arch/sandbox/cpu/u-boot.lds
arch/sh/cpu/u-boot.lds
arch/x86/cpu/u-boot-64.lds
arch/x86/cpu/u-boot-spl.lds
arch/x86/cpu/u-boot.lds
arch/x86/lib/elf_ia32_efi.lds
arch/x86/lib/elf_x86_64_efi.lds
arch/xtensa/cpu/u-boot.lds
arch/xtensa/include/asm/ldscript.h
board/compulab/cm_t335/u-boot.lds
board/cssi/MCR3000/u-boot.lds
board/davinci/da8xxevm/u-boot-spl-da850evm.lds
board/qualcomm/dragonboard820c/u-boot.lds
board/samsung/common/exynos-uboot-spl.lds
board/synopsys/iot_devkit/u-boot.lds
board/ti/am335x/u-boot.lds
board/vscom/baltos/u-boot.lds
doc/api/linker_lists.rst
doc/develop/commands.rst
doc/develop/driver-model/of-plat.rst
include/linker_lists.h
tools/mips-relocs.c

index e12145c76849e894efb7b4c15506c5935ebad997..9f2973da6598587410e7ac80bacb4c5cc4696330 100644 (file)
@@ -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);
index b107b1af27ac07571144532eda80fb86c9b223c1..b3548ce2439242a66bc62a7a39359fa336a283f2 100644 (file)
@@ -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
 
index 9a000ac5d385e4394854563902db26dcf12d6864..c108736811578f4a665873b12327807ff7b8df6b 100644 (file)
@@ -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);
index 942c29fc959dfaac8ac0105307fe55012b715756..306a4ddf3cd2973c59b2eaa334765b168e1951c0 100644 (file)
@@ -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);
index 730eb93dbc3bc355f884d67a186787b23b7008ed..d02b788e608deb80de34b2819bac038d83cdf2e8 100644 (file)
@@ -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 : {
index 2554980595b14cf9a1f5b13db03f147f73048305..8fe4682dd2aed64bc80d06122f5cb1f0ee00aeea 100644 (file)
@@ -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);
index 97899a567ff5ce526c95cd429e0094bf3ab6ca96..fb2189d50dea6ee75fa1fa4573932fc154f13ee9 100644 (file)
@@ -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);
index 0eb164d2e694d44e03e1313d41ba2a03435c91a6..f25f72b2e0d807894c99b489109b6a131a717a86 100644 (file)
@@ -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);
index 74f63552297c068f07fb4d4b1c275f78bc882648..1a8bf94dee0c88dd64e6833f9e2ad650957e0baa 100644 (file)
@@ -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 = .;
index 950ea55d7c4ef6120da2e8a66bf680da06140f17..6ca725fc4ce0cca04c4dd190ff1b23637f475097 100644 (file)
@@ -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 = .;
index 88d81f9b98d61cfdf562e077f7666800d71dadaf..1d6e5d45b4689567d3209063d17508c9252cbaf2 100644 (file)
@@ -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);
index a537fe02954bbb9a862a209d74b7d37ed9eee7d4..154bb1206035460a6629271472c02cd80c974bb0 100644 (file)
@@ -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);
index 9869972e222042a112bd3a5cede7a6631fa8d8d1..74618eba591b3f565e49116298824c19a6457465 100644 (file)
@@ -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 : {
index 106d2e390ba8b096898e4ac95a29cea454c12ca2..8c18d3f91f4bf84ac2e71e7a9257576cefa9fe2f 100644 (file)
@@ -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);
index 91c32e89e8fe1d9cbaaa4663cdd4000efd0fd590..a5169fd9150ed9c522d6671a679cae82d3dcf5f2 100644 (file)
@@ -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);
index affb2d93746492d2bf624f43f38e471c1961b2e1..133f79150baa1fb786981872ab4235983c261602 100644 (file)
@@ -60,8 +60,8 @@ SECTIONS
        . = .;
 
        . = ALIGN(4);
-       .u_boot_list : {
-               KEEP(*(SORT(.u_boot_list*)));
+       __u_boot_list : {
+               KEEP(*(SORT(__u_boot_list*)));
        }
 
        . = .;
index 7883a64b158d9504334eea43ae32710dca64eb22..4ac5a21524c5cefb814e21101d2cef2937588278 100644 (file)
@@ -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 = . ;
 
index 2b316cc7f5a57f3cfc41fd9b59ac45c64911d5e2..8bd515b099285d188bebcdc7126526f8f35ae726 100644 (file)
@@ -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 = . ;
 
index faf4129ac16c3c18a49444bea3e4744324c79f3d..04f362780580a3859b4671a77bf125e212f583f0 100644 (file)
@@ -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
index 28ea4f2a481dea61e513ef5956d5724bb1413c90..194398be8539ed450f695cfd524af29ef09ecbfb 100644 (file)
@@ -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
 
index 86496737d350a5f74404588e216c915cc393c844..9a4ebcd151564cb740e466ab10bcb8d53d95e20f 100644 (file)
@@ -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);
index cbf54b46103faaf2925e5cba7c98a1e49ff73bce..5b9e27d9406200bfb9a1466720181ad831cb44eb 100644 (file)
@@ -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)
index d10f528da4c486787b5fef1018d9114d5245f5f5..1a1e537b2a765dc9b35b38917b726f507beb04fc 100644 (file)
@@ -42,8 +42,8 @@ SECTIONS
   . = .;
 
   . = ALIGN(4);
-  .u_boot_list : {
-       KEEP(*(SORT(.u_boot_list*)));
+  __u_boot_list : {
+       KEEP(*(SORT(__u_boot_list*)));
   }
 
 
index 1b4d1e05a4a3027d20f34fbd68283cbce8882e98..06a70ff2af9c992e4259d00e1b6183e9c049b262 100644 (file)
@@ -50,8 +50,8 @@ SECTIONS
        _edata  =  .;
 
        . = ALIGN(4);
-       .u_boot_list : {
-               KEEP(*(SORT(.u_boot_list*)));
+       __u_boot_list : {
+               KEEP(*(SORT(__u_boot_list*)));
        }
 
        . = .;
index e1bbee43bcb4f91547a0351e47cb106b1476aacc..8bbe319b3e792e4e6f3bcf8b67bdb1287d104169 100644 (file)
@@ -67,8 +67,8 @@ SECTIONS
   . = .;
 
   . = ALIGN(4);
-  .u_boot_list : {
-       KEEP(*(SORT(.u_boot_list*)));
+  __u_boot_list : {
+       KEEP(*(SORT(__u_boot_list*)));
   }
 
   . = .;
index d0495ce2486a9eba507b69be824792be8f8c00b8..993536302a2756d7f221a5f2278a59a09e4fdbfa 100644 (file)
@@ -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);
index c00d17c73696e09a67e05288026d118bb595f0be..1c937aebee082ded60773250fe6a8a17bf39bf6e 100644 (file)
@@ -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);
index 02a3ba0c0e941a5e2d2b3c8d3e20783d181e8727..f3d3af66116a6f1bc1877217b90a8560aac4780b 100644 (file)
@@ -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))
index 6b300bcc9309e29ce5a77688c1297a5b90b37632..ef885fd0cb00308f127573029223f2a0ec97ad13 100644 (file)
@@ -9,8 +9,8 @@ SECTIONS
 {
 
        . = ALIGN(32);
-       .u_boot_list : {
-               KEEP(*(SORT(.u_boot_list*)));
+       __u_boot_list : {
+               KEEP(*(SORT(__u_boot_list*)));
        }
 
        /* Private data for devices with OF_PLATDATA_RT */
index 1f89a3329e1545474ecde17a5e0ebf22c7c915cd..ba8dee50c7bd627cc0dc5d2fbf22f87831628fbc 100644 (file)
@@ -9,8 +9,8 @@ SECTIONS
 {
 
        . = ALIGN(32);
-       .u_boot_list : {
-               KEEP(*(SORT(.u_boot_list*)));
+       __u_boot_list : {
+               KEEP(*(SORT(__u_boot_list*)));
        }
 
        _u_boot_sandbox_getopt : {
index 4cc97737f1c97e0ad6811f633460cbf20bfb80a1..ff80ce78f3e09c9bda3ef889add71493d1c60fd8 100644 (file)
@@ -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 = .);
index 92a30c2a387d25d0361aa53efe814b6cd12bd0ac..53c56043a9ebfaee71a898ba1c8c18fbb012b4bc 100644 (file)
@@ -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);
index 346f60bdac0b7039e5924c0cd45d1152ec0b5e40..a0a2a06a18cd6d897fdbd9af37c3163933782bce 100644 (file)
@@ -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);
index 22fde01e7499e41defbf483437c1b3ca05cb2b1b..7c872098342f61a078545e5c51a45676a4b2afde 100644 (file)
@@ -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);
index aad61e7f817c5481639de520e7f20588107f0c06..6d89c1fbd534c2c42c5b0f0357d3c000b5f97eb3 100644 (file)
@@ -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! */
index 75727400aa4bb37a4af570e294d9f496a15a951a..ada024c05c36aeb6ade836702c8b603d3fc41269 100644 (file)
@@ -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);
index 493f3fdb99bfc83a4de73e18d462de88c987c232..84ba32c0444403132ca663f3d4a1c644555c8e2f 100644 (file)
@@ -49,7 +49,7 @@ SECTIONS
     RELOCATE1(text);
     RELOCATE1(rodata);
     RELOCATE1(data);
-    RELOCATE1(u_boot_list);
+    RELOCATE_USER1(__u_boot_list);
     __reloc_table_end = ABSOLUTE(.);
   }
 
@@ -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 = .;
index 08f5d0135ed0ece53fc76fe7a58a968cbca1625e..78a0b230bdaaba24ec9f1ef9dbeee72a1c20e746 100644 (file)
        LONG(_##_sym_##_##_sec_##_end);                                 \
        LONG(LOADADDR(.##_sym_##.##_sec_));
 
+#define RELOCATE_USER1(_sec_)                                          \
+       LONG(_##_sec_##_start);                                         \
+       LONG(_##_sec_##_end);                                           \
+       LONG(LOADADDR(_sec_));
+
 #define SECTION_VECTOR(_sym_, _sec_, _vma_, _lma_)                     \
 .##_sym_##.##_sec_ _vma_ : _lma_                                       \
 {                                                                      \
        }
 
 #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*)));                           \
-               _u_boot_list_end = ABSOLUTE(.);                         \
+               ___u_boot_list_start = ABSOLUTE(.);                     \
+               KEEP(*(SORT(__u_boot_list*)));                          \
+               ___u_boot_list_end = ABSOLUTE(.);                       \
        }
 
 #define SECTION_data(_vma_, _lma_)                                     \
index b00e466d580c28d38f7405c8a82f4b7efeffbfb7..49938804611c9214661ae069423dc89028ee2213 100644 (file)
@@ -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);
index 70aef3241c8e448f0f379e29943f8563a8772be3..24b535e724aac8ef990678f535fe497dc4ba22da 100644 (file)
@@ -59,8 +59,8 @@ SECTIONS
        . = .;
 
        . = ALIGN(4);
-       .u_boot_list : {
-               KEEP(*(SORT(.u_boot_list*)));
+       __u_boot_list : {
+               KEEP(*(SORT(__u_boot_list*)));
        }
 
        . = .;
index f6b9de29084178a772dcc41f4e6181059087ae67..7e0f09f3b5b17478a5883c648619e1cc76daff4f 100644 (file)
@@ -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 : {
index dcf8256cec38fb7423afb260a88a756207df735f..5251b59fbe768bfaab8f179e0b1007edb88c05e0 100644 (file)
@@ -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);
index 5b32f7feb817ee8ff44d222610016f693477a123..73cd97a1b1de2cb78651b789b6ae0b383522b7bb 100644 (file)
@@ -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);
 
index 5aff100315e12a095c79b96625f9d8e2b48d2d2a..e82e4987f6f2978082a93ea606f179f880c1459b 100644 (file)
@@ -40,8 +40,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);
index 03c1d5f73b3dc81445554ec62e2af69fe03e6446..087dee8bb2edd403575f44c10600ab418fe5b9cf 100644 (file)
@@ -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);
index 315ba5b99a72a9ce90be3d955bc96b81b66750ac..cb2ee6769753effa73be8db354f13bd55f4bfda6 100644 (file)
@@ -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);
index 7063fdc83144e1c90f9939a3c44422fd9dcb1910..3cd447f187dfeb21f9a657d222d5aeb95ccdda9d 100644 (file)
@@ -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
 
index c72d1b0aaad76871b052181cbc16613628352066..ede880d248c6b0115072f57443781a0cbe556db3 100644 (file)
@@ -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
index 237af38ad4d8b5bc281a962faf26d84bc59f7223..b454f7be85ef42e7321cd0488b67044fcb00b8c5 100644 (file)
@@ -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
index 0575164ce4c8723c73cd3e699e1febbc0e1dc158..d3da9d44e8530b8bb17743e57a537da027af3ffc 100644 (file)
@@ -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
  * @_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
 ({                                                                     \
        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;                                                \
 })
 
  *             (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
 #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;                                                  \
 })
 /**
  * @_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:
 #define ll_start(_type)                                                        \
 ({                                                                     \
        static char start[0] __aligned(4) __attribute__((unused))       \
-               __section(".u_boot_list_1");                            \
+               __section("__u_boot_list_1");                           \
        (_type *)&start;                                                \
 })
 
 #define ll_end(_type)                                                  \
 ({                                                                     \
        static char end[0] __aligned(4) __attribute__((unused))         \
-               __section(".u_boot_list_3");                            \
+               __section("__u_boot_list_3");                           \
        (_type *)&end;                                                  \
 })
 
index 625258085b608b17a54342db5ee90affd89f0ca0..5db610f5c77bb098c81f37d8a4ac59f6c6e42493 100644 (file)
@@ -312,7 +312,7 @@ int main(int argc, char *argv[])
                goto out_free_relocs;
        }
 
-       rel_pfx = is_64 ? ".rela." : ".rel.";
+       rel_pfx = is_64 ? ".rela" : ".rel";
 
        for (i = 0; i < ehdr_field(e_shnum); i++) {
                sh_type = shdr_field(i, sh_type);
@@ -321,10 +321,11 @@ int main(int argc, char *argv[])
 
                sh_name = shstr(shdr_field(i, sh_name));
                if (strncmp(sh_name, rel_pfx, strlen(rel_pfx))) {
-                       if (strcmp(sh_name, ".rel") && strcmp(sh_name, ".rel.dyn"))
-                               fprintf(stderr, "WARNING: Unexpected reloc section name '%s'\n", sh_name);
+                       fprintf(stderr, "WARNING: Unexpected reloc section name '%s'\n", sh_name);
                        continue;
                }
+               if (!strcmp(sh_name, ".rel") || !strcmp(sh_name, ".rel.dyn"))
+                       continue;
 
                /*
                 * Skip reloc sections which either don't correspond to another
@@ -334,7 +335,7 @@ int main(int argc, char *argv[])
                 */
                skip = true;
                for (j = 0; j < ehdr_field(e_shnum); j++) {
-                       if (strcmp(&sh_name[strlen(rel_pfx) - 1], shstr(shdr_field(j, sh_name))))
+                       if (strcmp(&sh_name[strlen(rel_pfx)], shstr(shdr_field(j, sh_name))))
                                continue;
 
                        skip = !(shdr_field(j, sh_flags) & SHF_ALLOC);