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

View File

@ -151,7 +151,7 @@ b8c35fa2956da17ca505956e9f5017bb5f3a746322647e24ccb8ff28059cafa4 *powerpc-linux.
expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\
4c50abad95a6f659bf82ff1b80046ec85ecbe089eb3faa7bc3745ba8b502a04d *amd64-linux.elf/upx-3.91
c1a6ef9d0b8a26f1d6e3307af6f119bc95411a54421c7da3bd6ade9c4eead187 *arm-wince.pe/upx-3.91.exe
660095ec2ba8681eadf4d941860ea6ceded2525f2b28321679b583423e82d15e *armeb-linux.elf/upx-3.91
f8e9a7201a3016b4bbd97c0e468fc69affccc18fc5a71ba70c0aa1d2212f3027 *armeb-linux.elf/upx-3.91
7d5f0fd6f18e4cd16655ef58805f228bcaddd5b035ce998faed446e290aea3d9 *i386-dos32.djgpp2.coff/upx-3.91.exe
f0ad83e018214c26093c0ada70ea0156b63c824a5bdf0ead9120634d67f73cea *i386-linux.elf/upx-3.91
d3cfb5347758ee54e54cfc92ae502a3e19702cd4fec115d74f84f8a5ab7a9bc2 *i386-win32.pe/upx-3.91.exe
@ -162,7 +162,7 @@ a1397350c20b0c2eeae84310a939106688119688bdbc4212af996a8a285c7b8a *powerpc-linux.
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
40d50a15a0d46963407035b95a63d369041f6dfd874a977efac1a808c37c8d57 *amd64-linux.elf/upx-3.91
2bb2477bdf4643954b4bb707b1017459238b03f66883303cd20e9e8740764dd7 *arm-wince.pe/upx-3.91.exe
0e527c96f87f0ec16738c4d2cea8d5da84353019862f479fd19b37ebae16cc8d *armeb-linux.elf/upx-3.91
4dfd0f09628bd76fd1d49a4de1c77e1d17227ca6659a009e987c8d85e93ebe4e *armeb-linux.elf/upx-3.91
c52473f5dbdac560c05d5d173e5342b5e696e604517359baef581672eb25a9e6 *i386-dos32.djgpp2.coff/upx-3.91.exe
89dca0f4252c058767832a4f5021f1c2682ed8b54bf5cd779f0252bc1ea50beb *i386-linux.elf/upx-3.91
5bebadb8455b052580b1f22a949c3eb5a441c8b6ba9c6b50506cb703fc3f65ce *i386-win32.pe/upx-3.91.exe
@ -173,7 +173,7 @@ ef94d8b0e02a650c302bec9f2d50462f2accc2fbb8003cc4977bc550d2e5b9f2 *m68k-atari.tos
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
9a69b0e1984fa8b7f77cb54e2ce07189b23a8840a2e2f8908ed0bcf7d51f32cf *amd64-linux.elf/upx-3.91
0915344e0ee8e7c006e6cce71c024f518e097a88820c7ab3ca183ab1c614ce82 *arm-wince.pe/upx-3.91.exe
bb84af663ce5eed8482506aed30d414edd2d955c98416fbe9202e24f2ca35a43 *armeb-linux.elf/upx-3.91
ea3103c3df4f09ab6f9a720be8c52ce8d3f8540b0ddc33abfbaa3273fcb5bd87 *armeb-linux.elf/upx-3.91
5c5ff78652e76834f3f9ab110c42e3a34ef54c748bce212b0e942049f43f5d4d *i386-dos32.djgpp2.coff/upx-3.91.exe
bc5174b72168fc614245560fc0a0ba1de440fb5b59f56a66c19a6b40d5c4b3b3 *i386-linux.elf/upx-3.91
ef5e25c79d356e9ed0736f34dc5ee7a8f4c66d0c330b8d16672fac7d829b5a7c *i386-win32.pe/upx-3.91.exe
@ -184,7 +184,7 @@ ddd208079ad2fbbcc101baca1f7db3cbd31d88fcceeda5940e11798594672422 *mipsel-linux.e
expected_sha256sums__t140_compress_lzma_2_no_filter="\
f75a024db06d60dd70ab321196847af955c4e812f55439a584ff960bd336ec10 *amd64-linux.elf/upx-3.91
3af2a2346a252dfacefb6209725907b2947dc1ccf5e99af139608354f852507c *arm-wince.pe/upx-3.91.exe
c4d6f8b155d15a84b5403ee1259b819fe3f48d81e90410ef9976129bec2008b5 *armeb-linux.elf/upx-3.91
2fcace545a64bc19e82a18ff16d8b5b106b4f6b3a8e4a318dec00c6a5308ec61 *armeb-linux.elf/upx-3.91
964fb400b0b4a2b1926ce7076610db8c3a8e41807fe030209af1615d43b6a020 *i386-dos32.djgpp2.coff/upx-3.91.exe
828f34977b65e1555688766a6dd20739a66be47ecf69119aaea5f5279ea0fd75 *i386-linux.elf/upx-3.91
171bde9f27a5571b524e9d7cdba6cefa142bb8a0b114c4d5294944ee5781e0bb *i386-win32.pe/upx-3.91.exe
@ -195,7 +195,7 @@ c4d6f8b155d15a84b5403ee1259b819fe3f48d81e90410ef9976129bec2008b5 *armeb-linux.el
expected_sha256sums__t150_compress_ucl_2_all_filters="\
00c002d151486fa4201a8ed85f05e2ea9f7aa13e36253ff7d5ce5b3db5b5438a *amd64-linux.elf/upx-3.91
dc7323e753ce62e6a1c22112f139953dbaa1e5268530479f8ad48e0c54062295 *arm-wince.pe/upx-3.91.exe
90f789f9ab85422df62c82e090b9b39f473a47507af2968b7a2b24da4ef222b8 *armeb-linux.elf/upx-3.91
28bdf621be8b1e6d5c6df647232417d6b3eb3103f94fe5ed1cecb449099f170b *armeb-linux.elf/upx-3.91
8614d93ba30def6866b3be92ae5bdd5f294266e0fc4a26c078682917f127656d *i386-dos32.djgpp2.coff/upx-3.91.exe
7c33a5300d93079e6612229242584c80103a11826e78c0fcf6f8e5047d638c27 *i386-linux.elf/upx-3.91
7c3d7398f63eb9e235992d2d8fd6de9e355f6f21621c45032a6ae6c9009067e6 *i386-win32.pe/upx-3.91.exe
@ -206,7 +206,7 @@ dc7323e753ce62e6a1c22112f139953dbaa1e5268530479f8ad48e0c54062295 *arm-wince.pe/u
expected_sha256sums__t160_compress_all_methods_1_no_filter="\
496d15162a22f677a1e4105925f1334981807c5bf1ae43e7e00e0373f89cd8fe *amd64-linux.elf/upx-3.91
1c9c618741739404f40d198d2fc77010539589379bf260502af9f10f1ec0d05b *arm-wince.pe/upx-3.91.exe
7721fc14b301edf631a599fd187b627b49937dc10f78b8b3821ca05b83fb6cff *armeb-linux.elf/upx-3.91
9650cd1ca32414fc25a85999dde2e927239f2158a9d49e9e99ab88ed1ecd2cef *armeb-linux.elf/upx-3.91
863bbf7f3cf41296987b085a4db8acba372e3d65d8d9c656f9a7276f2e7aa4d3 *i386-dos32.djgpp2.coff/upx-3.91.exe
5f4eb68842b46b9a1c138e5330e588b493d2927e27130be245f6d7aded82ef15 *i386-linux.elf/upx-3.91
4c73a38e81fe12f36dc37e514f8580c12bdf5d8cb92e9a07b7070db291a2f7eb *i386-win32.pe/upx-3.91.exe
@ -217,7 +217,7 @@ f7b0bf04e620bc098fb24f381e92cfb76a6bf38020029f26029ff90acd1a9023 *powerpc-linux.
expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
ffcdbd72b65c94924e51248fc68c2d787798633846af9324719e6f67140e92b1 *amd64-linux.elf/upx-3.91
66653a91c355a1ad1ab7b07c6c20b2d2899d0f42078683d0f4d540df476b1afb *arm-wince.pe/upx-3.91.exe
5d676ae7d3523823379f0d3b5a34e4f6923f7dd7808c008542f10ab11adbfac5 *armeb-linux.elf/upx-3.91
6cbf1744a7bbc16fbf15c197d9d6aaa3599ce3f033bda143e51812ecfa0d0906 *armeb-linux.elf/upx-3.91
490a196fbba4a8f21bfb9ac2a3b92a6dc7e287f255a3ab987f7d29d5a75d8db4 *i386-dos32.djgpp2.coff/upx-3.91.exe
a0630df230ec301d1919d4fb15c66e7a403d17a03dfe4c79cd7835e2eb0d1b19 *i386-linux.elf/upx-3.91
14b192b5419ca0ec2b3f238dc6ed9c17596e82ff2674a299d4b0a76d118a73de *i386-win32.pe/upx-3.91.exe

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

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

View File

@ -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

View File

@ -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

View File

@ -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