mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
binman: Add tests binaries with binman symbols
For testing we need to build some ELF files containing binman symbols. Add these to the Makefile and check in the binaries: u_boot_binman_syms - normal, valid ELF file u_boot_binman_syms_bad - missing the __image_copy_start symbol u_boot_binman_syms_size - has a binman symbol with an invalid size Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
00ae40b3ae
commit
5cfcf7e0fd
9 changed files with 103 additions and 1 deletions
|
@ -10,8 +10,12 @@
|
|||
CFLAGS := -march=i386 -m32 -nostdlib -I ../../../include
|
||||
|
||||
LDS_UCODE := -T u_boot_ucode_ptr.lds
|
||||
LDS_BINMAN := -T u_boot_binman_syms.lds
|
||||
LDS_BINMAN_BAD := -T u_boot_binman_syms_bad.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_size
|
||||
|
||||
all: $(TARGETS)
|
||||
|
||||
|
@ -24,6 +28,18 @@ u_boot_ucode_ptr: u_boot_ucode_ptr.c
|
|||
bss_data: CFLAGS += bss_data.lds
|
||||
bss_data: bss_data.c
|
||||
|
||||
u_boot_binman_syms.bin: u_boot_binman_syms
|
||||
objcopy -O binary $< -R .note.gnu.build-id $@
|
||||
|
||||
u_boot_binman_syms: CFLAGS += $(LDS_BINMAN)
|
||||
u_boot_binman_syms: u_boot_binman_syms.c
|
||||
|
||||
u_boot_binman_syms_bad: CFLAGS += $(LDS_BINMAN_BAD)
|
||||
u_boot_binman_syms_bad: u_boot_binman_syms_bad.c
|
||||
|
||||
u_boot_binman_syms_size: CFLAGS += $(LDS_BINMAN)
|
||||
u_boot_binman_syms_size: u_boot_binman_syms_size.c
|
||||
|
||||
clean:
|
||||
rm -f $(TARGETS)
|
||||
|
||||
|
|
BIN
tools/binman/test/u_boot_binman_syms
Executable file
BIN
tools/binman/test/u_boot_binman_syms
Executable file
Binary file not shown.
14
tools/binman/test/u_boot_binman_syms.c
Normal file
14
tools/binman/test/u_boot_binman_syms.c
Normal file
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
* Copyright (c) 2017 Google, Inc
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*
|
||||
* Simple program to create some binman symbols. This is used by binman tests.
|
||||
*/
|
||||
|
||||
#define CONFIG_BINMAN
|
||||
#include <binman_sym.h>
|
||||
|
||||
binman_sym_declare(unsigned long, u_boot_spl, pos);
|
||||
binman_sym_declare(unsigned long long, u_boot_spl2, pos);
|
||||
binman_sym_declare(unsigned long, u_boot_any, pos);
|
30
tools/binman/test/u_boot_binman_syms.lds
Normal file
30
tools/binman/test/u_boot_binman_syms.lds
Normal file
|
@ -0,0 +1,30 @@
|
|||
/*
|
||||
* Copyright (c) 2016 Google, Inc
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
|
||||
OUTPUT_ARCH(i386)
|
||||
ENTRY(_start)
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
. = 0x00000000;
|
||||
_start = .;
|
||||
|
||||
. = ALIGN(4);
|
||||
.text :
|
||||
{
|
||||
__image_copy_start = .;
|
||||
*(.text*)
|
||||
}
|
||||
|
||||
. = ALIGN(4);
|
||||
.binman_sym_table : {
|
||||
__binman_sym_start = .;
|
||||
KEEP(*(SORT(.binman_sym*)));
|
||||
__binman_sym_end = .;
|
||||
}
|
||||
|
||||
}
|
BIN
tools/binman/test/u_boot_binman_syms_bad
Executable file
BIN
tools/binman/test/u_boot_binman_syms_bad
Executable file
Binary file not shown.
1
tools/binman/test/u_boot_binman_syms_bad.c
Symbolic link
1
tools/binman/test/u_boot_binman_syms_bad.c
Symbolic link
|
@ -0,0 +1 @@
|
|||
u_boot_binman_syms.c
|
29
tools/binman/test/u_boot_binman_syms_bad.lds
Normal file
29
tools/binman/test/u_boot_binman_syms_bad.lds
Normal file
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Copyright (c) 2016 Google, Inc
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
|
||||
OUTPUT_ARCH(i386)
|
||||
ENTRY(_start)
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
. = 0x00000000;
|
||||
_start = .;
|
||||
|
||||
. = ALIGN(4);
|
||||
.text :
|
||||
{
|
||||
*(.text*)
|
||||
}
|
||||
|
||||
. = ALIGN(4);
|
||||
.binman_sym_table : {
|
||||
__binman_sym_start = .;
|
||||
KEEP(*(SORT(.binman_sym*)));
|
||||
__binman_sym_end = .;
|
||||
}
|
||||
|
||||
}
|
BIN
tools/binman/test/u_boot_binman_syms_size
Executable file
BIN
tools/binman/test/u_boot_binman_syms_size
Executable file
Binary file not shown.
12
tools/binman/test/u_boot_binman_syms_size.c
Normal file
12
tools/binman/test/u_boot_binman_syms_size.c
Normal file
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
* Copyright (c) 2017 Google, Inc
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*
|
||||
* Simple program to create some binman symbols. This is used by binman tests.
|
||||
*/
|
||||
|
||||
#define CONFIG_BINMAN
|
||||
#include <binman_sym.h>
|
||||
|
||||
binman_sym_declare(char, u_boot_spl, pos);
|
Loading…
Reference in a new issue