arm.v4a works: ELF layout for page holes

modified:   p_lx_elf.cpp
	modified:   stub/src/i386-linux.elf-main.c
	modified:   stub/src/arm.v4a-linux.elf-entry.S
	modified:   stub/src/arm.v4a-linux.elf-fold.S

	modified:   stub/arm.v4a-linux.elf-entry.h
	modified:   stub/arm.v4a-linux.elf-fold.h
	modified:   stub/arm.v5a-linux.elf-entry.h
	modified:   stub/arm.v5a-linux.elf-fold.h
	modified:   stub/armeb.v4a-linux.elf-entry.h
	modified:   stub/armeb.v4a-linux.elf-fold.h
	modified:   stub/i386-linux.elf-fold.h
	modified:   stub/mips.r3000-linux.elf-fold.h
	modified:   stub/mipsel.r3000-linux.elf-fold.h
	modified:   stub/powerpc-linux.elf-fold.h
	modified:   stub/tmp/arm.v4a-linux.elf-entry.bin.dump
	modified:   stub/tmp/arm.v4a-linux.elf-fold.map
	modified:   stub/tmp/arm.v5a-linux.elf-entry.bin.dump
	modified:   stub/tmp/arm.v5a-linux.elf-fold.map
	modified:   stub/tmp/armeb.v4a-linux.elf-entry.bin.dump
	modified:   stub/tmp/armeb.v4a-linux.elf-fold.map
	modified:   stub/tmp/i386-linux.elf-fold.map
	modified:   stub/tmp/mips.r3000-linux.elf-fold.map
	modified:   stub/tmp/mipsel.r3000-linux.elf-fold.map
	modified:   stub/tmp/powerpc-linux.elf-fold.map
