This is the "bottom half" to add support for riscv64 to UPX.
Need update to stubtools for: gcc objcopy objdump ld
Now using local cross tools /usr/bin/riscv64-linux-gnu-* on Ubuntu 24.04.
Need fix for riscv64-linux.elf-fold.h being 224 KB.
TODO: extend p_lx_elf.cpp linker.cpp
TODO: implement nrv2d_d.S nrv2e_d.S lzma_d.S
TODO: testing (using qemu-riscv64 and gdb-multiarch on Ubuntu 24.04)
https://github.com/upx/upx/discussions/793
modified: src/stub/Makefile
modified: src/stub/scripts/xstrip.py
modified: src/stub/src/amd64-linux.elf-main2.c
modified: src/stub/src/arch/amd64/macros.S
new file: src/stub/src/arch/riscv/64/Makefile
new file: src/stub/src/arch/riscv/64/Makefile.extra
new file: src/stub/src/arch/riscv/64/macros.S
new file: src/stub/src/arch/riscv/64/nrv2b_d.S
new file: src/stub/src/arch/riscv/64/regs.h
new file: src/stub/src/riscv64-expand.S
new file: src/stub/src/riscv64-linux.elf-entry.S
new file: src/stub/src/riscv64-linux.elf-fold.S
new file: src/stub/src/riscv64-linux.elf-fold.lds
new file: src/stub/src/riscv64-linux.elf-help_umf.S
new file: src/stub/src/riscv64-linux.elf-main2.c
modified: src/stub/src/upxfd_linux.c
Catch SIGSEGV during de-compression, and print state info
("auto debug") using /proc/self/maps and gdb.
This was motivated by suspicion of unreliable hardware
which triggered "Heisenbugs": a crash which cannot be reproduced.
If SIGSGV occurs without the "auto debug" info, then that
implies an error user code after de-compression, often when
user code accesses /proc/self/exe, which is not the un-compressed file.
modified: misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: src/help.cpp
modified: src/main.cpp
modified: src/options.h
modified: src/p_lx_elf.cpp
modified: src/stub/Makefile
modified: src/stub/src/amd64-linux.elf-entry.S
modified: src/stub/src/amd64-linux.elf-fold.S
modified: src/stub/src/arm.v4a-linux.elf-entry.S
modified: src/stub/src/arm.v4a-linux.elf-fold.S
modified: src/stub/src/arm64-linux.elf-entry.S
modified: src/stub/src/arm64-linux.elf-fold.S
plus generated .h .dump .map