1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00
Commit Graph

89 Commits

Author SHA1 Message Date
John Reiser
ca44679bb2 Forgot PEMAIN10
Partial comment-out of conditional expression was confusing:
        /*multipass ? "PEMULTIP" :  */ "",
Should have commented out the whole "?:" argument to addLoader(),
or deleted it entirely.
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_w64pe_amd64.cpp
2025-04-12 08:34:04 -07:00
John Reiser
b676cb20c9 Fix linkage from decompress: to LZMA_ELF00
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/src/amd64-expand.S
	modified:   stub/src/arch/amd64/lzma_d.S
	modified:   stub/src/arm64-linux.elf-entry.S
           plus generated .h .dump .map
2025-04-12 08:34:04 -07:00
John Reiser
f654479924 Fix arm64/v8/lzma_d_cf.S
Another compiler-generated 'ret'-in-the-middle (see i386)
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arch/arm64/v8/Makefile.extra
	new file:   stub/src/arch/arm64/v8/fall-through.sed
	modified:   stub/src/arch/arm64/v8/lzma_d_cf.S
	modified:   stub/src/arch/i386/Makefile.extra
           plus generated .h .map .dump
2025-04-12 08:34:04 -07:00
John Reiser
9c36f02c27 Debug --lzma --small, especially *-hand.S for ELF
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/Makefile
	modified:   stub/src/amd64-darwin.macho-entry.S
	modified:   stub/src/amd64-expand.S
	modified:   stub/src/arch/amd64/lzma_d-amd64-hand.S
	modified:   stub/src/arch/amd64/lzma_d.S
	modified:   stub/src/arch/arm/v4a/lzma_d-arm-hand.S
	modified:   stub/src/arch/arm/v4a/lzma_d_cs.S
	modified:   stub/src/arch/arm64/v8/lzma_d-arm64-hand.S
	modified:   stub/src/arch/arm64/v8/lzma_d.S
	modified:   stub/src/arch/arm64/v8/lzma_d_cs.S
	modified:   stub/src/arch/i386/lzma_d-i386-hand.S
	modified:   stub/src/arch/powerpc/32/lzma_d-ppc32-hand.S
	modified:   stub/src/arch/powerpc/64/lzma_d-ppc64-hand.S
	modified:   stub/src/arch/powerpc/64le/lzma_d-ppc64-hand.S
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/i386-linux.elf-so_fold.S
           plus generated .h .dump
2025-04-12 08:34:04 -07:00
John Reiser
071579b5b6 Cleanup after broken tools
zig/powerpc64le/musl newly undefined openat64; adjacent literal strings
in C source were not concatenated; comment introduced by double slash
did not ignore backslash in rest of line
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/mipsel.r3000-linux.elf-fold.S
	modified:   stub/src/powerpc-linux.elf-entry.S
	modified:   stub/src/powerpc-linux.elf-fold.S
	modified:   stub/src/powerpc64-linux.elf-entry.S
	modified:   stub/src/powerpc64-linux.elf-fold.S
	modified:   stub/src/upxfd_linux.c
2025-03-21 13:25:02 -07:00
John Reiser
ff9d577e46 O_DIRECTORY is architecture-dependent
https://github.com/upx/upx/issues/902
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/src/powerpc64-linux.elf-fold.S
	modified:   stub/src/upxfd_android.c
	modified:   stub/src/upxfd_linux.c
           plus generated .h .map .dump
2025-03-21 10:54:27 -07:00
John Reiser
ff75a462a4 Fighting over .e_shentsize
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
2025-03-18 13:48:19 -07:00
John Reiser
1c5fae74e0 Fix recovery of readlink() when /proc/self/exe is missing
https://github.com/upx/upx/issues/897
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arm.v4a-linux.elf-fold.S
           plus generated .h
2025-03-16 12:37:57 -07:00
John Reiser
6f650ca16f mips memfd_create() and syscall error handling
https://github.com/upx/upx/issues/895
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/mipsel.r3000-linux.elf-entry.S
	modified:   stub/src/mipsel.r3000-linux.elf-fold.S
           plus generated .h .dump .map
2025-03-13 08:07:26 -07:00
John Reiser
903ca50391 Workaround valgrind-3.24.0 botch of 'notrack' on i386
https://github.com/upx/upx/issues/890
	modified:   stub/src/i386-linux.elf-fold.S
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
           plus generated .h .map
