PowerPC64 editing error affecting -fPIE

https://github.com/upx/upx/issues/918
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/powerpc64-linux.elf-fold.S
          plus generated powerpc64*-linux.elf-fold.h
This commit is contained in:
John Reiser
2025-07-05 18:10:46 -07:00
parent 915bfbd82e
commit 945d9157fa
4 changed files with 14 additions and 14 deletions
+3 -3
View File
@@ -33,8 +33,8 @@
/* clang-format off */
#define STUB_POWERPC64_LINUX_ELF_FOLD_SIZE 20887
#define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0x7e448798
#define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0x90ae5864
#define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0x648b8800
#define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0xe5c140f3
unsigned char stub_powerpc64_linux_elf_fold[20887] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47,7 +47,7 @@ unsigned char stub_powerpc64_linux_elf_fold[20887] = {
/* 0x0070 */ 72, 0, 0, 5,124,200, 2,166,124, 8, 3,166,232, 6,255,204,
/* 0x0080 */ 124, 96, 0,120,124, 96, 24, 80,124,132, 2, 20, 72, 0, 0, 0,
/* 0x0090 */ 124, 8, 2,166, 72, 0, 0, 5,124,200, 2,166,124, 8, 3,166,
/* 0x00a0 */ 128, 6,255,168,124, 96, 0,120,124, 96, 24, 80,124,132, 2, 20,
/* 0x00a0 */ 232, 6,255,168,124, 96, 0,120,124, 96, 24, 80,124,132, 2, 20,
/* 0x00b0 */ 124,227, 34, 20, 56,231,255,255, 96,102, 0,127,124, 0, 48,108,
/* 0x00c0 */ 124, 6, 56, 64,124, 0, 55,172, 56,198, 0,128, 65,128,255,240,
/* 0x00d0 */ 124, 0, 4,172, 76, 0, 1, 44, 72, 0, 0, 0,124, 8, 2,166,
+3 -3
View File
@@ -33,8 +33,8 @@
/* clang-format off */
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_SIZE 20929
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0xc7a493c3
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0xb5b36810
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0xbdc3942b
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0xe9c52429
unsigned char stub_powerpc64le_linux_elf_fold[20929] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47,7 +47,7 @@ unsigned char stub_powerpc64le_linux_elf_fold[20929] = {
/* 0x0070 */ 5, 0, 0, 72,166, 2,200,124,166, 3, 8,124,204,255, 6,232,
/* 0x0080 */ 120, 0, 96,124, 80, 24, 96,124, 20, 2,132,124, 0, 0, 0, 72,
/* 0x0090 */ 166, 2, 8,124, 5, 0, 0, 72,166, 2,200,124,166, 3, 8,124,
/* 0x00a0 */ 168,255, 6,128,120, 0, 96,124, 80, 24, 96,124, 20, 2,132,124,
/* 0x00a0 */ 168,255, 6,232,120, 0, 96,124, 80, 24, 96,124, 20, 2,132,124,
/* 0x00b0 */ 20, 34,227,124,255,255,231, 56,127, 0,102, 96,108, 48, 0,124,
/* 0x00c0 */ 64, 56, 6,124,172, 55, 0,124,128, 0,198, 56,240,255,128, 65,
/* 0x00d0 */ 172, 4, 0,124, 44, 1, 0, 76, 0, 0, 0, 72,166, 2, 8,124,
+1 -1
View File
@@ -129,7 +129,7 @@ Pprotect: .globl Pprotect
b mprotect
Psync: .globl Psync // (addr, len, flags)
mflr r0; bl 0f; 0: mflr r6; mtlr r0; lwz r0,page_mask - 0b(r6)
mflr r0; bl 0f; 0: mflr r6; mtlr r0; ld r0,page_mask - 0b(r6)
andc r0,a0,r0 // offset within page
sub a0,a0,r0
add a1,a1,r0