arm64 filter, relocation, defineSymbols

modified:   Makefile
	modified:   bele.h
	modified:   filter/ct.h
	modified:   filteri.cpp
	modified:   linker.cpp
	modified:   miniacc.h
	modified:   p_lx_elf.cpp
	modified:   stub/arm64-linux.elf-entry.h
	modified:   stub/src/arm64-linux.elf-entry.S
This commit is contained in:
John Reiser
2017-03-05 21:05:13 -08:00
parent 4089cc6e6f
commit 68a2b91ccb
9 changed files with 142 additions and 95 deletions
+5 -5
View File
@@ -32,8 +32,8 @@
#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 5317
#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0x85fe782d
#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x6307b5a0
#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0x69217770
#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0xb10ced92
unsigned char stub_arm64_linux_elf_entry[5317] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -41,9 +41,9 @@ unsigned char stub_arm64_linux_elf_entry[5317] = {
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 17, 0, 14, 0,
/* 0x0040 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0050 */ 0, 0, 0, 0, 76,255,255, 16,129, 41, 64, 41,139, 53, 65, 41,
/* 0x0060 */ 130, 9, 64,249,107, 1, 12,139, 74, 1, 12,139, 99, 1, 64,185,
/* 0x0070 */ 137, 1, 1,203, 33, 0, 3, 11,224, 3, 2,170, 33, 4, 64,145,
/* 0x0050 */ 0, 0, 0, 0, 0, 0, 32,212, 44,255,255, 16,129, 41, 64, 41,
/* 0x0060 */ 139, 53, 65, 41,107, 1, 12,139, 74, 1, 12,139, 99, 1, 64,185,
/* 0x0070 */ 137, 1, 1,203, 33, 0, 3, 11,128, 9, 64,249, 33, 4, 64,145,
/* 0x0080 */ 3, 0,128, 82, 3, 0,130, 82,224,135,189,169,226, 15, 1,169,
/* 0x0090 */ 237, 19, 0,249,226, 0,128, 82,163, 1, 28, 50, 5, 0,128,210,
/* 0x00a0 */ 4, 0,128, 18,200, 27,128, 82, 1, 0, 0,212,192, 3, 95,214,
+2 -3
View File
@@ -70,7 +70,7 @@ mflg:
.long MFLG // MAP_{PRIVATE|ANONYMOUS} // QNX vs linux
.xword ADRM // dst for map
_start: .globl _start
//// nop; bkpt
brk #0
/* Get some pages: enough
to duplicate the entire compressed PT_LOAD, plus 1 page, located just after
the brk() of the _un_compressed program. The address is pre-calculated
@@ -89,13 +89,12 @@ _start: .globl _start
adr x12,start_params -4 // &sz_pack2
ldp w1,w10,[x12] // w1= sz_pack2; w10= LENF
ldp w11,w13,[x12,#2*4] // w11= CPRO; w13= MFLG
ldr x2,[x12,#4*4] // x2= ADRM
add x11,x11,x12 // cpr0
add x10,x10,x12 // end_decompress
ldr w3,[x11,# sz_unc]
sub x9,x12,x1 // &our_Elf64_Ehdr
add w1,w1,w3 // sz_pack2 + cpr0.sz_unc
mov x0,x2 // ADRM
ldr x0,[x12,#4*4] // ADRM
add x1,x1,# PAGE_SIZE
section LUNMP000
mov w3,#0<<12 // 0-page crumb