2025-03-02 14:30:50 -08:00
John Reiser
70f1ab8cb7 Nice message for ancient Linux lacking memfd_create
... or O_TMPFILE for recovery using /dev/shm
https://github.com/upx/upx/issues/889
	modified:   stub/src/upxfd_linux.c
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
           plus generated  .h  .map  .dump
2025-03-02 11:46:17 -08:00
Markus F.X.J. Oberhumer
84a0347df1 testsuite: update checksums caused by version bump 2025-02-21 00:12:41 +01:00
John Reiser
c0bf7bf9ab Old powerpc* kernels lack MFD_EXEC
For example: Debian 3.16.43-2+deb8u5 (2017-09-19)
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/Makefile
	modified:   stub/src/powerpc-linux.elf-entry.S
	modified:   stub/src/powerpc-linux.elf-fold.S
	modified:   stub/src/powerpc64-linux.elf-entry.S
	modified:   stub/src/powerpc64-linux.elf-fold.S
           plus generated .h, .dump, .map
2025-02-16 15:33:58 -08:00
John Reiser
8c9e04daaf Propagate .e_ident[EI_ABIVERSION]
Linux on bare metal (and explicit qemu) seems not to care,
but qemu-user-binfmt gives ENOEXEC (Exec format error)
        https://github.com/upx/upx/issues/876
2025-02-07 19:24:46 -08:00
Markus F.X.J. Oberhumer
2edf91d315 testsuite: update checksums caused by version bump 2025-01-17 22:06:55 +01:00
John Reiser
f6e3df69eb stub/amd64-win64.pe.h matches upx-v4.2.4
so that anti-virus checkers of apps for 64-bit Windows that are newly-
compressed by upx should not complain about new matches with malware.
This costs a few bytes and a small fraction of cycles in NRV2
de-compressors, but is considered to be a tolerable concession
to the cesspool environment of software for Microsoft Windows.
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_w64pe_amd64.cpp   see code comments
	modified:   stub/amd64-win64.pe.h
	modified:   stub/src/arch/amd64/lzma_d.S   see code comments
	modified:   stub/src/arch/amd64/nrv2b_d.S
	modified:   stub/src/arch/amd64/nrv2d_d.S
	modified:   stub/src/arch/amd64/nrv2e_d.S
	modified:   stub/tmp/amd64-win64.pe.bin.dump
2025-01-02 11:47:34 -08:00
John Reiser
1a6c1f0589 Fix unpackExtent() of non-compressible extent (PT_LOAD)
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/amd64-darwin.macho-main.c
	modified:   stub/src/amd64-darwin.macho-upxmain.c
	modified:   stub/src/amd64-linux.elf-main.c
	modified:   stub/src/amd64-linux.elf-main2.c
	modified:   stub/src/amd64-linux.elf-so_entry.S
	modified:   stub/src/amd64-linux.elf-so_main.c
	modified:   stub/src/i386-bsd.elf-main.c
	modified:   stub/src/i386-darwin.macho-main.c
	modified:   stub/src/i386-darwin.macho-upxmain.c
	modified:   stub/src/i386-linux.elf-main.c
	modified:   stub/src/i386-linux.elf-main2.c
	modified:   stub/src/i386-linux.elf-so_main.c
	modified:   stub/src/i386-linux.elf.interp-main.c
	modified:   stub/src/i386-linux.elf.shell-main.c
	modified:   stub/src/i386-openbsd.elf-main.c
	modified:   stub/src/powerpc-darwin.macho-main.c
	modified:   stub/src/powerpc-darwin.macho-upxmain.c
	modified:   stub/src/powerpc64-darwin.macho-main.c
            plus generated *.h  *.map  *.dump
2024-12-30 16:49:31 -08:00
John Reiser
e3e5d8a3a5 Try again for Android Elfxx_Shdr
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   p_lx_elf.h
	modified:   p_unix.cpp
