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