1da0c48c4Sopenharmony_ci#! /bin/sh 2da0c48c4Sopenharmony_ci 3da0c48c4Sopenharmony_ci# testfile-phdrs.elf generated with python3 script 4da0c48c4Sopenharmony_ci# import struct 5da0c48c4Sopenharmony_ci# import sys 6da0c48c4Sopenharmony_ci# 7da0c48c4Sopenharmony_ci# phnum = 66000 8da0c48c4Sopenharmony_ci# 9da0c48c4Sopenharmony_ci# sys.stdout.buffer.write( 10da0c48c4Sopenharmony_ci# struct.pack( 11da0c48c4Sopenharmony_ci# "<16BHHIQQQIHHHHHH", 12da0c48c4Sopenharmony_ci# # EI_MAG 13da0c48c4Sopenharmony_ci# *b"\x7fELF", 14da0c48c4Sopenharmony_ci# # EI_CLASS = ELFCLASS64 15da0c48c4Sopenharmony_ci# 2, 16da0c48c4Sopenharmony_ci# # EI_DATA = ELFDATA2LSB 17da0c48c4Sopenharmony_ci# 1, 18da0c48c4Sopenharmony_ci# # EI_VERSION 19da0c48c4Sopenharmony_ci# 1, 20da0c48c4Sopenharmony_ci# # EI_OSABI = ELFOSABI_SYSV 21da0c48c4Sopenharmony_ci# 0, 22da0c48c4Sopenharmony_ci# # EI_ABIVERSION 23da0c48c4Sopenharmony_ci# 0, 24da0c48c4Sopenharmony_ci# # EI_PAD 25da0c48c4Sopenharmony_ci# *bytes(7), 26da0c48c4Sopenharmony_ci# # e_type = ET_CORE 27da0c48c4Sopenharmony_ci# 4, 28da0c48c4Sopenharmony_ci# # e_machine = EM_X86_64 29da0c48c4Sopenharmony_ci# 62, 30da0c48c4Sopenharmony_ci# # e_version 31da0c48c4Sopenharmony_ci# 1, 32da0c48c4Sopenharmony_ci# # e_entry 33da0c48c4Sopenharmony_ci# 0, 34da0c48c4Sopenharmony_ci# # e_phoff = sizeof(Elf64_Ehdr) + sizeof(Elf64_Shdr) 35da0c48c4Sopenharmony_ci# 128, 36da0c48c4Sopenharmony_ci# # e_shoff = sizeof(Elf64_Ehdr) 37da0c48c4Sopenharmony_ci# 64, 38da0c48c4Sopenharmony_ci# # e_flags 39da0c48c4Sopenharmony_ci# 0, 40da0c48c4Sopenharmony_ci# # e_ehsize 41da0c48c4Sopenharmony_ci# 64, 42da0c48c4Sopenharmony_ci# # e_phentsize 43da0c48c4Sopenharmony_ci# 56, 44da0c48c4Sopenharmony_ci# # e_phnum = PN_XNUM 45da0c48c4Sopenharmony_ci# 0xFFFF, 46da0c48c4Sopenharmony_ci# # e_shentsize 47da0c48c4Sopenharmony_ci# 64, 48da0c48c4Sopenharmony_ci# # e_shnum 49da0c48c4Sopenharmony_ci# 1, 50da0c48c4Sopenharmony_ci# # e_shstrndx 51da0c48c4Sopenharmony_ci# 0, 52da0c48c4Sopenharmony_ci# ) 53da0c48c4Sopenharmony_ci# ) 54da0c48c4Sopenharmony_ci# 55da0c48c4Sopenharmony_ci# sys.stdout.buffer.write( 56da0c48c4Sopenharmony_ci# struct.pack( 57da0c48c4Sopenharmony_ci# "<IIQQQQIIQQ", 58da0c48c4Sopenharmony_ci# # sh_name 59da0c48c4Sopenharmony_ci# 0, 60da0c48c4Sopenharmony_ci# # sh_type = SHT_NULL 61da0c48c4Sopenharmony_ci# 0, 62da0c48c4Sopenharmony_ci# # sh_flags 63da0c48c4Sopenharmony_ci# 0, 64da0c48c4Sopenharmony_ci# # sh_addr 65da0c48c4Sopenharmony_ci# 0, 66da0c48c4Sopenharmony_ci# # sh_offset 67da0c48c4Sopenharmony_ci# 0, 68da0c48c4Sopenharmony_ci# # sh_size 69da0c48c4Sopenharmony_ci# 0, 70da0c48c4Sopenharmony_ci# # sh_link 71da0c48c4Sopenharmony_ci# 0, 72da0c48c4Sopenharmony_ci# # sh_info 73da0c48c4Sopenharmony_ci# phnum, 74da0c48c4Sopenharmony_ci# # sh_addralign 75da0c48c4Sopenharmony_ci# 0, 76da0c48c4Sopenharmony_ci# # sh_entsize 77da0c48c4Sopenharmony_ci# 0, 78da0c48c4Sopenharmony_ci# ) 79da0c48c4Sopenharmony_ci# ) 80da0c48c4Sopenharmony_ci# 81da0c48c4Sopenharmony_ci# for i in range(phnum): 82da0c48c4Sopenharmony_ci# sys.stdout.buffer.write( 83da0c48c4Sopenharmony_ci# struct.pack( 84da0c48c4Sopenharmony_ci# "<IIQQQQQQ", 85da0c48c4Sopenharmony_ci# # p_type = PT_LOAD 86da0c48c4Sopenharmony_ci# 1, 87da0c48c4Sopenharmony_ci# # p_flags = PF_X|PF_W|PF_R 88da0c48c4Sopenharmony_ci# 0x7, 89da0c48c4Sopenharmony_ci# # p_offset 90da0c48c4Sopenharmony_ci# 0, 91da0c48c4Sopenharmony_ci# # p_vaddr 92da0c48c4Sopenharmony_ci# # i * 4096, 93da0c48c4Sopenharmony_ci# 4096, 94da0c48c4Sopenharmony_ci# # p_paddr 95da0c48c4Sopenharmony_ci# 0, 96da0c48c4Sopenharmony_ci# # p_filesz 97da0c48c4Sopenharmony_ci# 0, 98da0c48c4Sopenharmony_ci# # p_memsz 99da0c48c4Sopenharmony_ci# 4096, 100da0c48c4Sopenharmony_ci# # p_align 101da0c48c4Sopenharmony_ci# 0, 102da0c48c4Sopenharmony_ci# ) 103da0c48c4Sopenharmony_ci# ) 104da0c48c4Sopenharmony_ci 105da0c48c4Sopenharmony_ci. $srcdir/test-subr.sh 106da0c48c4Sopenharmony_ci 107da0c48c4Sopenharmony_citestfiles testfile-phdrs.elf 108da0c48c4Sopenharmony_ci 109da0c48c4Sopenharmony_citestrun_compare ${abs_top_builddir}/src/readelf -h testfile-phdrs.elf<<\EOF 110da0c48c4Sopenharmony_ciELF Header: 111da0c48c4Sopenharmony_ci Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 112da0c48c4Sopenharmony_ci Class: ELF64 113da0c48c4Sopenharmony_ci Data: 2's complement, little endian 114da0c48c4Sopenharmony_ci Ident Version: 1 (current) 115da0c48c4Sopenharmony_ci OS/ABI: UNIX - System V 116da0c48c4Sopenharmony_ci ABI Version: 0 117da0c48c4Sopenharmony_ci Type: CORE (Core file) 118da0c48c4Sopenharmony_ci Machine: AMD x86-64 119da0c48c4Sopenharmony_ci Version: 1 (current) 120da0c48c4Sopenharmony_ci Entry point address: 0 121da0c48c4Sopenharmony_ci Start of program headers: 128 (bytes into file) 122da0c48c4Sopenharmony_ci Start of section headers: 64 (bytes into file) 123da0c48c4Sopenharmony_ci Flags: 124da0c48c4Sopenharmony_ci Size of this header: 64 (bytes) 125da0c48c4Sopenharmony_ci Size of program header entries: 56 (bytes) 126da0c48c4Sopenharmony_ci Number of program headers entries: 65535 (66000 in [0].sh_info) 127da0c48c4Sopenharmony_ci Size of section header entries: 64 (bytes) 128da0c48c4Sopenharmony_ci Number of section headers entries: 1 129da0c48c4Sopenharmony_ci Section header string table index: 0 130da0c48c4Sopenharmony_ci 131da0c48c4Sopenharmony_ciEOF 132da0c48c4Sopenharmony_ci 133da0c48c4Sopenharmony_citestrun_compare ${abs_builddir}/getphdrnum testfile-phdrs.elf<<\EOF 134da0c48c4Sopenharmony_ci66000 135da0c48c4Sopenharmony_ciEOF 136da0c48c4Sopenharmony_ci 137da0c48c4Sopenharmony_ciexit 0 138