You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
3.1 KiB
138 lines
3.1 KiB
#! /bin/sh
|
|
|
|
# testfile-phdrs.elf generated with python3 script
|
|
# import struct
|
|
# import sys
|
|
#
|
|
# phnum = 66000
|
|
#
|
|
# sys.stdout.buffer.write(
|
|
# struct.pack(
|
|
# "<16BHHIQQQIHHHHHH",
|
|
# # EI_MAG
|
|
# *b"\x7fELF",
|
|
# # EI_CLASS = ELFCLASS64
|
|
# 2,
|
|
# # EI_DATA = ELFDATA2LSB
|
|
# 1,
|
|
# # EI_VERSION
|
|
# 1,
|
|
# # EI_OSABI = ELFOSABI_SYSV
|
|
# 0,
|
|
# # EI_ABIVERSION
|
|
# 0,
|
|
# # EI_PAD
|
|
# *bytes(7),
|
|
# # e_type = ET_CORE
|
|
# 4,
|
|
# # e_machine = EM_X86_64
|
|
# 62,
|
|
# # e_version
|
|
# 1,
|
|
# # e_entry
|
|
# 0,
|
|
# # e_phoff = sizeof(Elf64_Ehdr) + sizeof(Elf64_Shdr)
|
|
# 128,
|
|
# # e_shoff = sizeof(Elf64_Ehdr)
|
|
# 64,
|
|
# # e_flags
|
|
# 0,
|
|
# # e_ehsize
|
|
# 64,
|
|
# # e_phentsize
|
|
# 56,
|
|
# # e_phnum = PN_XNUM
|
|
# 0xFFFF,
|
|
# # e_shentsize
|
|
# 64,
|
|
# # e_shnum
|
|
# 1,
|
|
# # e_shstrndx
|
|
# 0,
|
|
# )
|
|
# )
|
|
#
|
|
# sys.stdout.buffer.write(
|
|
# struct.pack(
|
|
# "<IIQQQQIIQQ",
|
|
# # sh_name
|
|
# 0,
|
|
# # sh_type = SHT_NULL
|
|
# 0,
|
|
# # sh_flags
|
|
# 0,
|
|
# # sh_addr
|
|
# 0,
|
|
# # sh_offset
|
|
# 0,
|
|
# # sh_size
|
|
# 0,
|
|
# # sh_link
|
|
# 0,
|
|
# # sh_info
|
|
# phnum,
|
|
# # sh_addralign
|
|
# 0,
|
|
# # sh_entsize
|
|
# 0,
|
|
# )
|
|
# )
|
|
#
|
|
# for i in range(phnum):
|
|
# sys.stdout.buffer.write(
|
|
# struct.pack(
|
|
# "<IIQQQQQQ",
|
|
# # p_type = PT_LOAD
|
|
# 1,
|
|
# # p_flags = PF_X|PF_W|PF_R
|
|
# 0x7,
|
|
# # p_offset
|
|
# 0,
|
|
# # p_vaddr
|
|
# # i * 4096,
|
|
# 4096,
|
|
# # p_paddr
|
|
# 0,
|
|
# # p_filesz
|
|
# 0,
|
|
# # p_memsz
|
|
# 4096,
|
|
# # p_align
|
|
# 0,
|
|
# )
|
|
# )
|
|
|
|
. $srcdir/test-subr.sh
|
|
|
|
testfiles testfile-phdrs.elf
|
|
|
|
testrun_compare ${abs_top_builddir}/src/readelf -h testfile-phdrs.elf<<\EOF
|
|
ELF Header:
|
|
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
|
|
Class: ELF64
|
|
Data: 2's complement, little endian
|
|
Ident Version: 1 (current)
|
|
OS/ABI: UNIX - System V
|
|
ABI Version: 0
|
|
Type: CORE (Core file)
|
|
Machine: AMD x86-64
|
|
Version: 1 (current)
|
|
Entry point address: 0
|
|
Start of program headers: 128 (bytes into file)
|
|
Start of section headers: 64 (bytes into file)
|
|
Flags:
|
|
Size of this header: 64 (bytes)
|
|
Size of program header entries: 56 (bytes)
|
|
Number of program headers entries: 65535 (66000 in [0].sh_info)
|
|
Size of section header entries: 64 (bytes)
|
|
Number of section headers entries: 1
|
|
Section header string table index: 0
|
|
|
|
EOF
|
|
|
|
testrun_compare ${abs_builddir}/getphdrnum testfile-phdrs.elf<<\EOF
|
|
66000
|
|
EOF
|
|
|
|
exit 0
|