2024-12-23 11:20:26 -08:00
John Reiser
d4deb2a100 Psync: msync demands page-aligned first argument
modified:   misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   src/stub/src/amd64-linux.elf-fold.S
	modified:   src/stub/src/amd64-linux.elf-main2.c
	modified:   src/stub/src/amd64-linux.elf-so_fold.S
	modified:   src/stub/src/amd64-linux.elf-so_main.c
	modified:   src/stub/src/arm.v4a-linux.elf-entry.S
	modified:   src/stub/src/arm.v4a-linux.elf-fold.S
	modified:   src/stub/src/arm.v4a-linux.elf-so_fold.S
	modified:   src/stub/src/arm64-linux.elf-fold.S
	modified:   src/stub/src/arm64-linux.elf-so_fold.S
	modified:   src/stub/src/i386-linux.elf-fold.S
	modified:   src/stub/src/i386-linux.elf-main2.c
	modified:   src/stub/src/i386-linux.elf-so_entry.S
	modified:   src/stub/src/i386-linux.elf-so_fold.S
	modified:   src/stub/src/i386-linux.elf-so_main.c
	modified:   src/stub/src/mipsel.r3000-linux.elf-fold.S
	modified:   src/stub/src/powerpc-linux.elf-fold.S
	modified:   src/stub/src/powerpc64-linux.elf-fold.S
            plus stubs *.h *.dump *.map
2024-12-12 10:50:30 -08:00
John Reiser
f60d8f6d18 Fix MIPS stubs
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/Makefile
	modified:   stub/mips.r3000-linux.elf-entry.h
	modified:   stub/mipsel.r3000-linux.elf-entry.h
	modified:   stub/tmp/mips.r3000-linux.elf-entry.bin.dump
	modified:   stub/tmp/mips.r3000-linux.elf-fold.map
	modified:   stub/tmp/mipsel.r3000-linux.elf-entry.bin.dump
	modified:   stub/tmp/mipsel.r3000-linux.elf-fold.map
2024-12-09 14:26:00 -08:00
John Reiser
d3300e9564 Sync stubs
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/arm.v4a-linux.elf-entry.h
	modified:   stub/arm.v5a-linux.elf-entry.h
	modified:   stub/armeb.v4a-linux.elf-entry.h
	modified:   stub/mips.r3000-linux.elf-entry.h
	modified:   stub/mips.r3000-linux.elf-fold.h
	modified:   stub/mipsel.r3000-linux.elf-entry.h
	modified:   stub/mipsel.r3000-linux.elf-fold.h
	modified:   stub/tmp/arm.v4a-linux.elf-entry.bin.dump
	modified:   stub/tmp/arm.v5a-linux.elf-entry.bin.dump
	modified:   stub/tmp/armeb.v4a-linux.elf-entry.bin.dump
2024-12-09 13:33:21 -08:00
John Reiser
8c594de432 Sync stubs
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/arm.v4a-linux.elf-entry.h
	modified:   stub/arm.v4a-linux.elf-fold.h
	modified:   stub/arm.v4a-linux.elf-so_entry.h
	modified:   stub/arm.v4a-linux.elf-so_fold.h
	modified:   stub/arm.v5a-linux.elf-entry.h
	modified:   stub/arm.v5a-linux.elf-fold.h
	modified:   stub/arm.v5a-linux.elf-so_entry.h
	modified:   stub/arm.v5a-linux.elf-so_fold.h
	modified:   stub/arm64-linux.elf-so_entry.h
	modified:   stub/armeb.v4a-linux.elf-entry.h
	modified:   stub/armeb.v4a-linux.elf-fold.h
	modified:   stub/i386-linux.elf-entry.h
	modified:   stub/i386-linux.elf-fold.h
	modified:   stub/i386-linux.elf-so_entry.h
	modified:   stub/i386-linux.elf-so_fold.h
	modified:   stub/mips.r3000-linux.elf-entry.h
	modified:   stub/mips.r3000-linux.elf-fold.h
	modified:   stub/mipsel.r3000-linux.elf-entry.h
	modified:   stub/mipsel.r3000-linux.elf-fold.h
	modified:   stub/powerpc-linux.elf-fold.h
            plus *.dump *.map
