]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
sandbox: Rename getopt sections
authorAndrew Scull <ascull@google.com>
Mon, 30 May 2022 10:00:03 +0000 (10:00 +0000)
committerTom Rini <trini@konsulko.com>
Thu, 23 Jun 2022 16:58:18 +0000 (12:58 -0400)
Rename the sections used for defining sandbox command line options so
that they don't start with a '.'. ELF says that sections starting with a
'.' are reserved for system use, but the sandbox runs as a normal user
process so should be using user sections instead.

Clang's ASAN adds redzones to non-user sections and the extra padding
meant that the list of options was being corrupted. Naming the sections
as user sections avoids this issue as clang handles them as we intended.

Signed-off-by: Andrew Scull <ascull@google.com>
arch/sandbox/cpu/u-boot-spl.lds
arch/sandbox/cpu/u-boot.lds
arch/sandbox/include/asm/getopt.h
arch/sandbox/include/asm/sections.h

index 206e265e74bf0ee451c6ec8182a5d652483dc268..6b300bcc9309e29ce5a77688c1297a5b90b37632 100644 (file)
@@ -22,9 +22,9 @@ SECTIONS
        }
 
        _u_boot_sandbox_getopt : {
-               *(.u_boot_sandbox_getopt_start)
-               KEEP(*(.u_boot_sandbox_getopt))
-               *(.u_boot_sandbox_getopt_end)
+               *(_u_boot_sandbox_getopt_start)
+               KEEP(*(_u_boot_sandbox_getopt))
+               *(_u_boot_sandbox_getopt_end)
        }
 }
 
index d2cb12fc298486ba15c8d75a9f1cf935d232a176..1f89a3329e1545474ecde17a5e0ebf22c7c915cd 100644 (file)
@@ -14,9 +14,9 @@ SECTIONS
        }
 
        _u_boot_sandbox_getopt : {
-               *(.u_boot_sandbox_getopt_start)
-               *(.u_boot_sandbox_getopt)
-               *(.u_boot_sandbox_getopt_end)
+               *(_u_boot_sandbox_getopt_start)
+               *(_u_boot_sandbox_getopt)
+               *(_u_boot_sandbox_getopt_end)
        }
 
        efi_runtime_start : {
index d2145ad6e2d89a4f14a0cefa6035dfe93e767c1b..df30572d6c9e641b4dbb933092c7b4b87f0e078b 100644 (file)
@@ -44,7 +44,7 @@ struct sandbox_cmdline_option {
                .callback = sandbox_cmdline_cb_##f, \
        }; \
        /* Ppointer to the struct in a special section for the linker script */ \
-       static __used __section(".u_boot_sandbox_getopt") \
+       static __used __section("_u_boot_sandbox_getopt") \
                struct sandbox_cmdline_option \
                        *sandbox_cmdline_option_##f##_ptr = \
                        &sandbox_cmdline_option_##f
index f4351ae7dbf7ab3c8ba2107857eab5e4699ce711..88837bb35c83ca1f41c40ea04da781e5a5d46146 100644 (file)
@@ -17,7 +17,7 @@ static inline struct sandbox_cmdline_option **
 __u_boot_sandbox_option_start(void)
 {
        static char start[0] __aligned(4) __attribute__((unused))
-               __section(".u_boot_sandbox_getopt_start");
+               __section("_u_boot_sandbox_getopt_start");
 
        return (struct sandbox_cmdline_option **)&start;
 }
@@ -26,7 +26,7 @@ static inline struct sandbox_cmdline_option **
 __u_boot_sandbox_option_end(void)
 {
        static char end[0] __aligned(4) __attribute__((unused))
-               __section(".u_boot_sandbox_getopt_end");
+               __section("_u_boot_sandbox_getopt_end");
 
        return (struct sandbox_cmdline_option **)&end;
 }