binman: Support reading the offset of an ELF-file symbol
Binman needs to be able to update the contents of an ELF file after it has been build. To support this, add a function to locate the position of a symbol's contents within the file. Fix the comments on bss_data.c and Symbol while we are here. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -31,7 +31,7 @@ LDS_BINMAN_X86 := -T $(SRC)u_boot_binman_syms_x86.lds
|
||||
|
||||
TARGETS = u_boot_ucode_ptr u_boot_no_ucode_ptr bss_data \
|
||||
u_boot_binman_syms u_boot_binman_syms.bin u_boot_binman_syms_bad \
|
||||
u_boot_binman_syms_size u_boot_binman_syms_x86
|
||||
u_boot_binman_syms_size u_boot_binman_syms_x86 embed_data
|
||||
|
||||
all: $(TARGETS)
|
||||
|
||||
@@ -44,6 +44,9 @@ u_boot_ucode_ptr: u_boot_ucode_ptr.c
|
||||
bss_data: CFLAGS += $(SRC)bss_data.lds
|
||||
bss_data: bss_data.c
|
||||
|
||||
embed_data: CFLAGS += $(SRC)embed_data.lds
|
||||
embed_data: embed_data.c
|
||||
|
||||
u_boot_binman_syms.bin: u_boot_binman_syms
|
||||
$(OBJCOPY) -O binary $< -R .note.gnu.build-id $@
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Copyright (c) 2016 Google, Inc
|
||||
*
|
||||
* Simple program to create a _dt_ucode_base_size symbol which can be read
|
||||
* Simple program to create a bss_data region so the symbol can be read
|
||||
* by binutils. This is used by binman tests.
|
||||
*/
|
||||
|
||||
|
||||
16
tools/binman/test/embed_data.c
Normal file
16
tools/binman/test/embed_data.c
Normal file
@@ -0,0 +1,16 @@
|
||||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* Copyright 2021 Google LLC
|
||||
*
|
||||
* Simple program including some embedded data that can be accessed by binman.
|
||||
* This is used by binman tests.
|
||||
*/
|
||||
|
||||
int first[10] = {1};
|
||||
int embed[3] __attribute__((section(".embed"))) = {0x1234, 0x5678};
|
||||
int second[10] = {1};
|
||||
|
||||
int main(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
23
tools/binman/test/embed_data.lds
Normal file
23
tools/binman/test/embed_data.lds
Normal file
@@ -0,0 +1,23 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2021 Google LLC
|
||||
*/
|
||||
|
||||
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
|
||||
OUTPUT_ARCH(i386)
|
||||
ENTRY(_start)
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
_start = .;
|
||||
__data_start = .;
|
||||
.data :
|
||||
{
|
||||
. = ALIGN(32);
|
||||
embed_start = .;
|
||||
*(.embed*)
|
||||
embed_end = .;
|
||||
. = ALIGN(32);
|
||||
*(.data*)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user