mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-26 12:27:12 +00:00
binman: Add a ELF test file with disjoint text sections
Add a file that has two text sections at different addresses, so we can test this behaviour in binman, once added. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
5c044ff523
commit
56385c585f
3 changed files with 56 additions and 1 deletions
|
@ -29,11 +29,12 @@ LDS_BINMAN := -T $(SRC)u_boot_binman_syms.lds
|
||||||
LDS_BINMAN_BAD := -T $(SRC)u_boot_binman_syms_bad.lds
|
LDS_BINMAN_BAD := -T $(SRC)u_boot_binman_syms_bad.lds
|
||||||
LDS_BINMAN_X86 := -T $(SRC)u_boot_binman_syms_x86.lds
|
LDS_BINMAN_X86 := -T $(SRC)u_boot_binman_syms_x86.lds
|
||||||
LDS_BINMAN_EMBED := -T $(SRC)u_boot_binman_embed.lds
|
LDS_BINMAN_EMBED := -T $(SRC)u_boot_binman_embed.lds
|
||||||
|
LDS_EFL_SECTIONS := -T $(SRC)elf_sections.lds
|
||||||
|
|
||||||
TARGETS = u_boot_ucode_ptr u_boot_no_ucode_ptr bss_data \
|
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 u_boot_binman_syms.bin u_boot_binman_syms_bad \
|
||||||
u_boot_binman_syms_size u_boot_binman_syms_x86 embed_data \
|
u_boot_binman_syms_size u_boot_binman_syms_x86 embed_data \
|
||||||
u_boot_binman_embed u_boot_binman_embed_sm
|
u_boot_binman_embed u_boot_binman_embed_sm elf_sections
|
||||||
|
|
||||||
all: $(TARGETS)
|
all: $(TARGETS)
|
||||||
|
|
||||||
|
@ -70,6 +71,9 @@ u_boot_binman_embed: u_boot_binman_embed.c
|
||||||
u_boot_binman_embed_sm: CFLAGS += $(LDS_BINMAN_EMBED)
|
u_boot_binman_embed_sm: CFLAGS += $(LDS_BINMAN_EMBED)
|
||||||
u_boot_binman_embed_sm: u_boot_binman_embed_sm.c
|
u_boot_binman_embed_sm: u_boot_binman_embed_sm.c
|
||||||
|
|
||||||
|
elf_sections: CFLAGS += $(LDS_EFL_SECTIONS)
|
||||||
|
elf_sections: elf_sections.c
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(TARGETS)
|
rm -f $(TARGETS)
|
||||||
|
|
||||||
|
|
20
tools/binman/test/elf_sections.c
Normal file
20
tools/binman/test/elf_sections.c
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright 2022 Google LLC
|
||||||
|
*
|
||||||
|
* Program containing two text sections
|
||||||
|
*/
|
||||||
|
|
||||||
|
int __attribute__((section(".sram_data"))) data[29];
|
||||||
|
|
||||||
|
int __attribute__((section(".sram_code"))) calculate(int x)
|
||||||
|
{
|
||||||
|
data[0] = x;
|
||||||
|
|
||||||
|
return x * x;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
return calculate(123);
|
||||||
|
}
|
31
tools/binman/test/elf_sections.lds
Normal file
31
tools/binman/test/elf_sections.lds
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2016 Google, Inc
|
||||||
|
*/
|
||||||
|
|
||||||
|
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
|
||||||
|
OUTPUT_ARCH(i386)
|
||||||
|
ENTRY(_start)
|
||||||
|
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
. = 0x00000010;
|
||||||
|
_start = .;
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
.text :
|
||||||
|
{
|
||||||
|
*(.text*)
|
||||||
|
}
|
||||||
|
|
||||||
|
. = 0x00001000;
|
||||||
|
.sram :
|
||||||
|
{
|
||||||
|
*(.sram*)
|
||||||
|
}
|
||||||
|
|
||||||
|
/DISCARD/ : {
|
||||||
|
*(.comment)
|
||||||
|
*(.dyn*)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue