Adapt around qemu-arm placement of ET_DYN and stack.

modified:   stub/src/arm.v4a-linux.elf-entry.S

	modified:   ../.github/travis_testsuite_1.sh
	plus arm*.elf-entry.h, arm*.elf-entry.bin.dump
This commit is contained in:
John Reiser
2017-09-20 15:23:12 -07:00
parent 02b4a4c974
commit 92527126a8
8 changed files with 1960 additions and 1948 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+11 -3
View File
@@ -146,13 +146,21 @@ unfold: // in: r11= &f_exp; lr= &O_BINFO
addeq r9,r9,r7 @ brk(0)
add r9,r9,#PAGE_SIZE
sub r9,r9,#1
mov r9,r9,lsr #PAGE_SHIFT
mov r9,r9,lsl #PAGE_SHIFT @ ADRU
ldr r8,[lr] @ {fold_begin}.sz_unc
add r6,r6,r9 @ ADRX= O_BINFO + new_base
sub r0,lr,r7 @ &eof - &Elf_Ehdr
add r10,r8,r0 @ .sz_unc + sizeof(this_stub) == LENU
add r10,r10,#2*4 @ 2-instr subr for mflg
sub r0,sp,#8<<20 @ allow 8MB stack (qemu ET_DYN puts below Elf_Ehdr)
cmp r0,#0xf7<<24 @ qemu wants for itself 0xf7000000 and above
movhs r0,#0xf7<<24 @ min(0xf7000000, sp - 8M)
sub r0,r0,r10 @ LENU must fit
cmp r9,r0
movhs r9,r0 @ move below
mov r9,r9,lsr #PAGE_SHIFT @ round down
mov r9,r9,lsl #PAGE_SHIFT @ new ADRU
add r6,r6,r9 @ ADRX= O_BINFO + new_base(==ADRU)
ldr r3,[r11, #mflg - f_exp] // MAP_{PRIVATE|ANON}
sub r11,r11,r7 @ offset(f_exp)
add r11,r11,r9 @ new f_exp
@@ -13,7 +13,7 @@ Idx Name Size VMA LMA File off Algn Flags
8 LZMA_DEC10 00000478 00000000 00000000 00000d48 2**0 CONTENTS, RELOC, READONLY
9 LZMA_DEC30 00000000 00000000 00000000 000011c0 2**0 CONTENTS, READONLY
10 ELFMAINY 00000036 00000000 00000000 000011c0 2**0 CONTENTS, READONLY
11 ELFMAINZ 000000ec 00000000 00000000 000011f6 2**0 CONTENTS, RELOC, READONLY
11 ELFMAINZ 00000104 00000000 00000000 000011f6 2**0 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d NRV2E 00000000 NRV2E
00000000 l d NRV2D 00000000 NRV2D
@@ -38,7 +38,7 @@ SYMBOL TABLE:
00000000 g LZMA_DEC10 00000000 LzmaDecode
00000000 g ELFMAINY 00000000 end_decompress
00000000 *UND* 00000000 O_BINFO
000000ec g ELFMAINZ 00000000 cpr0
00000104 g ELFMAINZ 00000000 cpr0
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
@@ -255,7 +255,7 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
00000074 R_ARM_PC24 ELFMAINY
00000094 R_ARM_PC24 ELFMAINZ
000000e4 R_ARM_PC24 ELFMAINZ
000000e8 R_ARM_ABS32 O_BINFO
0000008c R_ARM_PC24 ELFMAINY
000000ac R_ARM_PC24 ELFMAINZ
000000fc R_ARM_PC24 ELFMAINZ
00000100 R_ARM_ABS32 O_BINFO
@@ -13,7 +13,7 @@ Idx Name Size VMA LMA File off Algn Flags
8 LZMA_DEC10 00000478 00000000 00000000 00000d88 2**0 CONTENTS, RELOC, READONLY
9 LZMA_DEC30 00000000 00000000 00000000 00001200 2**0 CONTENTS, READONLY
10 ELFMAINY 0000003e 00000000 00000000 00001200 2**0 CONTENTS, READONLY
11 ELFMAINZ 000000f0 00000000 00000000 0000123e 2**0 CONTENTS, RELOC, READONLY
11 ELFMAINZ 00000108 00000000 00000000 0000123e 2**0 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d NRV2E 00000000 NRV2E
00000000 l d NRV2D 00000000 NRV2D
@@ -38,7 +38,7 @@ SYMBOL TABLE:
00000000 g LZMA_DEC10 00000000 LzmaDecode
00000000 g ELFMAINY 00000000 end_decompress
00000000 *UND* 00000000 O_BINFO
000000f0 g ELFMAINZ 00000000 cpr0
00000108 g ELFMAINZ 00000000 cpr0
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
@@ -255,7 +255,7 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
00000078 R_ARM_PC24 ELFMAINY
00000098 R_ARM_PC24 ELFMAINZ
000000e8 R_ARM_PC24 ELFMAINZ
000000ec R_ARM_ABS32 O_BINFO
00000090 R_ARM_PC24 ELFMAINY
000000b0 R_ARM_PC24 ELFMAINZ
00000100 R_ARM_PC24 ELFMAINZ
00000104 R_ARM_ABS32 O_BINFO
@@ -13,7 +13,7 @@ Idx Name Size VMA LMA File off Algn Flags
8 LZMA_DEC10 00000478 00000000 00000000 00000d48 2**0 CONTENTS, RELOC, READONLY
9 LZMA_DEC30 00000000 00000000 00000000 000011c0 2**0 CONTENTS, READONLY
10 ELFMAINY 00000036 00000000 00000000 000011c0 2**0 CONTENTS, READONLY
11 ELFMAINZ 000000ec 00000000 00000000 000011f6 2**0 CONTENTS, RELOC, READONLY
11 ELFMAINZ 00000104 00000000 00000000 000011f6 2**0 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d NRV2E 00000000 NRV2E
00000000 l d NRV2D 00000000 NRV2D
@@ -38,7 +38,7 @@ SYMBOL TABLE:
00000000 g LZMA_DEC10 00000000 LzmaDecode
00000000 g ELFMAINY 00000000 end_decompress
00000000 *UND* 00000000 O_BINFO
000000ec g ELFMAINZ 00000000 cpr0
00000104 g ELFMAINZ 00000000 cpr0
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
@@ -255,7 +255,7 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
00000074 R_ARM_PC24 ELFMAINY
00000094 R_ARM_PC24 ELFMAINZ
000000e4 R_ARM_PC24 ELFMAINZ
000000e8 R_ARM_ABS32 O_BINFO
0000008c R_ARM_PC24 ELFMAINY
000000ac R_ARM_PC24 ELFMAINZ
000000fc R_ARM_PC24 ELFMAINZ
00000100 R_ARM_ABS32 O_BINFO