2024-12-05 11:08:41 -08:00
John Reiser
27de5f42bb Sync stubs
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/amd64-linux.elf-entry.h
	modified:   stub/amd64-linux.elf-fold.h
	modified:   stub/amd64-linux.elf-so_entry.h
	modified:   stub/amd64-linux.elf-so_fold.h
	modified:   stub/arm.v4a-linux.elf-entry.h
	modified:   stub/arm.v4a-linux.elf-fold.h
	modified:   stub/arm.v4a-linux.elf-so_entry.h
	modified:   stub/arm.v5a-linux.elf-entry.h
	modified:   stub/arm.v5a-linux.elf-fold.h
	modified:   stub/arm.v5a-linux.elf-so_entry.h
	modified:   stub/arm64-linux.elf-entry.h
	modified:   stub/arm64-linux.elf-fold.h
	modified:   stub/arm64-linux.elf-so_fold.h
	modified:   stub/armeb.v4a-linux.elf-entry.h
	modified:   stub/armeb.v4a-linux.elf-fold.h
	modified:   stub/i386-linux.elf-entry.h
	modified:   stub/i386-linux.elf-fold.h
	modified:   stub/mips.r3000-linux.elf-entry.h
	modified:   stub/mips.r3000-linux.elf-fold.h
	modified:   stub/mipsel.r3000-linux.elf-entry.h
	modified:   stub/mipsel.r3000-linux.elf-fold.h
	modified:   stub/powerpc-linux.elf-fold.h
	modified:   stub/powerpc64-linux.elf-fold.h
	modified:   stub/powerpc64le-linux.elf-fold.h
            also *.dump, *.map
2024-12-03 11:52:13 -08:00
John Reiser
566c1eebd2 sync stubs
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/amd64-linux.elf-fold.h
	modified:   stub/arm.v4a-linux.elf-fold.h
	modified:   stub/arm.v5a-linux.elf-fold.h
	modified:   stub/arm64-linux.elf-fold.h
	modified:   stub/armeb.v4a-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/powerpc64-linux.elf-fold.h
	modified:   stub/powerpc64le-linux.elf-fold.h
	modified:   stub/tmp/amd64-linux.elf-fold.map
	modified:   stub/tmp/arm.v4a-linux.elf-fold.map
	modified:   stub/tmp/arm.v5a-linux.elf-fold.map
	modified:   stub/tmp/arm64-linux.elf-fold.map
	modified:   stub/tmp/armeb.v4a-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
	modified:   stub/tmp/powerpc64-linux.elf-fold.map
	modified:   stub/tmp/powerpc64le-linux.elf-fold.map
2024-11-21 11:20:32 -08:00
John Reiser
00706f0ccc Sync stubs ("make testsuite" passes)
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/arm.v4a-linux.elf-entry.h
	modified:   stub/arm.v4a-linux.elf-fold.h
	modified:   stub/arm.v4a-linux.elf-so_entry.h
	modified:   stub/arm.v4a-linux.elf-so_fold.h
	modified:   stub/arm.v5a-linux.elf-entry.h
	modified:   stub/arm.v5a-linux.elf-fold.h
	modified:   stub/arm.v5a-linux.elf-so_entry.h
	modified:   stub/arm.v5a-linux.elf-so_fold.h
	modified:   stub/arm64-linux.elf-fold.h
	modified:   stub/armeb.v4a-linux.elf-entry.h
	modified:   stub/armeb.v4a-linux.elf-fold.h
	modified:   stub/i386-bsd.elf-fold.h
	modified:   stub/i386-bsd.elf.execve-fold.h
	modified:   stub/i386-darwin.macho-entry.h
	modified:   stub/i386-linux.elf-entry.h
	modified:   stub/i386-linux.elf-fold.h
	modified:   stub/i386-linux.elf-so_entry.h
	modified:   stub/i386-linux.elf-so_fold.h
	modified:   stub/i386-linux.elf.execve-fold.h
	modified:   stub/i386-linux.elf.interp-fold.h
	modified:   stub/i386-linux.elf.shell-fold.h
	modified:   stub/i386-netbsd.elf-fold.h
	modified:   stub/i386-openbsd.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/powerpc64-linux.elf-fold.h
	modified:   stub/powerpc64le-linux.elf-fold.h
	deleted:    stub/src/upxfd_create.c
	modified:   stub/tmp/amd64-linux.elf-fold.map
	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/arm64-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-bsd.elf-fold.map
	modified:   stub/tmp/i386-bsd.elf.execve-fold.map
	modified:   stub/tmp/i386-darwin.macho-entry.bin.dump
	modified:   stub/tmp/i386-linux.elf-entry.bin.dump
	modified:   stub/tmp/i386-linux.elf-fold.map
	modified:   stub/tmp/i386-linux.elf.execve-fold.map
	modified:   stub/tmp/i386-linux.elf.interp-fold.map
	modified:   stub/tmp/i386-linux.elf.shell-fold.map
	modified:   stub/tmp/i386-netbsd.elf-fold.map
	modified:   stub/tmp/i386-openbsd.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
	modified:   stub/tmp/powerpc64-linux.elf-fold.map
	modified:   stub/tmp/powerpc64le-linux.elf-fold.map