This commit is contained in:
John Reiser
2020-05-14 15:10:40 -07:00
committed by Markus F.X.J. Oberhumer
parent b463f24eda
commit 80c27e0822
24 changed files with 3003 additions and 2988 deletions
@@ -13,7 +13,7 @@ Idx Name Size VMA LMA File off Algn Flags
8 LZMA_DEC10 00000478 00000000 00000000 00000d40 2**0 CONTENTS, RELOC, READONLY
9 LZMA_DEC30 00000000 00000000 00000000 000011b8 2**0 CONTENTS, READONLY
10 ELFMAINY 00000000 00000000 00000000 000011b8 2**0 CONTENTS, READONLY
11 ELFMAINZ 00000134 00000000 00000000 000011b8 2**2 CONTENTS, RELOC, READONLY
11 ELFMAINZ 000000f0 00000000 00000000 000011b8 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d NRV2E 00000000 NRV2E
00000000 l d NRV2D 00000000 NRV2D
@@ -35,7 +35,7 @@ SYMBOL TABLE:
00000000 g LZMA_DEC10 00000000 LzmaDecode
00000000 g ELFMAINY 00000000 end_decompress
00000000 *UND* 00000000 O_BINFO
00000134 g ELFMAINZ 00000000 cpr0
000000f0 g ELFMAINZ 00000000 cpr0
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
@@ -249,6 +249,6 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
00000120 R_ARM_PC24 ELFMAINZ
0000012c R_ARM_PC24 ELFMAINZ
00000130 R_ARM_ABS32 O_BINFO
000000dc R_ARM_PC24 ELFMAINZ
000000e8 R_ARM_PC24 ELFMAINZ
000000ec R_ARM_ABS32 O_BINFO
+27 -27
View File
@@ -9,38 +9,38 @@ Linker script and memory map
TARGET(elf32-littlearm)
0x0000000000008080 . = ((0x8000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000008080 0xa44
.text 0x0000000000008080 0xa94
*(.text)
.text 0x0000000000008080 0x2f8 tmp/arm.v4a-linux.elf-fold.o
0x00000000000082c8 munmap
0x00000000000082fc get_sys_munmap
0x00000000000082b0 getpid
0x00000000000082c0 readlink
0x00000000000082e4 mmap
0x00000000000082d8 __clear_cache
0x0000000000008304 mmap_privanon
0x0000000000008290 write
0x0000000000008288 read
0x00000000000082a8 unlink
0x000000000000827c my_bkpt
0x0000000000008284 exit
0x00000000000082b8 brk
0x0000000000008298 open
0x000000000000831c div10
0x00000000000082d0 mprotect
0x00000000000082a0 close
.text 0x0000000000008378 0x74c tmp/arm.v4a-linux.elf-main.o
0x0000000000008398 get_page_mask
0x0000000000008990 upx_main
.text 0x0000000000008080 0x30c tmp/arm.v4a-linux.elf-fold.o
0x00000000000082dc munmap
0x0000000000008310 get_sys_munmap
0x00000000000082c4 getpid
0x00000000000082d4 readlink
0x00000000000082f8 mmap
0x00000000000082ec __clear_cache
0x0000000000008318 mmap_privanon
0x00000000000082a4 write
0x000000000000829c read
0x00000000000082bc unlink
0x0000000000008290 my_bkpt
0x0000000000008298 exit
0x00000000000082cc brk
0x00000000000082ac open
0x0000000000008330 div10
0x00000000000082e4 mprotect
0x00000000000082b4 close
.text 0x000000000000838c 0x788 tmp/arm.v4a-linux.elf-main.o
0x00000000000083ac get_page_mask
0x00000000000089e0 upx_main
*(.data)
.data 0x0000000000008ac4 0x0 tmp/arm.v4a-linux.elf-fold.o
.data 0x0000000000008ac4 0x0 tmp/arm.v4a-linux.elf-main.o
.data 0x0000000000008b14 0x0 tmp/arm.v4a-linux.elf-fold.o
.data 0x0000000000008b14 0x0 tmp/arm.v4a-linux.elf-main.o
.data
.bss 0x0000000000008ac4 0x0
.bss 0x0000000000008ac4 0x0 tmp/arm.v4a-linux.elf-fold.o
.bss 0x0000000000008ac4 0x0 tmp/arm.v4a-linux.elf-main.o
.bss 0x0000000000008b14 0x0
.bss 0x0000000000008b14 0x0 tmp/arm.v4a-linux.elf-fold.o
.bss 0x0000000000008b14 0x0 tmp/arm.v4a-linux.elf-main.o
LOAD tmp/arm.v4a-linux.elf-fold.o
LOAD tmp/arm.v4a-linux.elf-main.o
OUTPUT(tmp/arm.v4a-linux.elf-fold.bin elf32-littlearm)
@@ -13,7 +13,7 @@ Idx Name Size VMA LMA File off Algn Flags
8 LZMA_DEC10 00000478 00000000 00000000 00000d80 2**0 CONTENTS, RELOC, READONLY
9 LZMA_DEC30 00000000 00000000 00000000 000011f8 2**0 CONTENTS, READONLY
10 ELFMAINY 00000000 00000000 00000000 000011f8 2**0 CONTENTS, READONLY
11 ELFMAINZ 0000014c 00000000 00000000 000011f8 2**2 CONTENTS, RELOC, READONLY
11 ELFMAINZ 00000104 00000000 00000000 000011f8 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d NRV2E 00000000 NRV2E
00000000 l d NRV2D 00000000 NRV2D
@@ -35,7 +35,7 @@ SYMBOL TABLE:
00000000 g LZMA_DEC10 00000000 LzmaDecode
00000000 g ELFMAINY 00000000 end_decompress
00000000 *UND* 00000000 O_BINFO
0000014c g ELFMAINZ 00000000 cpr0
00000104 g ELFMAINZ 00000000 cpr0
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
@@ -249,6 +249,6 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
00000138 R_ARM_PC24 ELFMAINZ
00000144 R_ARM_PC24 ELFMAINZ
00000148 R_ARM_ABS32 O_BINFO
000000f0 R_ARM_PC24 ELFMAINZ
000000fc R_ARM_PC24 ELFMAINZ
00000100 R_ARM_ABS32 O_BINFO
+27 -27
View File
@@ -9,38 +9,38 @@ Linker script and memory map
TARGET(elf32-littlearm)
0x0000000000008080 . = ((0x8000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000008080 0xae0
.text 0x0000000000008080 0xb30
*(.text)
.text 0x0000000000008080 0x398 tmp/arm.v5a-linux.elf-fold.o
0x0000000000008334 munmap
0x000000000000839c get_sys_munmap
0x00000000000082f8 getpid
0x0000000000008320 readlink
0x0000000000008378 mmap
0x000000000000835c __clear_cache
0x00000000000083a4 mmap_privanon
0x00000000000082a8 write
0x0000000000008294 read
0x00000000000082e4 unlink
0x000000000000827c my_bkpt
0x0000000000008284 exit
0x000000000000830c brk
0x00000000000082bc open
0x00000000000083bc div10
0x0000000000008348 mprotect
0x00000000000082d0 close
.text 0x0000000000008418 0x748 tmp/armel-linux.elf-main.o
0x0000000000008438 get_page_mask
0x0000000000008a2c upx_main
.text 0x0000000000008080 0x3ac tmp/arm.v5a-linux.elf-fold.o
0x0000000000008348 munmap
0x00000000000083b0 get_sys_munmap
0x000000000000830c getpid
0x0000000000008334 readlink
0x000000000000838c mmap
0x0000000000008370 __clear_cache
0x00000000000083b8 mmap_privanon
0x00000000000082bc write
0x00000000000082a8 read
0x00000000000082f8 unlink
0x0000000000008290 my_bkpt
0x0000000000008298 exit
0x0000000000008320 brk
0x00000000000082d0 open
0x00000000000083d0 div10
0x000000000000835c mprotect
0x00000000000082e4 close
.text 0x000000000000842c 0x784 tmp/armel-linux.elf-main.o
0x000000000000844c get_page_mask
0x0000000000008a7c upx_main
*(.data)
.data 0x0000000000008b60 0x0 tmp/arm.v5a-linux.elf-fold.o
.data 0x0000000000008b60 0x0 tmp/armel-linux.elf-main.o
.data 0x0000000000008bb0 0x0 tmp/arm.v5a-linux.elf-fold.o
.data 0x0000000000008bb0 0x0 tmp/armel-linux.elf-main.o
.data
.bss 0x0000000000008b60 0x0
.bss 0x0000000000008b60 0x0 tmp/arm.v5a-linux.elf-fold.o
.bss 0x0000000000008b60 0x0 tmp/armel-linux.elf-main.o
.bss 0x0000000000008bb0 0x0
.bss 0x0000000000008bb0 0x0 tmp/arm.v5a-linux.elf-fold.o
.bss 0x0000000000008bb0 0x0 tmp/armel-linux.elf-main.o
LOAD tmp/arm.v5a-linux.elf-fold.o
LOAD tmp/armel-linux.elf-main.o
OUTPUT(tmp/arm.v5a-linux.elf-fold.bin elf32-littlearm)
@@ -13,7 +13,7 @@ Idx Name Size VMA LMA File off Algn Flags
8 LZMA_DEC10 00000478 00000000 00000000 00000d40 2**0 CONTENTS, RELOC, READONLY
9 LZMA_DEC30 00000000 00000000 00000000 000011b8 2**0 CONTENTS, READONLY
10 ELFMAINY 00000000 00000000 00000000 000011b8 2**0 CONTENTS, READONLY
11 ELFMAINZ 00000134 00000000 00000000 000011b8 2**2 CONTENTS, RELOC, READONLY
11 ELFMAINZ 000000f0 00000000 00000000 000011b8 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d NRV2E 00000000 NRV2E
00000000 l d NRV2D 00000000 NRV2D
@@ -35,7 +35,7 @@ SYMBOL TABLE:
00000000 g LZMA_DEC10 00000000 LzmaDecode
00000000 g ELFMAINY 00000000 end_decompress
00000000 *UND* 00000000 O_BINFO
00000134 g ELFMAINZ 00000000 cpr0
000000f0 g ELFMAINZ 00000000 cpr0
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
@@ -249,6 +249,6 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
00000120 R_ARM_PC24 ELFMAINZ
0000012c R_ARM_PC24 ELFMAINZ
00000130 R_ARM_ABS32 O_BINFO
000000dc R_ARM_PC24 ELFMAINZ
000000e8 R_ARM_PC24 ELFMAINZ
000000ec R_ARM_ABS32 O_BINFO
+27 -27
View File
@@ -9,38 +9,38 @@ Linker script and memory map
TARGET(elf32-bigarm)
0x0000000000008080 . = ((0x8000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000008080 0xa44
.text 0x0000000000008080 0xa94
*(.text)
.text 0x0000000000008080 0x2f8 tmp/armeb.v4a-linux.elf-fold.o
0x00000000000082c8 munmap
0x00000000000082fc get_sys_munmap
0x00000000000082b0 getpid
0x00000000000082c0 readlink
0x00000000000082e4 mmap
0x00000000000082d8 __clear_cache
0x0000000000008304 mmap_privanon
0x0000000000008290 write
0x0000000000008288 read
0x00000000000082a8 unlink
0x000000000000827c my_bkpt
0x0000000000008284 exit
0x00000000000082b8 brk
0x0000000000008298 open
0x000000000000831c div10
0x00000000000082d0 mprotect
0x00000000000082a0 close
.text 0x0000000000008378 0x74c tmp/armeb.v4a-linux.elf-main.o
0x0000000000008398 get_page_mask
0x0000000000008990 upx_main
.text 0x0000000000008080 0x30c tmp/armeb.v4a-linux.elf-fold.o
0x00000000000082dc munmap
0x0000000000008310 get_sys_munmap
0x00000000000082c4 getpid
0x00000000000082d4 readlink
0x00000000000082f8 mmap
0x00000000000082ec __clear_cache
0x0000000000008318 mmap_privanon
0x00000000000082a4 write
0x000000000000829c read
0x00000000000082bc unlink
0x0000000000008290 my_bkpt
0x0000000000008298 exit
0x00000000000082cc brk
0x00000000000082ac open
0x0000000000008330 div10
0x00000000000082e4 mprotect
0x00000000000082b4 close
.text 0x000000000000838c 0x788 tmp/armeb.v4a-linux.elf-main.o
0x00000000000083ac get_page_mask
0x00000000000089e0 upx_main
*(.data)
.data 0x0000000000008ac4 0x0 tmp/armeb.v4a-linux.elf-fold.o
.data 0x0000000000008ac4 0x0 tmp/armeb.v4a-linux.elf-main.o
.data 0x0000000000008b14 0x0 tmp/armeb.v4a-linux.elf-fold.o
.data 0x0000000000008b14 0x0 tmp/armeb.v4a-linux.elf-main.o
.data
.bss 0x0000000000008ac4 0x0
.bss 0x0000000000008ac4 0x0 tmp/armeb.v4a-linux.elf-fold.o
.bss 0x0000000000008ac4 0x0 tmp/armeb.v4a-linux.elf-main.o
.bss 0x0000000000008b14 0x0
.bss 0x0000000000008b14 0x0 tmp/armeb.v4a-linux.elf-fold.o
.bss 0x0000000000008b14 0x0 tmp/armeb.v4a-linux.elf-main.o
LOAD tmp/armeb.v4a-linux.elf-fold.o
LOAD tmp/armeb.v4a-linux.elf-main.o
OUTPUT(tmp/armeb.v4a-linux.elf-fold.bin elf32-bigarm)
+9 -9
View File
@@ -9,24 +9,24 @@ Linker script and memory map
TARGET(elf32-i386)
0x0000000000c01080 . = ((0xc01000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000c01080 0x714
.text 0x0000000000c01080 0x744
*(.text)
.text 0x0000000000c01080 0x14c tmp/i386-linux.elf-fold.o
0x0000000000c011a0 mmap
.text 0x0000000000c011cc 0x5c8 tmp/i386-linux.elf-main.o
.text 0x0000000000c011cc 0x5f8 tmp/i386-linux.elf-main.o
0x0000000000c012f4 get_page_mask
0x0000000000c0168a upx_main
0x0000000000c016ba upx_main
*(.data)
.data 0x0000000000c01794 0x0 tmp/i386-linux.elf-fold.o
.data 0x0000000000c01794 0x0 tmp/i386-linux.elf-main.o
.data 0x0000000000c017c4 0x0 tmp/i386-linux.elf-fold.o
.data 0x0000000000c017c4 0x0 tmp/i386-linux.elf-main.o
.data
.bss 0x0000000000c01794 0x0
.bss 0x0000000000c01794 0x0 tmp/i386-linux.elf-fold.o
.bss 0x0000000000c01794 0x0 tmp/i386-linux.elf-main.o
.bss 0x0000000000c017c4 0x0
.bss 0x0000000000c017c4 0x0 tmp/i386-linux.elf-fold.o
.bss 0x0000000000c017c4 0x0 tmp/i386-linux.elf-main.o
.rel.dyn 0x0000000000c01794 0x0
.rel.dyn 0x0000000000c017c4 0x0
.rel.text 0x0000000000000000 0x0 tmp/i386-linux.elf-fold.o
LOAD tmp/i386-linux.elf-fold.o
LOAD tmp/i386-linux.elf-main.o
+8 -8
View File
@@ -9,20 +9,20 @@ Linker script and memory map
TARGET(elf32-bigmips)
0x0000000000100080 . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000100080 0xa50
.text 0x0000000000100080 0xa80
*(.text)
.text 0x0000000000100080 0x170 tmp/mips.r3000-linux.elf-fold.o
.text 0x00000000001001f0 0x8e0 tmp/mips.r3000-linux.elf-main.o
0x0000000000100934 upx_main
.text 0x00000000001001f0 0x910 tmp/mips.r3000-linux.elf-main.o
0x000000000010095c upx_main
*(.data)
.data 0x0000000000100ad0 0x0 tmp/mips.r3000-linux.elf-fold.o
.data 0x0000000000100ad0 0x0 tmp/mips.r3000-linux.elf-main.o
.data 0x0000000000100b00 0x0 tmp/mips.r3000-linux.elf-fold.o
.data 0x0000000000100b00 0x0 tmp/mips.r3000-linux.elf-main.o
.data
.bss 0x0000000000100ad0 0x0
.bss 0x0000000000100ad0 0x0 tmp/mips.r3000-linux.elf-fold.o
.bss 0x0000000000100ad0 0x0 tmp/mips.r3000-linux.elf-main.o
.bss 0x0000000000100b00 0x0
.bss 0x0000000000100b00 0x0 tmp/mips.r3000-linux.elf-fold.o
.bss 0x0000000000100b00 0x0 tmp/mips.r3000-linux.elf-main.o
LOAD tmp/mips.r3000-linux.elf-fold.o
LOAD tmp/mips.r3000-linux.elf-main.o
OUTPUT(tmp/mips.r3000-linux.elf-fold.bin elf32-bigmips)
+8 -8
View File
@@ -9,20 +9,20 @@ Linker script and memory map
TARGET(elf32-littlemips)
0x0000000000100080 . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000100080 0xa50
.text 0x0000000000100080 0xa80
*(.text)
.text 0x0000000000100080 0x170 tmp/mipsel.r3000-linux.elf-fold.o
.text 0x00000000001001f0 0x8e0 tmp/mipsel.r3000-linux.elf-main.o
0x0000000000100934 upx_main
.text 0x00000000001001f0 0x910 tmp/mipsel.r3000-linux.elf-main.o
0x000000000010095c upx_main
*(.data)
.data 0x0000000000100ad0 0x0 tmp/mipsel.r3000-linux.elf-fold.o
.data 0x0000000000100ad0 0x0 tmp/mipsel.r3000-linux.elf-main.o
.data 0x0000000000100b00 0x0 tmp/mipsel.r3000-linux.elf-fold.o
.data 0x0000000000100b00 0x0 tmp/mipsel.r3000-linux.elf-main.o
.data
.bss 0x0000000000100ad0 0x0
.bss 0x0000000000100ad0 0x0 tmp/mipsel.r3000-linux.elf-fold.o
.bss 0x0000000000100ad0 0x0 tmp/mipsel.r3000-linux.elf-main.o
.bss 0x0000000000100b00 0x0
.bss 0x0000000000100b00 0x0 tmp/mipsel.r3000-linux.elf-fold.o
.bss 0x0000000000100b00 0x0 tmp/mipsel.r3000-linux.elf-main.o
LOAD tmp/mipsel.r3000-linux.elf-fold.o
LOAD tmp/mipsel.r3000-linux.elf-main.o
OUTPUT(tmp/mipsel.r3000-linux.elf-fold.bin elf32-littlemips)
+9 -9
View File
@@ -9,7 +9,7 @@ Linker script and memory map
TARGET(elf32-powerpc)
0x0000000000100080 . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000100080 0x1044
.text 0x0000000000100080 0x10c0
*(.text)
.text 0x0000000000100080 0x250 tmp/powerpc-linux.elf-fold.o
0x0000000000100080 get_page_mask
@@ -24,19 +24,19 @@ TARGET(elf32-powerpc)
0x00000000001002a8 open
0x00000000001002b8 mprotect
0x00000000001002b0 close
.text 0x00000000001002d0 0xdf4 tmp/powerpc-linux.elf-main.o
0x0000000000100ec4 upx_main
.text 0x00000000001002d0 0xe70 tmp/powerpc-linux.elf-main.o
0x0000000000100f40 upx_main
*(.data)
.data 0x00000000001010c4 0x0 tmp/powerpc-linux.elf-fold.o
.data 0x00000000001010c4 0x0 tmp/powerpc-linux.elf-main.o
.data 0x0000000000101140 0x0 tmp/powerpc-linux.elf-fold.o
.data 0x0000000000101140 0x0 tmp/powerpc-linux.elf-main.o
.data
.bss 0x00000000001010c4 0x0
.bss 0x00000000001010c4 0x0 tmp/powerpc-linux.elf-fold.o
.bss 0x00000000001010c4 0x0 tmp/powerpc-linux.elf-main.o
.bss 0x0000000000101140 0x0
.bss 0x0000000000101140 0x0 tmp/powerpc-linux.elf-fold.o
.bss 0x0000000000101140 0x0 tmp/powerpc-linux.elf-main.o
.rela.dyn 0x00000000001010c4 0x0
.rela.dyn 0x0000000000101140 0x0
.rela.text 0x0000000000000000 0x0 tmp/powerpc-linux.elf-fold.o
LOAD tmp/powerpc-linux.elf-fold.o
LOAD tmp/powerpc-linux.elf-main.o