From a9cc3b2a89e2738e241f1b1dc3cf25bae6559d44 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Wed, 27 Jul 2016 08:57:54 -0700 Subject: [PATCH] Use gcc-ppc64-linux-gnu-5.3.1-2.fc22.x86_64 But bin-upx-20130920/multiarch-ld-2.17 gets SIGSEGV for fold.h src/stub/Makefile src/stub/ppc64le-darwin.dylib-entry.h src/stub/ppc64le-darwin.macho-entry.h src/stub/ppc64le-linux.elf-entry.h src/stub/ppc64le-linux.kernel.vmlinux.h --- src/stub/Makefile | 18 ++++++++++-------- src/stub/ppc64le-darwin.dylib-entry.h | 10 +++++----- src/stub/ppc64le-darwin.macho-entry.h | 10 +++++----- src/stub/ppc64le-linux.elf-entry.h | 10 +++++----- src/stub/ppc64le-linux.kernel.vmlinux.h | 10 +++++----- 5 files changed, 30 insertions(+), 28 deletions(-) diff --git a/src/stub/Makefile b/src/stub/Makefile index 0b94a5b3..dc5a528c 100644 --- a/src/stub/Makefile +++ b/src/stub/Makefile @@ -123,13 +123,17 @@ STUBS += powerpc-linux.kernel.vmlinux-head.h STUBS += powerpc-linux.kernel.vmlinux.h # Need a UPX-standard compiler for ppc64le ! -#STUBS += ppc64le-darwin.dylib-entry.h -#STUBS += ppc64le-darwin.macho-entry.h +STUBS += ppc64le-darwin.dylib-entry.h +STUBS += ppc64le-darwin.macho-entry.h #STUBS += ppc64le-darwin.macho-fold.h -#STUBS += ppc64le-linux.elf-entry.h +# undefined reference to `_savegpr0_28' `_restgpr0_28' `_savegpr0_16' `_restgpr0_16' `_savegpr0_27' `_restgpr0_27' + +STUBS += ppc64le-linux.elf-entry.h #STUBS += ppc64le-linux.elf-fold.h -#STUBS += ppc64le-linux.kernel.vmlinux-head.h -#STUBS += ppc64le-linux.kernel.vmlinux.h +# SIGSEGV: bin-upx-20130920/multiarch-ld-2.17 -b elf64-powerpcle --strip-all -T ./src/ppc64le-linux.elf-fold.lds -Map tmp/ppc64le-linux.elf-fold.map tmp/ppc64le-linux.elf-fold.o tmp/ppc64le-linux.elf-main.o -o tmp/ppc64le-linux.elf-fold.bin + +STUBS += ppc64le-linux.kernel.vmlinux-head.h +STUBS += ppc64le-linux.kernel.vmlinux.h #STUBS += thumb-eabi-linux.shlib-init.h endif @@ -1351,9 +1355,7 @@ ppc64le-darwin.dylib-entry.h : $(srcdir)/src/$$T.S ppc64le-linux.elf%.h : tc_list = ppc64le-linux.elf default ppc64le-linux.elf%.h : tc_bfdname = elf64-powerpcle -# Neither of these two compilers works! -#tc.ppc64le-linux.elf.gcc = powerpc64.970-linux-gcc-4.1.1 -m64 -mlittle-endian -nostdinc -MMD -MT $@ -#tc.ppc64le-linux.elf.gcc = powerpc.405-linux-gcc-3.4.5 -m64 -mlittle-endian -nostdinc -MMD -MT $@ +tc.ppc64le-linux.elf.gcc = ppc64-linux-gnu-gcc -m64 -mlittle-endian -nostdinc -MMD -MT $@ tc.ppc64le-linux.elf.gcc += -fno-exceptions -fno-asynchronous-unwind-tables -fno-stack-protector tc.ppc64le-linux.elf.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror diff --git a/src/stub/ppc64le-darwin.dylib-entry.h b/src/stub/ppc64le-darwin.dylib-entry.h index 08aff638..55208a0a 100644 --- a/src/stub/ppc64le-darwin.dylib-entry.h +++ b/src/stub/ppc64le-darwin.dylib-entry.h @@ -32,13 +32,13 @@ #define STUB_PPC64LE_DARWIN_DYLIB_ENTRY_SIZE 9851 -#define STUB_PPC64LE_DARWIN_DYLIB_ENTRY_ADLER32 0x8aee5b0b -#define STUB_PPC64LE_DARWIN_DYLIB_ENTRY_CRC32 0x8c0151f0 +#define STUB_PPC64LE_DARWIN_DYLIB_ENTRY_ADLER32 0x75d95bd9 +#define STUB_PPC64LE_DARWIN_DYLIB_ENTRY_CRC32 0x3fcb6329 unsigned char stub_ppc64le_darwin_dylib_entry[9851] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,152, 29, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,176, 27, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 22, 0, 19, 0, /* 0x0040 */ 166, 2, 72,124, 1, 0, 0, 72,236, 41, 0,124,166, 2,168,125, /* 0x0050 */ 8, 0, 7, 40, 92, 1,130, 64, 0, 0,166,248, 20, 26,132,124, @@ -101,7 +101,7 @@ unsigned char stub_ppc64le_darwin_dylib_entry[9851] = { /* 0x03e0 */ 1, 0, 7,141, 1, 0, 5,157,248,255, 32, 67, 0, 1,224, 56, /* 0x03f0 */ 236, 41, 7,124, 44, 26, 7,124,100,255,255, 75, 14, 0, 7, 40, /* 0x0400 */ 0, 0,130, 64,166, 2, 8,124,120, 51,201,124, 0, 0, 6,129, -/* 0x0410 */ 120, 43,167,124,254,255,164, 56, 2, 0,131, 56, 8, 0, 1,144, +/* 0x0410 */ 120, 43,167,124,254,255,164, 56, 2, 0,131, 56, 48, 0, 1,248, /* 0x0420 */ 0, 0, 3,136,254,232, 11, 84,126, 7, 2, 84, 0,250, 96, 56, /* 0x0430 */ 48, 88, 99,124,124,241, 99, 56,120, 11, 38,124, 20, 26, 33,124, /* 0x0440 */ 52, 0, 33, 84, 0, 0, 0, 56,120, 51,195,124, 0, 0, 9,144, @@ -417,7 +417,7 @@ unsigned char stub_ppc64le_darwin_dylib_entry[9851] = { /* 0x17a0 */ 124, 19, 96, 80,144, 14, 0, 0, 56, 96, 0, 0,147, 41, 0, 0, /* 0x17b0 */ 128, 1, 0,100,185,193, 0, 24,124, 8, 3,166, 56, 33, 0, 96, /* 0x17c0 */ 12, 0,161,128, 8, 0,225,128, 0, 0,165,128, 0, 0, 33,128, -/* 0x17d0 */ 20, 58,165,124, 8, 0, 1,128,255,255,165, 56,166, 3, 8,124, +/* 0x17d0 */ 20, 58,165,124, 48, 0, 1,128,255,255,165, 56,166, 3, 8,124, /* 0x17e0 */ 0, 0,230,232,166, 3,168,125, 80, 24,100,124, 80, 40,135,124, /* 0x17f0 */ 1, 0, 99, 56, 1, 0,132, 56, 0, 0,134,248, 31, 0,231, 96, /* 0x1800 */ 108, 56, 0,124, 64, 40, 7,124,172, 63, 0,124, 32, 0,231, 56, diff --git a/src/stub/ppc64le-darwin.macho-entry.h b/src/stub/ppc64le-darwin.macho-entry.h index 9d3db4aa..02ced570 100644 --- a/src/stub/ppc64le-darwin.macho-entry.h +++ b/src/stub/ppc64le-darwin.macho-entry.h @@ -32,13 +32,13 @@ #define STUB_PPC64LE_DARWIN_MACHO_ENTRY_SIZE 9187 -#define STUB_PPC64LE_DARWIN_MACHO_ENTRY_ADLER32 0xc60149d6 -#define STUB_PPC64LE_DARWIN_MACHO_ENTRY_CRC32 0x76bf1a09 +#define STUB_PPC64LE_DARWIN_MACHO_ENTRY_ADLER32 0x9d5e4aa4 +#define STUB_PPC64LE_DARWIN_MACHO_ENTRY_CRC32 0x5d78462f unsigned char stub_ppc64le_darwin_macho_entry[9187] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 24, 25, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 22, 0, 19, 0, /* 0x0040 */ 1, 0, 0, 72,236, 41, 0,124,166, 2,168,125, 8, 0, 7, 40, /* 0x0050 */ 92, 1,130, 64, 0, 0,166,248, 20, 26,132,124, 0,128, 0, 60, @@ -101,7 +101,7 @@ unsigned char stub_ppc64le_darwin_macho_entry[9187] = { /* 0x03e0 */ 1, 0, 5,157,248,255, 32, 67, 0, 1,224, 56,236, 41, 7,124, /* 0x03f0 */ 44, 26, 7,124,100,255,255, 75, 14, 0, 7, 40, 0, 0,130, 64, /* 0x0400 */ 166, 2, 8,124,120, 51,201,124, 0, 0, 6,129,120, 43,167,124, -/* 0x0410 */ 254,255,164, 56, 2, 0,131, 56, 8, 0, 1,144, 0, 0, 3,136, +/* 0x0410 */ 254,255,164, 56, 2, 0,131, 56, 48, 0, 1,248, 0, 0, 3,136, /* 0x0420 */ 254,232, 11, 84,126, 7, 2, 84, 0,250, 96, 56, 48, 88, 99,124, /* 0x0430 */ 124,241, 99, 56,120, 11, 38,124, 20, 26, 33,124, 52, 0, 33, 84, /* 0x0440 */ 0, 0, 0, 56,120, 51,195,124, 0, 0, 9,144,252,255, 3,148, @@ -417,7 +417,7 @@ unsigned char stub_ppc64le_darwin_macho_entry[9187] = { /* 0x17a0 */ 144, 14, 0, 0, 56, 96, 0, 0,147, 41, 0, 0,128, 1, 0,100, /* 0x17b0 */ 185,193, 0, 24,124, 8, 3,166, 56, 33, 0, 96, 12, 0,161,128, /* 0x17c0 */ 8, 0,225,128, 0, 0,165,128, 0, 0, 33,128, 20, 58,165,124, -/* 0x17d0 */ 8, 0, 1,128,255,255,165, 56,166, 3, 8,124, 0, 0,230,232, +/* 0x17d0 */ 48, 0, 1,128,255,255,165, 56,166, 3, 8,124, 0, 0,230,232, /* 0x17e0 */ 166, 3,168,125, 80, 24,100,124, 80, 40,135,124, 1, 0, 99, 56, /* 0x17f0 */ 1, 0,132, 56, 0, 0,134,248, 31, 0,231, 96,108, 56, 0,124, /* 0x1800 */ 64, 40, 7,124,172, 63, 0,124, 32, 0,231, 56,240,255,128, 65, diff --git a/src/stub/ppc64le-linux.elf-entry.h b/src/stub/ppc64le-linux.elf-entry.h index 99fa45da..4bf5b5f1 100644 --- a/src/stub/ppc64le-linux.elf-entry.h +++ b/src/stub/ppc64le-linux.elf-entry.h @@ -32,13 +32,13 @@ #define STUB_PPC64LE_LINUX_ELF_ENTRY_SIZE 9657 -#define STUB_PPC64LE_LINUX_ELF_ENTRY_ADLER32 0x09e5cde7 -#define STUB_PPC64LE_LINUX_ELF_ENTRY_CRC32 0x69edffe5 +#define STUB_PPC64LE_LINUX_ELF_ENTRY_ADLER32 0xbd87cf84 +#define STUB_PPC64LE_LINUX_ELF_ENTRY_CRC32 0xcd1a5c42 unsigned char stub_ppc64le_linux_elf_entry[9657] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 16, 28, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,248, 25, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 24, 0, 21, 0, /* 0x0040 */ 1, 0, 0, 72,236, 41, 0,124,166, 2,168,125, 8, 0, 7, 40, /* 0x0050 */ 92, 1,130, 64, 0, 0,166,248, 20, 26,132,124, 0,128, 0, 60, @@ -101,7 +101,7 @@ unsigned char stub_ppc64le_linux_elf_entry[9657] = { /* 0x03e0 */ 1, 0, 5,157,248,255, 32, 67, 0, 1,224, 56,236, 41, 7,124, /* 0x03f0 */ 44, 26, 7,124,100,255,255, 75, 14, 0, 7, 40, 0, 0,130, 64, /* 0x0400 */ 166, 2, 8,124,120, 51,201,124, 0, 0, 6,129,120, 43,167,124, -/* 0x0410 */ 254,255,164, 56, 2, 0,131, 56, 8, 0, 1,144, 0, 0, 3,136, +/* 0x0410 */ 254,255,164, 56, 2, 0,131, 56, 48, 0, 1,248, 0, 0, 3,136, /* 0x0420 */ 254,232, 11, 84,126, 7, 2, 84, 0,250, 96, 56, 48, 88, 99,124, /* 0x0430 */ 124,241, 99, 56,120, 11, 38,124, 20, 26, 33,124, 52, 0, 33, 84, /* 0x0440 */ 0, 0, 0, 56,120, 51,195,124, 0, 0, 9,144,252,255, 3,148, @@ -417,7 +417,7 @@ unsigned char stub_ppc64le_linux_elf_entry[9657] = { /* 0x17a0 */ 144, 14, 0, 0, 56, 96, 0, 0,147, 41, 0, 0,128, 1, 0,100, /* 0x17b0 */ 185,193, 0, 24,124, 8, 3,166, 56, 33, 0, 96, 12, 0,161,128, /* 0x17c0 */ 8, 0,225,128, 0, 0,165,128, 0, 0, 33,128, 20, 58,165,124, -/* 0x17d0 */ 8, 0, 1,128,255,255,165, 56,166, 3, 8,124, 0, 0,230,232, +/* 0x17d0 */ 48, 0, 1,128,255,255,165, 56,166, 3, 8,124, 0, 0,230,232, /* 0x17e0 */ 166, 3,168,125, 80, 24,100,124, 80, 40,135,124, 1, 0, 99, 56, /* 0x17f0 */ 1, 0,132, 56, 0, 0,134,248, 31, 0,231, 96,108, 56, 0,124, /* 0x1800 */ 64, 40, 7,124,172, 63, 0,124, 32, 0,231, 56,240,255,128, 65, diff --git a/src/stub/ppc64le-linux.kernel.vmlinux.h b/src/stub/ppc64le-linux.kernel.vmlinux.h index a228e4d7..a24e1644 100644 --- a/src/stub/ppc64le-linux.kernel.vmlinux.h +++ b/src/stub/ppc64le-linux.kernel.vmlinux.h @@ -32,13 +32,13 @@ #define STUB_PPC64LE_LINUX_KERNEL_VMLINUX_SIZE 9824 -#define STUB_PPC64LE_LINUX_KERNEL_VMLINUX_ADLER32 0xd50cc44b -#define STUB_PPC64LE_LINUX_KERNEL_VMLINUX_CRC32 0x5c4b88d2 +#define STUB_PPC64LE_LINUX_KERNEL_VMLINUX_ADLER32 0xfa8bc568 +#define STUB_PPC64LE_LINUX_KERNEL_VMLINUX_CRC32 0x0e1bf668 unsigned char stub_ppc64le_linux_kernel_vmlinux[9824] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,104, 25, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 25, 0, 22, 0, /* 0x0040 */ 0, 0, 0, 72, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0050 */ 208, 0, 6, 40, 32, 0,194, 76,191,240,132, 84, 32, 0,194, 77, @@ -112,7 +112,7 @@ unsigned char stub_ppc64le_linux_kernel_vmlinux[9824] = { /* 0x0490 */ 172, 63, 0,124, 32, 0,231, 56,240,255,128, 65,172, 4, 0,124, /* 0x04a0 */ 44, 1, 0, 76, 32, 0,128, 78, 14, 0, 7, 40, 0, 0,130, 64, /* 0x04b0 */ 166, 2, 8,124,120, 51,201,124, 0, 0, 6,129,120, 43,167,124, -/* 0x04c0 */ 254,255,164, 56, 2, 0,131, 56, 8, 0, 1,144, 0, 0, 3,136, +/* 0x04c0 */ 254,255,164, 56, 2, 0,131, 56, 48, 0, 1,248, 0, 0, 3,136, /* 0x04d0 */ 254,232, 11, 84,126, 7, 2, 84, 0,250, 96, 56, 48, 88, 99,124, /* 0x04e0 */ 124,241, 99, 56,120, 11, 38,124, 20, 26, 33,124, 52, 0, 33, 84, /* 0x04f0 */ 0, 0, 0, 56,120, 51,195,124, 0, 0, 9,144,252,255, 3,148, @@ -428,7 +428,7 @@ unsigned char stub_ppc64le_linux_kernel_vmlinux[9824] = { /* 0x1850 */ 144, 14, 0, 0, 56, 96, 0, 0,147, 41, 0, 0,128, 1, 0,100, /* 0x1860 */ 185,193, 0, 24,124, 8, 3,166, 56, 33, 0, 96, 12, 0,161,128, /* 0x1870 */ 8, 0,225,128, 0, 0,165,128, 0, 0, 33,128, 20, 58,165,124, -/* 0x1880 */ 8, 0, 1,128,255,255,165, 56,166, 3, 8,124, 85, 80, 88, 33, +/* 0x1880 */ 48, 0, 1,128,255,255,165, 56,166, 3, 8,124, 85, 80, 88, 33, /* 0x1890 */ 161,216,208,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x18a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,102,105,108,101, /* 0x18b0 */ 32,102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,112,111,