2024-11-19 08:55:31 -08:00
John Reiser
3403b87cb7 More Control Flow Integrity (Intel)
More ENDBRxx for CALL *%RDX for 'getbit'.
amd64: LEA xxx(%rip),%reg and STRCON section,
    instead of CALL; .asciz "..."; POP %reg
(Not for PE due to WINDOWS_BACK binary compatibility.)
i386 string constants still use call-.asciz-pop because no (%rip)
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/src/amd64-linux.elf-entry.S
	modified:   stub/src/amd64-linux.elf-main2.c
	modified:   stub/src/amd64-linux.elf-so_entry.S
	modified:   stub/src/amd64-linux.shlib-init.S
	modified:   stub/src/amd64-win64.pe.S
	modified:   stub/src/i386-linux.elf-entry.S
	modified:   stub/src/i386-linux.elf-so_entry.S
	modified:   stub/src/upxfd_android.c
           plus generated *.h *.map *.dump
2024-09-20 14:48:30 -07:00
John Reiser
d55fdf2205 ZIG_DIST_VERSION of 2024-09-17
also https://github.com/upx/upx/issues/847

	modified:   ../.github/workflows/ci.yml
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/src/amd64-linux.elf-entry.S
	modified:   stub/src/amd64-linux.elf-main2.c
	modified:   stub/src/i386-darwin.macho-entry.S
           plus generated *.h *.map *.dump
2024-09-17 01:55:08 -07:00
John Reiser
8065eebca3 --android-shlib for arm32 and i386
... including work-around if no memfd_create() on early Android 32-bit
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_elf_enum.h
	modified:   p_lx_elf.cpp
	modified:   stub/src/arm.v4a-linux.elf-so_entry.S
	modified:   stub/src/arm.v4a-linux.elf-so_fold.S
	modified:   stub/src/i386-linux.elf-so_main.c
	modified:   stub/src/upxfd_android.c
           plus generated *.h *.dump *.map
2024-08-25 15:16:29 -07:00
John Reiser
5d5f4d1765 Elf2: Android on ARM 64-bit and 32-bit main program runs
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/src/upxfd_android.c
           plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
ed0665407a More: prefer movzbl over movb fetch to register
Avoids hardware failure of writing 0x00 instead of the fetched byte.
1 cycle faster, 1 byte larger (but often recouped later when OR of 32-bits).
Avoid changing win*pe.S for now.

	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/amd64-darwin.dylib-entry.S
	modified:   stub/src/amd64-darwin.macho-entry.S
	modified:   stub/src/amd64-expand.S
	modified:   stub/src/amd64-linux.shlib-init.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
	modified:   stub/src/arch/i386/nrv2b_d32-easy.S
	modified:   stub/src/i386-darwin.macho-entry.S
           plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
ca33d66816 Sync stub checksums; and i386-linux and arm64-linux generated files
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
2024-08-25 15:16:29 -07:00
John Reiser
d71fe3eda0 Sync stub checksums (and generated files)
Many *.h, *.dump, *.map
2024-08-25 15:16:29 -07:00
John Reiser
64419ca4f4 Sync checksums from testsuite (i386 and powerpc64le)
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
2024-08-25 15:16:29 -07:00
John Reiser
22717c15af sync checksums after podman rebuild
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
2024-08-25 15:16:29 -07:00
John Reiser
ea2a190bd1 ELF2 main programs pass src/testsuite and upx-testsuite-v2
Decompressing lzma required many adjustments.
Backwards compatibility probably is broken for
    stub/amd64-win64.pe.h
    stub/arm64-win64.pe.h
