amd64-linux revamp for compressing shared libraries

Major changes: p_lx_elf.cpp and stub/src/amd64-linux.elf-so*.
(Includes run-time infrastructure for multiple de-compressors.)
	modified:   linker.cpp
	modified:   p_lx_elf.cpp
	modified:   p_lx_elf.h
	modified:   p_unix.cpp
	modified:   p_unix.h
	modified:   stub/Makefile
	modified:   stub/src/amd64-darwin.dylib-entry.S
	modified:   stub/src/amd64-darwin.macho-entry.S
	new file:   stub/src/amd64-expand.S
	modified:   stub/src/amd64-linux.elf-entry.S
	new file:   stub/src/amd64-linux.elf-so_entry.S
	new file:   stub/src/amd64-linux.elf-so_fold.S
	new file:   stub/src/amd64-linux.elf-so_fold.lds
	new file:   stub/src/amd64-linux.elf-so_main.c
	modified:   stub/src/amd64-linux.shlib-init.S
	modified:   stub/src/amd64-win64.pep.S
	modified:   stub/src/arch/amd64/nrv2b_d.S
	modified:   stub/src/arch/amd64/nrv2d_d.S
	modified:   stub/src/arch/amd64/nrv2e_d.S
           plus many generated stub/*.h and stub/tmp/*.bin.dump
This commit is contained in:
John Reiser
2023-01-09 09:39:25 -08:00
committed by Markus F.X.J. Oberhumer
parent 5f3ebc8a7f
commit 26d8e9c4c5
133 changed files with 42126 additions and 48117 deletions
+41 -41
View File
@@ -2,48 +2,48 @@ file format elf32-littlearm
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 LINUX000 00000048 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
1 LINUX010 00000014 00000000 00000000 0000007c 2**0 CONTENTS, RELOC, READONLY
2 LINUX020 0000000c 00000000 00000000 00000090 2**0 CONTENTS, READONLY
3 ctok32.00 00000004 00000000 00000000 0000009c 2**0 CONTENTS, READONLY
4 ctok32.50 00000004 00000000 00000000 000000a0 2**0 CONTENTS, READONLY
5 ctok32.51 00000004 00000000 00000000 000000a4 2**0 CONTENTS, READONLY
6 ctok32.10 00000044 00000000 00000000 000000a8 2**0 CONTENTS, RELOC, READONLY
7 LINUX030 00000000 00000000 00000000 000000ec 2**0 CONTENTS, READONLY
8 NRV2B 000000c4 00000000 00000000 000000ec 2**0 CONTENTS, RELOC, READONLY
9 NRV2D 00000100 00000000 00000000 000001b0 2**0 CONTENTS, RELOC, READONLY
10 NRV2E 00000114 00000000 00000000 000002b0 2**0 CONTENTS, RELOC, READONLY
11 LZMA_ELF00 00000090 00000000 00000000 000003c4 2**0 CONTENTS, RELOC, READONLY
12 LZMA_DEC20 00000938 00000000 00000000 00000454 2**0 CONTENTS, RELOC, READONLY
13 LZMA_DEC10 00000478 00000000 00000000 00000d8c 2**0 CONTENTS, RELOC, READONLY
14 LZMA_DEC30 00000000 00000000 00000000 00001204 2**0 CONTENTS, READONLY
15 UPX1HEAD 00000020 00000000 00000000 00001204 2**0 CONTENTS, READONLY
0 LINUX000 048 0 0 034 2**0 CONTENTS
1 LINUX010 014 0 0 07c 2**0 CONTENTS
2 LINUX020 0c 0 0 090 2**0 CONTENTS
3 ctok32.00 04 0 0 09c 2**0 CONTENTS
4 ctok32.50 04 0 0 0a0 2**0 CONTENTS
5 ctok32.51 04 0 0 0a4 2**0 CONTENTS
6 ctok32.10 044 0 0 0a8 2**0 CONTENTS
7 LINUX030 0 0 0 0ec 2**0 CONTENTS
8 NRV2B 0c4 0 0 0ec 2**0 CONTENTS
9 NRV2D 0100 0 0 01b0 2**0 CONTENTS
10 NRV2E 0114 0 0 02b0 2**0 CONTENTS
11 LZMA_ELF00 090 0 0 03c4 2**0 CONTENTS
12 LZMA_DEC20 0938 0 0 0454 2**0 CONTENTS
13 LZMA_DEC10 0478 0 0 0d8c 2**0 CONTENTS
14 LZMA_DEC30 0 0 0 01204 2**0 CONTENTS
15 UPX1HEAD 020 0 0 01204 2**0 CONTENTS
SYMBOL TABLE:
00000000 l d LINUX000 00000000 LINUX000
00000000 l d ctok32.00 00000000 ctok32.00
00000000 l d ctok32.10 00000000 ctok32.10
00000000 l d LINUX030 00000000 LINUX030
00000000 l d NRV2B 00000000 NRV2B
00000000 l d NRV2D 00000000 NRV2D
00000000 l d NRV2E 00000000 NRV2E
00000000 l d LZMA_ELF00 00000000 LZMA_ELF00
00000000 l d LZMA_DEC20 00000000 LZMA_DEC20
00000000 l d LZMA_DEC10 00000000 LZMA_DEC10
00000000 l d LINUX010 00000000 LINUX010
00000000 l d LINUX020 00000000 LINUX020
00000000 l d ctok32.50 00000000 ctok32.50
00000000 l d ctok32.51 00000000 ctok32.51
00000000 l d LZMA_DEC30 00000000 LZMA_DEC30
00000000 l d UPX1HEAD 00000000 UPX1HEAD
00000000 *UND* 00000000 METHOD
00000000 *UND* 00000000 COMPRESSED_LENGTH
00000000 *UND* 00000000 UNCOMPRESSED_LENGTH
00000000 *UND* 00000000 filter_cto
00000000 *UND* 00000000 filter_id
00000000 g F NRV2B 000000c4 ucl_nrv2b_decompress_8
00000000 g F NRV2D 00000100 ucl_nrv2d_decompress_8
00000000 g F NRV2E 00000114 ucl_nrv2e_decompress_8
00000000 g LZMA_DEC10 00000000 LzmaDecode
00000000 l d LINUX000 0 LINUX000
00000000 l d ctok32.00 0 ctok32.00
00000000 l d ctok32.10 0 ctok32.10
00000000 l d LINUX030 0 LINUX030
00000000 l d NRV2B 0 NRV2B
00000000 l d NRV2D 0 NRV2D
00000000 l d NRV2E 0 NRV2E
00000000 l d LZMA_ELF00 0 LZMA_ELF00
00000000 l d LZMA_DEC20 0 LZMA_DEC20
00000000 l d LZMA_DEC10 0 LZMA_DEC10
00000000 l d LINUX010 0 LINUX010
00000000 l d LINUX020 0 LINUX020
00000000 l d ctok32.50 0 ctok32.50
00000000 l d ctok32.51 0 ctok32.51
00000000 l d LZMA_DEC30 0 LZMA_DEC30
00000000 l d UPX1HEAD 0 UPX1HEAD
00000000 *UND* 0 METHOD
00000000 *UND* 0 COMPRESSED_LENGTH
00000000 *UND* 0 UNCOMPRESSED_LENGTH
00000000 *UND* 0 filter_cto
00000000 *UND* 0 filter_id
00000000 g F NRV2B 0c4 ucl_nrv2b_decompress_8
00000000 g F NRV2D 0100 ucl_nrv2d_decompress_8
00000000 g F NRV2E 0114 ucl_nrv2e_decompress_8
00000000 g LZMA_DEC10 0 LzmaDecode
RELOCATION RECORDS FOR [LINUX000]:
OFFSET TYPE VALUE