u-boot/arch/sandbox/include/asm/sections.h
Andrew Scull 0648b13269 sandbox: Rename getopt sections
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>
2022-06-23 12:58:18 -04:00

39 lines
895 B
C

/*
* decls for symbols defined in the linker script
*
* Copyright (c) 2012 The Chromium OS Authors.
*
* Licensed under the GPL-2 or later.
*/
#ifndef __SANDBOX_SECTIONS_H
#define __SANDBOX_SECTIONS_H
#include <asm-generic/sections.h>
struct sandbox_cmdline_option;
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");
return (struct sandbox_cmdline_option **)&start;
}
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");
return (struct sandbox_cmdline_option **)&end;
}
static inline size_t __u_boot_sandbox_option_count(void)
{
return __u_boot_sandbox_option_end() - __u_boot_sandbox_option_start();
}
#endif