Also: shared libraries need memfd_create.
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/Makefile
	modified:   stub/scripts/xstrip.py
	modified:   stub/src/amd64-expand.S
	modified:   stub/src/arch/amd64/lzma_d.S
	modified:   stub/src/arch/arm/v4a/lzma_d.S
	modified:   stub/src/arch/arm/v4t/macros.S
	modified:   stub/src/arch/arm64/v8/lzma_d.S
	modified:   stub/src/arch/powerpc/32/lzma_d.S
	modified:   stub/src/arch/powerpc/64le/lzma_d-common.S
	modified:   stub/src/arm.v4a-expand.S
	modified:   stub/src/arm.v4t-linux.shlib-init.S
	modified:   stub/src/arm64-expand.S
	modified:   stub/src/i386-expand.S
	modified:   stub/src/mips.r3000-expand.S
	modified:   stub/src/powerpc-expand.S
	modified:   stub/src/powerpc-linux.elf-entry.S
	modified:   stub/src/powerpc-linux.elf-fold.S
	modified:   stub/src/powerpc64-expand.S
	modified:   stub/src/powerpc64-linux.elf-entry.S
	modified:   stub/src/powerpc64-linux.elf-fold.S
           plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
d097218a45 mips.r3000, a mips-1 cpu, still has load-delay slots
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/mips.r3000-expand.S
	modified:   stub/src/mipsel.r3000-linux.elf-entry.S
	modified:   stub/src/mipsel.r3000-linux.elf-fold.S
2024-08-25 15:16:29 -07:00
John Reiser
cc87a2c867 ELF2 for mips 32-bit main programs
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/include/linux.h
	modified:   p_lx_elf.cpp
	modified:   stub/Makefile
	modified:   stub/src/arch/mips/r3000/lzma_d.S
	modified:   stub/src/arch/mips/r3000/macros.ash
	modified:   stub/src/arm.v4a-linux.elf-fold.S
	modified:   stub/src/arm.v4a-linux.elf-main2.c
	modified:   stub/src/arm.v4a-linux.elf-so_fold.lds
	modified:   stub/src/arm.v5a-linux.elf-so_fold.lds
	modified:   stub/src/arm64-linux.elf-so_fold.lds
	modified:   stub/src/i386-expand.S
	modified:   stub/src/i386-linux.elf-entry.lds
	modified:   stub/src/i386-linux.elf-main2.c
	modified:   stub/src/i386-linux.elf-so_fold.lds
	new file:   stub/src/mips.r3000-expand.S
	new file:   stub/src/mips.r3000-linux.elf-entry.lds
	modified:   stub/src/mips.r3000-linux.elf-fold.S
	modified:   stub/src/mips.r3000-linux.elf-fold.lds
	new file:   stub/src/mips.r3000-linux.elf-main2.c
	new file:   stub/src/mipsel.r3000-expand.S
	modified:   stub/src/mipsel.r3000-linux.elf-entry.S
	new file:   stub/src/mipsel.r3000-linux.elf-entry.lds
	modified:   stub/src/mipsel.r3000-linux.elf-fold.S
	modified:   stub/src/mipsel.r3000-linux.elf-fold.lds
	new file:   stub/src/mipsel.r3000-linux.elf-main2.c
	modified:   stub/src/mipsel.r3000-linux.shlib-init.S
	modified:   stub/src/powerpc-linux.elf-fold.lds
	modified:   stub/src/upxfd_android.c
           plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
88c94d1cc0 ELF2 for powerpc (32-bit) main programs
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/Makefile
	modified:   stub/src/arch/powerpc/32/macros.S
	modified:   stub/src/i386-linux.elf-main2.c
	new file:   stub/src/powerpc-expand.S
	modified:   stub/src/powerpc-linux.elf-entry.S
	modified:   stub/src/powerpc-linux.elf-fold.S
	modified:   stub/src/powerpc-linux.elf-fold.lds
	new file:   stub/src/powerpc-linux.elf-main2.c
	modified:   stub/src/powerpc64-linux.elf-fold.S
           plus generated *.h *.map *.dump

 interactive rebase in progress; onto ac82d473
 Last commands done (17 commands done):
    pick 1b9ddea5 ELF2 arm32-linux unmap_all_pages
    pick 1f372e54 ELF2 for powerpc (32-bit) main programs
 Next commands to do (10 remaining commands):
    pick 5f5849a9 ELF2 stragglers from stub make
    pick 2ba8b5da ELF2 for mips 32-bit main programs
 You are currently rebasing branch 'jreiser-ELF2' on 'ac82d473'.

 Changes to be committed:
	modified:   misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   src/p_lx_elf.cpp
	modified:   src/stub/Makefile
	modified:   src/stub/powerpc-linux.elf-entry.h
	modified:   src/stub/powerpc-linux.elf-fold.h
	modified:   src/stub/powerpc64-linux.elf-fold.h
	modified:   src/stub/powerpc64le-linux.elf-fold.h
	modified:   src/stub/src/arch/powerpc/32/macros.S
	modified:   src/stub/src/i386-linux.elf-main2.c
	new file:   src/stub/src/powerpc-expand.S
	modified:   src/stub/src/powerpc-linux.elf-entry.S
	modified:   src/stub/src/powerpc-linux.elf-fold.S
	modified:   src/stub/src/powerpc-linux.elf-fold.lds
	new file:   src/stub/src/powerpc-linux.elf-main2.c
	modified:   src/stub/src/powerpc64-linux.elf-fold.S
	modified:   src/stub/tmp/powerpc-linux.elf-entry.bin.dump
	modified:   src/stub/tmp/powerpc-linux.elf-fold.map
	modified:   src/stub/tmp/powerpc64-linux.elf-fold.map
	modified:   src/stub/tmp/powerpc64le-linux.elf-fold.map
