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
John Reiser
5aef158ff0
ELF2: Fix EINVAL when PT_LOAD does not start on page boundary
...
modified: stub/src/amd64-linux.elf-main2.c
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus generated .h .map
2024-08-25 15:16:28 -07:00
John Reiser
4054ac192a
ELF2: memcheck avoids extra safety bytes
...
modified: stub/src/amd64-linux.elf-entry.S
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus generated .h and .dump
2024-08-25 15:16:28 -07:00
John Reiser
c924c32d54
ELF2: fix lzma on amd64-linux.elf-*
...
New -DWINDOWS_BACK so that amd64-win64.pe.h does not change.
This hides a real bug (unchecked), but would change anti-virus status.
modified: src/stub/src/amd64-expand.S
modified: src/stub/src/amd64-linux.elf-entry.S
modified: src/stub/src/amd64-linux.elf-fold.S
modified: src/stub/src/arch/amd64/lzma_d.S
modified: src/stub/Makefile
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus generated *.h, *.map, *.dump
2024-08-25 15:16:28 -07:00
John Reiser
f4585cdf77
Sync stubs
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
2024-08-25 15:16:28 -07:00
Markus F.X.J. Oberhumer
44e4bd0b54
CI updates
2024-08-19 07:55:57 +02:00
Markus F.X.J. Oberhumer
1427b8137a
CI updates
2024-08-13 11:32:29 +02:00
Markus F.X.J. Oberhumer
a9cb354225
CI and cmake updates
2024-08-07 13:37:38 +02:00
Markus F.X.J. Oberhumer
b4db17ab3c
cmake update
2024-07-31 18:56:32 +02:00
Markus F.X.J. Oberhumer
ada9081ea2
CI updates
2024-07-28 18:01:54 +02:00
Markus F.X.J. Oberhumer
d6a29e582f
CI updates
2024-07-25 13:08:15 +02:00
Markus F.X.J. Oberhumer
03c4184067
all: misc cleanups
2024-07-23 12:24:09 +02:00
Markus F.X.J. Oberhumer
0a82280f20
cmake update
2024-07-19 11:13:04 +02:00
Markus F.X.J. Oberhumer
a7fa2f87c5
cmake update
2024-07-17 12:06:41 +02:00
John Reiser
de8de9c0f0
Option --unmap-all-pages completely avoids /proc/self/exe
...
https://github.com/upx/upx/issues/749
2024-06-18 10:18:32 -07:00
John Reiser
cafd9d7ace
Sync stub checksums
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
2024-06-14 14:49:54 -07:00
Markus F.X.J. Oberhumer
3c294d9721
all: minor cleanups
2024-06-14 15:15:55 +02:00
Markus F.X.J. Oberhumer
1aff5f5bb7
all: misc cleanups
2024-06-07 22:29:57 +02:00
Markus F.X.J. Oberhumer
3495d1affd
all: minor cleanups
2024-05-28 10:26:39 +02:00
Markus F.X.J. Oberhumer
43f9b90c92
cmake update
2024-05-24 09:17:37 +02:00
Markus F.X.J. Oberhumer
ed3d7b0c45
all: minor cleanups
2024-05-11 22:07:08 +02:00
Markus F.X.J. Oberhumer
4daa2c1cde
testsuite: update checksums caused by version bump
2024-05-09 12:50:03 +02:00
Markus F.X.J. Oberhumer
7081c57571
all: post-release version bump
2024-05-09 12:44:51 +02:00
Markus F.X.J. Oberhumer
3757579ffc
all: prepare for release
2024-05-09 12:03:12 +02:00
Markus F.X.J. Oberhumer
c04c685469
src: restrict upx::atomic_exchange to pointer-size for now
2024-05-08 23:08:33 +02:00
Markus F.X.J. Oberhumer
42759b94bd
all: more clang-tidy cleanups
2024-05-08 15:12:57 +02:00
Markus F.X.J. Oberhumer
3d82f0cfe1
src: introduce upx::atomic_exchange; cleanups
2024-05-07 10:05:44 +02:00
John Reiser
e5546bc8b0
32-bit ELF escape hatch when no fit on last executable page
...
... about 1/1000 (4/PAGE_SIZE) chance
modified: src/stub/src/i386-linux.elf-main.c
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus all 32-bit elf-fold.h, elf-fold.map
2024-05-06 09:42:13 -07:00
Markus F.X.J. Oberhumer
6fc0a00ac8
all: update for clang-tidy-18
2024-05-06 05:40:22 +02:00
Markus F.X.J. Oberhumer
3e5ba5c064
CI updates
2024-05-05 09:35:35 +02:00
Markus F.X.J. Oberhumer
8506f5b17c
testsuite: update checksums caused by version change
2024-05-02 19:38:46 +02:00
Markus F.X.J. Oberhumer
f0cb30e2b9
all: minor cleanups
2024-05-02 18:50:23 +02:00
Markus F.X.J. Oberhumer
038743c694
CI updates
2024-05-02 03:21:27 +02:00
John Reiser
92c925fe95
New i386/lzma-multi_d.S enables unpacking more than one block
...
Used by p_lx_exe.cpp; others keep old i386/lzma_d.S
which allows only one block, but avoids trouble with
anti-virus utilities for some OS.
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
new file: src/stub/src/arch/i386/lzma-multi_d.S
modified: src/stub/src/arch/i386/lzma_d.S
modified: src/stub/src/i386-bsd.elf.execve-entry.S
modified: src/stub/src/i386-linux.elf.execve-entry.S
plus stub/*.h, *.dump
Notable:
modified: src/stub/i386-dos32.djgpp2.h
modified: src/stub/i386-dos32.tmt.h
modified: src/stub/i386-dos32.watcom.le.h
modified: src/stub/i386-win32.pe.h
2024-05-01 10:09:52 -07:00
John Reiser
4562d5459d
Some non-ELF --lzma stubs assumed only one block, and <= 0.5MiB
...
Fixed for p_lx_exc.cpp; others remain a mystery.
https://github.com/upx/upx/issues/816
2024-05-01 10:09:52 -07:00
Markus F.X.J. Oberhumer
8393ded1b3
CI updates
2024-05-01 13:11:12 +02:00
Markus F.X.J. Oberhumer
b0dc483165
CI updates
2024-04-29 07:53:21 +02:00
Markus F.X.J. Oberhumer
157a63a023
CI updates
2024-04-28 22:18:47 +02:00
Markus F.X.J. Oberhumer
ddf2da3d76
cmake: run tests in parallel; misc/podman: add 30-rebuild-stubs.sh
2024-04-26 10:36:01 +02:00
Markus F.X.J. Oberhumer
aed2c085b8
misc: update mimic_ctest.sh
2024-04-25 10:56:24 +02:00
Markus F.X.J. Oberhumer
a7592b2ca2
all: enhance tests
2024-04-25 03:19:59 +02:00
John Reiser
265c100845
PowerPC64 nrv2d decompressor
...
https://github.com/upx/upx/issues/813
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/src/arch/powerpc/64le/nrv2d_d.S
modified: src/stub/powerpc64-darwin.dylib-entry.h
modified: src/stub/powerpc64-darwin.macho-entry.h
modified: src/stub/powerpc64-linux.elf-entry.h
modified: src/stub/powerpc64le-linux.elf-entry.h
modified: src/stub/powerpc64le-linux.kernel.vmlinux.h
2024-04-24 14:37:09 -07:00
John Reiser
84e8288f61
Propagate yesterday's fix to stub decoding on PowerPC
...
https://github.com/upx/upx/issues/813
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/src/arch/powerpc/32/nrv2d_d.S
modified: src/stub/src/arch/powerpc/32/nrv2e_d.S
modified: src/stub/src/arch/powerpc/64le/nrv2b_d.S
modified: src/stub/src/arch/powerpc/64le/nrv2d_d.S
modified: src/stub/powerpc-darwin.dylib-entry.h
modified: src/stub/powerpc-darwin.macho-entry.h
modified: src/stub/powerpc-linux.elf-entry.h
modified: src/stub/powerpc-linux.kernel.vmlinux.h
modified: src/stub/powerpc64-darwin.dylib-entry.h
modified: src/stub/powerpc64-darwin.macho-entry.h
modified: src/stub/powerpc64-linux.elf-entry.h
modified: src/stub/powerpc64le-linux.elf-entry.h
modified: src/stub/powerpc64le-linux.kernel.vmlinux.h
modified: src/stub/tmp/powerpc-darwin.dylib-entry.bin.dump
modified: src/stub/tmp/powerpc-darwin.macho-entry.bin.dump
modified: src/stub/tmp/powerpc-linux.elf-entry.bin.dump
modified: src/stub/tmp/powerpc-linux.kernel.vmlinux.bin.dump
modified: src/stub/tmp/powerpc64-darwin.dylib-entry.bin.dump
modified: src/stub/tmp/powerpc64-darwin.macho-entry.bin.dump
modified: src/stub/tmp/powerpc64-linux.elf-entry.bin.dump
modified: src/stub/tmp/powerpc64le-linux.elf-entry.bin.dump
modified: src/stub/tmp/powerpc64le-linux.kernel.vmlinux.bin.dump
2024-04-24 10:36:55 -07:00
Markus F.X.J. Oberhumer
c69b4561fb
src: initialize some fields to suppress harmless valgrind errors
2024-04-24 12:36:22 +02:00
John Reiser
6db0af8d04
PowerPC cannot branch on CArry; requires contortions
...
https://github.com/upx/upx/issues/813
modified: src/stub/src/arch/powerpc/32/nrv2b_d.S
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/powerpc-darwin.dylib-entry.h
modified: src/stub/powerpc-darwin.macho-entry.h
modified: src/stub/powerpc-linux.elf-entry.h
modified: src/stub/powerpc-linux.kernel.vmlinux.h
modified: src/stub/src/i386-linux.elf-main.c
modified: src/stub/tmp/powerpc-darwin.dylib-entry.bin.dump
modified: src/stub/tmp/powerpc-darwin.macho-entry.bin.dump
modified: src/stub/tmp/powerpc-linux.elf-entry.bin.dump
modified: src/stub/tmp/powerpc-linux.kernel.vmlinux.bin.dump
2024-04-23 17:40:07 -07:00
Markus F.X.J. Oberhumer
842d2cbb0d
testsuite: update checksums
2024-04-21 19:46:05 -07:00
Markus F.X.J. Oberhumer
9d26713b1a
Add experimental (and undocumented) --help-verbose and --help-short options.
2024-04-21 14:20:18 +02:00
Markus F.X.J. Oberhumer
eb3c55b5cb
all: add more tests
2024-04-21 12:17:38 +02:00
Markus F.X.J. Oberhumer
896596f672
cmake update
2024-04-20 21:08:09 +02:00
Markus F.X.J. Oberhumer
e4de14612f
CI updates
2024-04-20 12:29:32 +02:00
Markus F.X.J. Oberhumer
1d2b276425
all: improve tests
2024-04-16 15:20:56 +02:00
Markus F.X.J. Oberhumer
35c6a200ad
CI updates
2024-04-14 02:15:26 +02:00
Markus F.X.J. Oberhumer
90a7faa15e
CI updates
2024-04-10 10:52:48 +02:00
John Reiser
91f5fe1c0e
arm64 --nrv2d instruction confusion
...
https://github.com/upx/upx/issues/806
ARM Architecture Reference Manual
ARMv8, for ARMv8-A architecture profile
Section C6.2.47, page C6-595 (note the 'invert'!)
CINC <Wd>, <Wn>, <cond>
is equivalent to
CSINC <Wd>, <Wn>, <Wn>, invert(<cond>)
modified: src/stub/src/arch/arm64/v8/nrv2d_d32.S
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/arm64-darwin.macho-entry.h
modified: src/stub/arm64-linux.elf-entry.h
modified: src/stub/arm64-linux.elf-so_fold.h
modified: src/stub/arm64-linux.shlib-init.h
modified: src/stub/arm64-win64.pe.h
2024-04-07 14:01:19 -07:00
John Reiser
d48a7d303d
Sync checksums for testsuite_1 (-release)
...
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
2024-04-06 18:37:34 -07:00
Markus F.X.J. Oberhumer
97cf29ffbb
all: enhance CMake tests; assorted updates
2024-04-06 15:47:46 +02:00
Markus F.X.J. Oberhumer
ed35613d64
misc/podman/rebuild-stubs: upgrade to ubuntu-24.04
2024-04-05 20:04:23 +02:00
Markus F.X.J. Oberhumer
f5ec8363b4
CI updates
2024-04-05 18:16:29 +02:00
Markus F.X.J. Oberhumer
0f9315383c
cmake: only enable UBSAN for clang versions >= 9
2024-04-02 09:21:56 +02:00
Markus F.X.J. Oberhumer
3538d796a7
CI updates
2024-04-02 08:05:43 +02:00
Markus F.X.J. Oberhumer
24f3824524
CI updates and minor cleanups
2024-04-01 20:31:05 +02:00
Markus F.X.J. Oberhumer
70b20d7d89
CI updates
2024-03-29 12:11:41 +01:00
Markus F.X.J. Oberhumer
d1f62e3ab4
testsuite: update checksums caused by version bump
2024-03-28 19:51:57 +01:00
Markus F.X.J. Oberhumer
6e644fa480
all: post-release version bump
2024-03-28 19:47:04 +01:00
Markus F.X.J. Oberhumer
5bef968068
all: prepare for release
2024-03-27 13:57:30 +01:00
Markus F.X.J. Oberhumer
3ba91b8072
cmake update
2024-03-26 15:38:20 +01:00
Markus F.X.J. Oberhumer
a27a9e6000
all: and yet more cleanups; NFCI
2024-03-25 11:07:40 +01:00
Markus F.X.J. Oberhumer
7e839e6962
all: more cleanups; NFCI
2024-03-23 20:18:28 +01:00
Markus F.X.J. Oberhumer
a21a006fe9
all: yet more minor cleanups
2024-03-19 16:03:37 +01:00
Markus F.X.J. Oberhumer
54d16a458a
CI updates; cleanups
2024-03-16 17:46:40 +01:00
Markus F.X.J. Oberhumer
cfc5f42ef2
testsuite: update checksums caused by version change
2024-03-12 18:16:52 +01:00
Markus F.X.J. Oberhumer
52d9b53b74
all: minor cleanups
2024-03-08 11:52:44 +01:00
Markus F.X.J. Oberhumer
06b0de9c77
CI: work-around zig cc mips bad codegen for hard-float
2024-02-17 16:34:11 +01:00
Markus F.X.J. Oberhumer
fdcdaf596a
all: pacify clang-tidy, CI and cmake updates
2024-02-14 15:14:47 +01:00
Markus F.X.J. Oberhumer
be44cefbe7
CI updates
2024-02-13 18:29:07 +01:00
John Reiser
41f6945be1
Fix auxv_up() to avoid SIGSEGV under valgrind
...
https://github.com/upx/upx/issues/784
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/i386-linux.elf-main.c
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus all generated stub/*-linux.elf-fold.{h,map}
2024-02-03 13:58:53 -08:00
Markus F.X.J. Oberhumer
718ec468ff
all: more assorted cleanups; NFCI
2024-02-02 10:17:16 +01:00
Markus F.X.J. Oberhumer
5d649f83ec
all: assorted cleanups
2024-01-24 20:53:14 +01:00
Markus F.X.J. Oberhumer
b019440980
testsuite: update checksums caused by version year bump
2024-01-13 20:08:08 +01:00
John Reiser
38ed4b2017
arm32, arm64 ABI for -static must preserve register 0
...
Also arm32 forgot to unmap the expanded de-compressor via the escape hatch.
https://github.com/upx/upx/issues/758
https://github.com/upx/upx/issues/768
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/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/amd64-linux.elf-main.c
plus associated *.h *.map *.dump
2024-01-12 15:39:18 -08:00
John Reiser
09c5e38322
arm64-linux.elf ABI owns x0 at execve()?
...
https://github.com/upx/upx/issues/758
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/arm64-linux.elf-fold.h
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/tmp/arm64-linux.elf-fold.map
2024-01-09 12:17:01 -08:00
John Reiser
fe6f1f0bb6
arm64-linux.elf-fold.S typo (eyesight)
...
https://github.com/upx/upx/issues/743
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/stub/arm64-linux.elf-fold.h
modified: src/stub/src/arm64-linux.elf-fold.S
2024-01-09 10:01:07 -08:00
Markus F.X.J. Oberhumer
250c656b9e
testsuite: update checksums caused by version bump
2024-01-04 03:18:19 +01:00
Markus F.X.J. Oberhumer
9a0b5b65b8
all: remove unused scripts
2024-01-04 03:09:48 +01:00
Markus F.X.J. Oberhumer
57b2fb4c62
all: post-release version bump
2024-01-04 02:52:22 +01:00
Markus F.X.J. Oberhumer
099c3d829e
all: prepare for release.
2024-01-03 18:43:18 +01:00
Markus F.X.J. Oberhumer
f2ad7fb9c4
testsuite: update checksums caused by version bump
2024-01-03 18:00:07 +01:00
Markus F.X.J. Oberhumer
0a3f048eed
CI updates
2023-12-29 05:14:03 +01:00
Markus F.X.J. Oberhumer
3cde897557
Improve testsuite.
2023-12-28 21:44:53 +01:00
Markus F.X.J. Oberhumer
0500e7d016
CI updates; cxxlib.h cleanups
2023-12-28 04:42:41 +01:00
Markus F.X.J. Oberhumer
778663ae69
CI updates
2023-12-21 23:01:52 +01:00
Markus F.X.J. Oberhumer
636cefb9f3
cmake update
2023-12-20 18:49:34 +01:00
Markus F.X.J. Oberhumer
1236776aa2
cmake update
2023-12-20 12:16:25 +01:00
Markus F.X.J. Oberhumer
51a6a5cca5
src: rename ptr_reinterpret_cast to ptr_static_cast; misc cleanups
2023-12-20 11:44:01 +01:00