Decompression escape hatch for ELF can require a new page.

If not enough room on last page of .text, and ElfXX_Ehdr not PF_X,
then the escape hatch must use a new page.
https://github.com/upx/upx/issues/308
	modified:   ../.github/travis_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/amd64-linux.elf-main.c
	modified:   stub/src/i386-linux.elf-main.c
    Plus stub/*-linux.elf-fold.h and stub/tmp/*-linux.elf-fold.map
This commit is contained in:
John Reiser
2020-01-19 13:25:55 -08:00
parent fdf2eddc73
commit 936013f60c
25 changed files with 1494 additions and 1366 deletions
+10 -10
View File
@@ -8,7 +8,7 @@ Linker script and memory map
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0x7b4
.text 0x00000000001000bc 0x810
*(.text)
.text 0x00000000001000bc 0x189 tmp/amd64-linux.elf-fold.o
0x0000000000100235 munmap
@@ -21,20 +21,20 @@ Linker script and memory map
0x0000000000100239 mprotect
0x000000000010022d close
*fill* 0x0000000000100245 0x3 00
.text 0x0000000000100248 0x627 tmp/amd64-linux.elf-main.o
0x0000000000100727 upx_main
.text 0x0000000000100248 0x683 tmp/amd64-linux.elf-main.o
0x0000000000100783 upx_main
*(.data)
*fill* 0x000000000010086f 0x1 00
.data 0x0000000000100870 0x0 tmp/amd64-linux.elf-fold.o
.data 0x0000000000100870 0x0 tmp/amd64-linux.elf-main.o
*fill* 0x00000000001008cb 0x1 00
.data 0x00000000001008cc 0x0 tmp/amd64-linux.elf-fold.o
.data 0x00000000001008cc 0x0 tmp/amd64-linux.elf-main.o
.data
.bss 0x0000000000100870 0x0
.bss 0x0000000000100870 0x0 tmp/amd64-linux.elf-fold.o
.bss 0x0000000000100870 0x0 tmp/amd64-linux.elf-main.o
.bss 0x00000000001008cc 0x0
.bss 0x00000000001008cc 0x0 tmp/amd64-linux.elf-fold.o
.bss 0x00000000001008cc 0x0 tmp/amd64-linux.elf-main.o
.rela.dyn 0x0000000000100870 0x0
.rela.dyn 0x00000000001008d0 0x0
.rela.text 0x0000000000000000 0x0 tmp/amd64-linux.elf-fold.o
LOAD tmp/amd64-linux.elf-fold.o
LOAD tmp/amd64-linux.elf-main.o
+8 -8
View File
@@ -9,7 +9,7 @@ Linker script and memory map
TARGET(elf32-littlearm)
0x0000000000008080 . = ((0x8000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000008080 0x9dc
.text 0x0000000000008080 0xa44
*(.text)
.text 0x0000000000008080 0x2f8 tmp/arm.v4a-linux.elf-fold.o
0x00000000000082c8 munmap
@@ -29,18 +29,18 @@ TARGET(elf32-littlearm)
0x000000000000831c div10
0x00000000000082d0 mprotect
0x00000000000082a0 close
.text 0x0000000000008378 0x6e4 tmp/arm.v4a-linux.elf-main.o
.text 0x0000000000008378 0x74c tmp/arm.v4a-linux.elf-main.o
0x0000000000008398 get_page_mask
0x0000000000008928 upx_main
0x0000000000008990 upx_main
*(.data)
.data 0x0000000000008a5c 0x0 tmp/arm.v4a-linux.elf-fold.o
.data 0x0000000000008a5c 0x0 tmp/arm.v4a-linux.elf-main.o
.data 0x0000000000008ac4 0x0 tmp/arm.v4a-linux.elf-fold.o
.data 0x0000000000008ac4 0x0 tmp/arm.v4a-linux.elf-main.o
.data
.bss 0x0000000000008a5c 0x0
.bss 0x0000000000008a5c 0x0 tmp/arm.v4a-linux.elf-fold.o
.bss 0x0000000000008a5c 0x0 tmp/arm.v4a-linux.elf-main.o
.bss 0x0000000000008ac4 0x0
.bss 0x0000000000008ac4 0x0 tmp/arm.v4a-linux.elf-fold.o
.bss 0x0000000000008ac4 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)
+8 -8
View File
@@ -9,7 +9,7 @@ Linker script and memory map
TARGET(elf32-littlearm)
0x0000000000008080 . = ((0x8000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000008080 0xa78
.text 0x0000000000008080 0xae0
*(.text)
.text 0x0000000000008080 0x398 tmp/arm.v5a-linux.elf-fold.o
0x0000000000008334 munmap
@@ -29,18 +29,18 @@ TARGET(elf32-littlearm)
0x00000000000083bc div10
0x0000000000008348 mprotect
0x00000000000082d0 close
.text 0x0000000000008418 0x6e0 tmp/armel-linux.elf-main.o
.text 0x0000000000008418 0x748 tmp/armel-linux.elf-main.o
0x0000000000008438 get_page_mask
0x00000000000089c4 upx_main
0x0000000000008a2c upx_main
*(.data)
.data 0x0000000000008af8 0x0 tmp/arm.v5a-linux.elf-fold.o
.data 0x0000000000008af8 0x0 tmp/armel-linux.elf-main.o
.data 0x0000000000008b60 0x0 tmp/arm.v5a-linux.elf-fold.o
.data 0x0000000000008b60 0x0 tmp/armel-linux.elf-main.o
.data
.bss 0x0000000000008af8 0x0
.bss 0x0000000000008af8 0x0 tmp/arm.v5a-linux.elf-fold.o
.bss 0x0000000000008af8 0x0 tmp/armel-linux.elf-main.o
.bss 0x0000000000008b60 0x0
.bss 0x0000000000008b60 0x0 tmp/arm.v5a-linux.elf-fold.o
.bss 0x0000000000008b60 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)
+14 -14
View File
@@ -8,7 +8,7 @@ Linker script and memory map
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0x928
.text 0x00000000001000bc 0x974
*(.text)
.text 0x00000000001000bc 0x238 tmp/arm64-linux.elf-fold.o
0x0000000000100228 my_bkpt
@@ -26,26 +26,26 @@ Linker script and memory map
0x00000000001002bc readlink
0x00000000001002c4 open
0x00000000001002e0 __clear_cache
.text 0x00000000001002f4 0x6f0 tmp/arm64-linux.elf-main.o
0x000000000010087c upx_main
.text 0x00000000001002f4 0x73c tmp/arm64-linux.elf-main.o
0x00000000001008c8 upx_main
*(.data)
.data 0x00000000001009e4 0x0 tmp/arm64-linux.elf-fold.o
.data 0x00000000001009e4 0x0 tmp/arm64-linux.elf-main.o
.data 0x0000000000100a30 0x0 tmp/arm64-linux.elf-fold.o
.data 0x0000000000100a30 0x0 tmp/arm64-linux.elf-main.o
.iplt 0x00000000001009e4 0x0
.iplt 0x00000000001009e4 0x0 tmp/arm64-linux.elf-fold.o
.iplt 0x0000000000100a30 0x0
.iplt 0x0000000000100a30 0x0 tmp/arm64-linux.elf-fold.o
.rela.dyn 0x00000000001009e8 0x0
.rela.iplt 0x00000000001009e8 0x0 tmp/arm64-linux.elf-fold.o
.rela.dyn 0x0000000000100a30 0x0
.rela.iplt 0x0000000000100a30 0x0 tmp/arm64-linux.elf-fold.o
.data
LOAD tmp/arm64-linux.elf-fold.o
LOAD tmp/arm64-linux.elf-main.o
OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64)
.igot.plt 0x00000000001009e8 0x0
.igot.plt 0x00000000001009e8 0x0 tmp/arm64-linux.elf-fold.o
.igot.plt 0x0000000000100a30 0x0
.igot.plt 0x0000000000100a30 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x00000000001009e4 0x0
.bss 0x00000000001009e4 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x00000000001009e4 0x0 tmp/arm64-linux.elf-main.o
.bss 0x0000000000100a30 0x0
.bss 0x0000000000100a30 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x0000000000100a30 0x0 tmp/arm64-linux.elf-main.o
+8 -8
View File
@@ -9,7 +9,7 @@ Linker script and memory map
TARGET(elf32-bigarm)
0x0000000000008080 . = ((0x8000 + SIZEOF_HEADERS) + 0xc)
.text 0x0000000000008080 0x9dc
.text 0x0000000000008080 0xa44
*(.text)
.text 0x0000000000008080 0x2f8 tmp/armeb.v4a-linux.elf-fold.o
0x00000000000082c8 munmap
@@ -29,18 +29,18 @@ TARGET(elf32-bigarm)
0x000000000000831c div10
0x00000000000082d0 mprotect
0x00000000000082a0 close
.text 0x0000000000008378 0x6e4 tmp/armeb.v4a-linux.elf-main.o
.text 0x0000000000008378 0x74c tmp/armeb.v4a-linux.elf-main.o
0x0000000000008398 get_page_mask
0x0000000000008928 upx_main
0x0000000000008990 upx_main
*(.data)
.data 0x0000000000008a5c 0x0 tmp/armeb.v4a-linux.elf-fold.o
.data 0x0000000000008a5c 0x0 tmp/armeb.v4a-linux.elf-main.o
.data 0x0000000000008ac4 0x0 tmp/armeb.v4a-linux.elf-fold.o
.data 0x0000000000008ac4 0x0 tmp/armeb.v4a-linux.elf-main.o
.data
.bss 0x0000000000008a5c 0x0
.bss 0x0000000000008a5c 0x0 tmp/armeb.v4a-linux.elf-fold.o
.bss 0x0000000000008a5c 0x0 tmp/armeb.v4a-linux.elf-main.o
.bss 0x0000000000008ac4 0x0
.bss 0x0000000000008ac4 0x0 tmp/armeb.v4a-linux.elf-fold.o
.bss 0x0000000000008ac4 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 0x6ac
.text 0x0000000000c01080 0x714
*(.text)
.text 0x0000000000c01080 0x14c tmp/i386-linux.elf-fold.o
0x0000000000c011a0 mmap
.text 0x0000000000c011cc 0x560 tmp/i386-linux.elf-main.o
.text 0x0000000000c011cc 0x5c8 tmp/i386-linux.elf-main.o
0x0000000000c012f4 get_page_mask
0x0000000000c01622 upx_main
0x0000000000c0168a upx_main
*(.data)
.data 0x0000000000c0172c 0x0 tmp/i386-linux.elf-fold.o
.data 0x0000000000c0172c 0x0 tmp/i386-linux.elf-main.o
.data 0x0000000000c01794 0x0 tmp/i386-linux.elf-fold.o
.data 0x0000000000c01794 0x0 tmp/i386-linux.elf-main.o
.data
.bss 0x0000000000c0172c 0x0
.bss 0x0000000000c0172c 0x0 tmp/i386-linux.elf-fold.o
.bss 0x0000000000c0172c 0x0 tmp/i386-linux.elf-main.o
.bss 0x0000000000c01794 0x0
.bss 0x0000000000c01794 0x0 tmp/i386-linux.elf-fold.o
.bss 0x0000000000c01794 0x0 tmp/i386-linux.elf-main.o
.rel.dyn 0x0000000000c0172c 0x0
.rel.dyn 0x0000000000c01794 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 0x9b0
.text 0x0000000000100080 0xa40
*(.text)
.text 0x0000000000100080 0x170 tmp/mips.r3000-linux.elf-fold.o
.text 0x00000000001001f0 0x840 tmp/mips.r3000-linux.elf-main.o
0x0000000000100894 upx_main
.text 0x00000000001001f0 0x8d0 tmp/mips.r3000-linux.elf-main.o
0x0000000000100920 upx_main
*(.data)
.data 0x0000000000100a30 0x0 tmp/mips.r3000-linux.elf-fold.o
.data 0x0000000000100a30 0x0 tmp/mips.r3000-linux.elf-main.o
.data 0x0000000000100ac0 0x0 tmp/mips.r3000-linux.elf-fold.o
.data 0x0000000000100ac0 0x0 tmp/mips.r3000-linux.elf-main.o
.data
.bss 0x0000000000100a30 0x0
.bss 0x0000000000100a30 0x0 tmp/mips.r3000-linux.elf-fold.o
.bss 0x0000000000100a30 0x0 tmp/mips.r3000-linux.elf-main.o
.bss 0x0000000000100ac0 0x0
.bss 0x0000000000100ac0 0x0 tmp/mips.r3000-linux.elf-fold.o
.bss 0x0000000000100ac0 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 0x9b0
.text 0x0000000000100080 0xa40
*(.text)
.text 0x0000000000100080 0x170 tmp/mipsel.r3000-linux.elf-fold.o
.text 0x00000000001001f0 0x840 tmp/mipsel.r3000-linux.elf-main.o
0x0000000000100894 upx_main
.text 0x00000000001001f0 0x8d0 tmp/mipsel.r3000-linux.elf-main.o
0x0000000000100920 upx_main
*(.data)
.data 0x0000000000100a30 0x0 tmp/mipsel.r3000-linux.elf-fold.o
.data 0x0000000000100a30 0x0 tmp/mipsel.r3000-linux.elf-main.o
.data 0x0000000000100ac0 0x0 tmp/mipsel.r3000-linux.elf-fold.o
.data 0x0000000000100ac0 0x0 tmp/mipsel.r3000-linux.elf-main.o
.data
.bss 0x0000000000100a30 0x0
.bss 0x0000000000100a30 0x0 tmp/mipsel.r3000-linux.elf-fold.o
.bss 0x0000000000100a30 0x0 tmp/mipsel.r3000-linux.elf-main.o
.bss 0x0000000000100ac0 0x0
.bss 0x0000000000100ac0 0x0 tmp/mipsel.r3000-linux.elf-fold.o
.bss 0x0000000000100ac0 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 0xfd8
.text 0x0000000000100080 0x1044
*(.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 0xd88 tmp/powerpc-linux.elf-main.o
0x0000000000100e58 upx_main
.text 0x00000000001002d0 0xdf4 tmp/powerpc-linux.elf-main.o
0x0000000000100ec4 upx_main
*(.data)
.data 0x0000000000101058 0x0 tmp/powerpc-linux.elf-fold.o
.data 0x0000000000101058 0x0 tmp/powerpc-linux.elf-main.o
.data 0x00000000001010c4 0x0 tmp/powerpc-linux.elf-fold.o
.data 0x00000000001010c4 0x0 tmp/powerpc-linux.elf-main.o
.data
.bss 0x0000000000101058 0x0
.bss 0x0000000000101058 0x0 tmp/powerpc-linux.elf-fold.o
.bss 0x0000000000101058 0x0 tmp/powerpc-linux.elf-main.o
.bss 0x00000000001010c4 0x0
.bss 0x00000000001010c4 0x0 tmp/powerpc-linux.elf-fold.o
.bss 0x00000000001010c4 0x0 tmp/powerpc-linux.elf-main.o
.rela.dyn 0x0000000000101058 0x0
.rela.dyn 0x00000000001010c4 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
+30 -30
View File
@@ -9,7 +9,7 @@ Linker script and memory map
TARGET(elf64-powerpc)
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0xab4
.text 0x00000000001000bc 0xb04
*(.text)
.text 0x00000000001000bc 0x30c tmp/powerpc64-linux.elf-fold.o
0x00000000001000bc get_page_mask
@@ -23,47 +23,47 @@ TARGET(elf64-powerpc)
0x00000000001003b0 mprotect
0x00000000001003b8 munmap
0x00000000001003c0 my_bkpt
.text 0x00000000001003c8 0x7a8 tmp/powerpc64-linux.elf-main.o
.text 0x00000000001003c8 0x7f8 tmp/powerpc64-linux.elf-main.o
*(.data)
.data 0x0000000000100b70 0x0 tmp/powerpc64-linux.elf-fold.o
.data 0x0000000000100b70 0x0 tmp/powerpc64-linux.elf-main.o
.data 0x0000000000100bc0 0x0 tmp/powerpc64-linux.elf-fold.o
.data 0x0000000000100bc0 0x0 tmp/powerpc64-linux.elf-main.o
.sfpr 0x0000000000100b70 0xa4
.sfpr 0x0000000000100b70 0xa4 linker stubs
0x0000000000100b70 _savegpr0_14
0x0000000000100b98 _savegpr0_24
0x0000000000100ba8 _savegpr0_28
0x0000000000100bc0 _restgpr0_14
0x0000000000100be8 _restgpr0_24
0x0000000000100bf8 _restgpr0_28
.sfpr 0x0000000000100bc0 0xa4
.sfpr 0x0000000000100bc0 0xa4 linker stubs
0x0000000000100bc0 _savegpr0_14
0x0000000000100be8 _savegpr0_24
0x0000000000100bf8 _savegpr0_28
0x0000000000100c10 _restgpr0_14
0x0000000000100c38 _restgpr0_24
0x0000000000100c48 _restgpr0_28
.glink 0x0000000000100c18 0x0
.glink 0x0000000000100c18 0x0 linker stubs
.glink 0x0000000000100c68 0x0
.glink 0x0000000000100c68 0x0 linker stubs
.eh_frame 0x0000000000100c14 0x0
.eh_frame 0x0000000000100c14 0x0 linker stubs
.eh_frame 0x0000000000100c64 0x0
.eh_frame 0x0000000000100c64 0x0 linker stubs
.rela.dyn 0x0000000000100c18 0x0
.rela.iplt 0x0000000000100c18 0x0 linker stubs
.rela.dyn 0x0000000000100c68 0x0
.rela.iplt 0x0000000000100c68 0x0 linker stubs
.data
LOAD tmp/powerpc64-linux.elf-fold.o
LOAD tmp/powerpc64-linux.elf-main.o
OUTPUT(tmp/powerpc64-linux.elf-fold.bin elf64-powerpc)
.branch_lt 0x0000000000100c18 0x0
.branch_lt 0x0000000000100c18 0x0 linker stubs
.branch_lt 0x0000000000100c68 0x0
.branch_lt 0x0000000000100c68 0x0 linker stubs
.toc 0x0000000000100c18 0x0
.toc 0x0000000000100c18 0x0 tmp/powerpc64-linux.elf-main.o
.toc 0x0000000000100c68 0x0
.toc 0x0000000000100c68 0x0 tmp/powerpc64-linux.elf-main.o
.opd 0x0000000000100c18 0x58
.opd 0x0000000000100c18 0x58 tmp/powerpc64-linux.elf-main.o
0x0000000000100c58 upx_main
.opd 0x0000000000100c68 0x58
.opd 0x0000000000100c68 0x58 tmp/powerpc64-linux.elf-main.o
0x0000000000100ca8 upx_main
.iplt 0x0000000000100c70 0x0
.iplt 0x0000000000100c70 0x0 linker stubs
.iplt 0x0000000000100cc0 0x0
.iplt 0x0000000000100cc0 0x0 linker stubs
.bss 0x0000000000100c70 0x0
.bss 0x0000000000100c70 0x0 tmp/powerpc64-linux.elf-fold.o
.bss 0x0000000000100c70 0x0 tmp/powerpc64-linux.elf-main.o
.bss 0x0000000000100cc0 0x0
.bss 0x0000000000100cc0 0x0 tmp/powerpc64-linux.elf-fold.o
.bss 0x0000000000100cc0 0x0 tmp/powerpc64-linux.elf-main.o
+30 -30
View File
@@ -9,7 +9,7 @@ Linker script and memory map
TARGET(elf64-powerpcle)
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0xab0
.text 0x00000000001000bc 0xb00
*(.text)
.text 0x00000000001000bc 0x30c tmp/powerpc64le-linux.elf-fold.o
0x00000000001000bc get_page_mask
@@ -23,47 +23,47 @@ TARGET(elf64-powerpcle)
0x00000000001003b0 mprotect
0x00000000001003b8 munmap
0x00000000001003c0 my_bkpt
.text 0x00000000001003c8 0x7a4 tmp/powerpc64le-linux.elf-main.o
.text 0x00000000001003c8 0x7f4 tmp/powerpc64le-linux.elf-main.o
*(.data)
.data 0x0000000000100b6c 0x0 tmp/powerpc64le-linux.elf-fold.o
.data 0x0000000000100b6c 0x0 tmp/powerpc64le-linux.elf-main.o
.data 0x0000000000100bbc 0x0 tmp/powerpc64le-linux.elf-fold.o
.data 0x0000000000100bbc 0x0 tmp/powerpc64le-linux.elf-main.o
.sfpr 0x0000000000100b6c 0xa4
.sfpr 0x0000000000100b6c 0xa4 linker stubs
0x0000000000100b6c _savegpr0_14
0x0000000000100b94 _savegpr0_24
0x0000000000100ba4 _savegpr0_28
0x0000000000100bbc _restgpr0_14
0x0000000000100be4 _restgpr0_24
0x0000000000100bf4 _restgpr0_28
.sfpr 0x0000000000100bbc 0xa4
.sfpr 0x0000000000100bbc 0xa4 linker stubs
0x0000000000100bbc _savegpr0_14
0x0000000000100be4 _savegpr0_24
0x0000000000100bf4 _savegpr0_28
0x0000000000100c0c _restgpr0_14
0x0000000000100c34 _restgpr0_24
0x0000000000100c44 _restgpr0_28
.glink 0x0000000000100c10 0x0
.glink 0x0000000000100c10 0x0 linker stubs
.glink 0x0000000000100c60 0x0
.glink 0x0000000000100c60 0x0 linker stubs
.eh_frame 0x0000000000100c10 0x0
.eh_frame 0x0000000000100c10 0x0 linker stubs
.eh_frame 0x0000000000100c60 0x0
.eh_frame 0x0000000000100c60 0x0 linker stubs
.rela.dyn 0x0000000000100c10 0x0
.rela.iplt 0x0000000000100c10 0x0 linker stubs
.rela.dyn 0x0000000000100c60 0x0
.rela.iplt 0x0000000000100c60 0x0 linker stubs
.data
LOAD tmp/powerpc64le-linux.elf-fold.o
LOAD tmp/powerpc64le-linux.elf-main.o
OUTPUT(tmp/powerpc64le-linux.elf-fold.bin elf64-powerpcle)
.branch_lt 0x0000000000100c10 0x0
.branch_lt 0x0000000000100c10 0x0 linker stubs
.branch_lt 0x0000000000100c60 0x0
.branch_lt 0x0000000000100c60 0x0 linker stubs
.toc 0x0000000000100c10 0x0
.toc 0x0000000000100c10 0x0 tmp/powerpc64le-linux.elf-main.o
.toc 0x0000000000100c60 0x0
.toc 0x0000000000100c60 0x0 tmp/powerpc64le-linux.elf-main.o
.opd 0x0000000000100c10 0x58
.opd 0x0000000000100c10 0x58 tmp/powerpc64le-linux.elf-main.o
0x0000000000100c50 upx_main
.opd 0x0000000000100c60 0x58
.opd 0x0000000000100c60 0x58 tmp/powerpc64le-linux.elf-main.o
0x0000000000100ca0 upx_main
.iplt 0x0000000000100c68 0x0
.iplt 0x0000000000100c68 0x0 linker stubs
.iplt 0x0000000000100cb8 0x0
.iplt 0x0000000000100cb8 0x0 linker stubs
.bss 0x0000000000100c68 0x0
.bss 0x0000000000100c68 0x0 tmp/powerpc64le-linux.elf-fold.o
.bss 0x0000000000100c68 0x0 tmp/powerpc64le-linux.elf-main.o
.bss 0x0000000000100cb8 0x0
.bss 0x0000000000100cb8 0x0 tmp/powerpc64le-linux.elf-fold.o
.bss 0x0000000000100cb8 0x0 tmp/powerpc64le-linux.elf-main.o