sandbox: Rename EFI runtime sections

Rename the sections used for placing the EFI runtime 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>
This commit is contained in:
Andrew Scull 2022-05-30 10:00:02 +00:00 committed by Tom Rini
parent 337b26e468
commit aac53d3d96
2 changed files with 14 additions and 16 deletions

View file

@ -19,32 +19,30 @@ SECTIONS
*(.u_boot_sandbox_getopt_end)
}
.__efi_runtime_start : {
*(.__efi_runtime_start)
efi_runtime_start : {
*(___efi_runtime_start)
}
.efi_runtime : {
efi_runtime : {
*(efi_runtime_text)
*(efi_runtime_data)
}
.__efi_runtime_stop : {
*(.__efi_runtime_stop)
efi_runtime_stop : {
*(___efi_runtime_stop)
}
.efi_runtime_rel_start :
{
*(.__efi_runtime_rel_start)
efi_runtime_rel_start : {
*(___efi_runtime_rel_start)
}
.efi_runtime_rel : {
efi_runtime_rel : {
*(.relefi_runtime_text)
*(.relefi_runtime_data)
}
.efi_runtime_rel_stop :
{
*(.__efi_runtime_rel_stop)
efi_runtime_rel_stop : {
*(___efi_runtime_rel_stop)
}
.dynsym :

View file

@ -5,9 +5,9 @@
*/
#include <linux/compiler.h>
char __efi_runtime_start[0] __section(".__efi_runtime_start");
char __efi_runtime_stop[0] __section(".__efi_runtime_stop");
char __efi_runtime_start[0] __section("___efi_runtime_start");
char __efi_runtime_stop[0] __section("___efi_runtime_stop");
char __efi_runtime_rel_start[0]
__section(".__efi_runtime_rel_start");
__section("___efi_runtime_rel_start");
char __efi_runtime_rel_stop[0]
__section(".__efi_runtime_rel_stop");
__section("___efi_runtime_rel_stop");