2024-08-25 15:16:29 -07:00
John Reiser
6cda0b6016 ELF2 arm32-linux unmap_all_pages
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arm.v4a-linux.elf-entry.S
	modified:   stub/src/arm.v4a-linux.elf-fold.S
	modified:   stub/src/powerpc-linux.elf-entry.S
           plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
66dc1d90d8 ELF2 for arm32
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/Makefile
	modified:   stub/src/arm.v4a-linux.elf-entry.S
	new file:   stub/src/arm.v4a-linux.elf-entry.lds
	modified:   stub/src/arm.v4a-linux.elf-fold.S
	modified:   stub/src/arm.v4a-linux.elf-fold.lds
	new file:   stub/src/arm.v4a-linux.elf-main2.c
	new file:   stub/src/arm.v4a-linux.elf-so_entry.lds
	new file:   stub/src/arm.v5a-linux.elf-entry.lds
	new file:   stub/src/arm.v5a-linux.elf-fold.lds
	new file:   stub/src/arm.v5a-linux.elf-main2.c
	new file:   stub/src/arm.v5a-linux.elf-so_entry.lds
	new file:   stub/src/armeb.v4a-expand.S
	new file:   stub/src/armeb.v4a-linux.elf-entry.lds
	modified:   stub/src/armeb.v4a-linux.elf-fold.lds
	new file:   stub/src/armeb.v4a-linux.elf-main2.c
	new file:   stub/src/armeb.v4a-linux.elf-so_main2.c
	modified:   stub/src/i386-linux.elf-main2.c
           plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
f7cab0cf71 ELF2 for i386-linux main programs
OpenBSD and NetBSD main programs probably need work.
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/Makefile
	modified:   stub/src/i386-linux.elf-entry.S
	new file:   stub/src/i386-linux.elf-entry.lds
	modified:   stub/src/i386-linux.elf-fold.S
	modified:   stub/src/i386-linux.elf-fold.lds
	new file:   stub/src/i386-linux.elf-main2.c
	new file:   stub/src/i386-linux.elf-so_entry.lds
	modified:   stub/src/upxfd_android.c
           plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
31216ed1b2 ELF2: FIx powerpc64* lzma
also follow-ons for https://github.com/upx/upx/issues/834
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/Makefile
	modified:   stub/src/amd64-linux.elf-main2.c
	modified:   stub/src/arch/powerpc/64le/lzma_d-common.S
	modified:   stub/src/arch/powerpc/64le/lzma_d.S
	modified:   stub/src/arch/powerpc/64le/ppc_regs.h
	modified:   stub/src/powerpc64-expand.S
	modified:   stub/src/powerpc64-linux.elf-fold.S
           plus generated *.h *.map *.dump

 interactive rebase in progress; onto ac82d473
 Last commands done (12 commands done):
    pick d6a29e58 CI updates
    pick 821c9dcc ELF2: FIx powerpc64* lzma
 Next commands to do (15 remaining commands):
    pick ad3d6786 Fix pwerpc64 lzma stub
    pick 8389340b ELF2 for i386-linux main programs
 You are currently rebasing branch 'jreiser-ELF2' on 'ac82d473'.

 Changes to be committed:
	modified:   misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   src/stub/powerpc64-linux.elf-fold.h
	modified:   src/stub/powerpc64le-linux.elf-fold.h
2024-08-25 15:16:29 -07:00
John Reiser
e9930bb2bc ELF2: Move section EXP_TAIL to catch case of no matching de-compressor
Also adjust blocksize for large gap (.p_align - .p_filesz)
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/src/amd64-expand.S
	modified:   stub/src/arm64-expand.S
	modified:   stub/src/powerpc64-expand.S
           plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
c8a0540fd2 ELF2: FIx powerpc64* lzma
also follow-ons for https://github.com/upx/upx/issues/834
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/Makefile
	modified:   stub/src/amd64-linux.elf-main2.c
	modified:   stub/src/arch/powerpc/64le/lzma_d-common.S
	modified:   stub/src/arch/powerpc/64le/lzma_d.S
	modified:   stub/src/arch/powerpc/64le/ppc_regs.h
	modified:   stub/src/powerpc64-expand.S
	modified:   stub/src/powerpc64-linux.elf-fold.S
           plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
146c105961 ELF2 for PowerPC64
(MacOS temporarily disabled)
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/Makefile
	modified:   stub/src/arch/powerpc/64/macros.S
	modified:   stub/src/arch/powerpc/64le/bxx.S
	modified:   stub/src/arch/powerpc/64le/macros.S
	modified:   stub/src/arch/powerpc/64le/ppc_regs.h
	new file:   stub/src/dollar-dollar.sed
	modified:   stub/src/powerpc64-linux.elf-entry.S
	modified:   stub/src/powerpc64-linux.elf-fold.S
	modified:   stub/src/powerpc64-linux.elf-fold.lds
	modified:   stub/src/powerpc64le-linux.elf-entry.S
	modified:   stub/src/powerpc64le-linux.elf-fold.S
	modified:   stub/src/powerpc64le-linux.elf-fold.lds
	modified:   stub/src/powerpc64le-linux.kernel.vmlinux.S
           plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
35fca2062e ELF2 arm64: fix exit from lzma de-compressor
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   linker.cpp
	modified:   stub/src/arch/arm64/v8/lzma_d.S
	modified:   stub/src/arm64-expand.S
           plus generated *.h *.map *.dump
2024-08-25 15:16:29 -07:00
John Reiser
2c4e5c7a47 arm64-expand code for nrv* EOF at de-compress is not quite uniform
WINDOWS_BACK requirement also interferes.
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arch/arm64/v8/nrv2d_d32.S
	modified:   stub/src/arch/arm64/v8/nrv2e_d32.S
	modified:   stub/src/arm64-expand.S
           plus generated *.h, *.map
2024-08-25 15:16:29 -07:00
John Reiser
e561da33bd ELF2 64-bits: Use /dev/shm (O_TMPFILE) if memfd_create fails
Such as Ubuntu-20.04, Linux kernel 5.15.0-67, #74-20.04.1, 2023-02-22
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/Makefile
	modified:   stub/src/amd64-linux.elf-entry.S
	modified:   stub/src/amd64-linux.elf-fold.S
	modified:   stub/src/amd64-linux.elf-main2.c
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/src/upxfd_android.c
           plus generated *.h *.map *.dump
2024-08-25 15:16:28 -07:00
John Reiser
5f6bdb0a8f ELF2 for arm64 main programs
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/Makefile
	modified:   stub/src/amd64-expand.S
	modified:   stub/src/amd64-linux.elf-entry.S
	modified:   stub/src/amd64-linux.elf-main2.c
	modified:   stub/src/arch/amd64/lzma_d.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
	modified:   stub/src/arch/arm64/v8/lzma_d.S
	modified:   stub/src/arch/arm64/v8/macros.S
	modified:   stub/src/arch/arm64/v8/nrv2b_d32.S
	modified:   stub/src/arch/arm64/v8/nrv2d_d32.S
	modified:   stub/src/arch/arm64/v8/nrv2e_d32.S
	modified:   stub/src/arm64-expand.S
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/arm64-linux.elf-fold.S
           plus generated *.h *.map *.dump
2024-08-25 15:16:28 -07:00
John Reiser
6276a4a7c4 ELF2 for arm64 main programs
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/Makefile
	modified:   stub/src/amd64-linux.elf-entry.S
	modified:   stub/src/amd64-linux.elf-main2.c
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/src/arm64-linux.elf-fold.lds
	new file:   stub/src/arm64-linux.elf-main2.c
           plus generated *.h *.dump *.map
2024-08-25 15:16:28 -07:00