From 0cffeca1029b1d202e6ba122e785c9cba2326abc Mon Sep 17 00:00:00 2001 From: John Reiser Date: Fri, 28 Apr 2023 13:52:26 -0700 Subject: [PATCH] arm32 shlib works with SELinux modified: stub/src/arch/arm/v4a/macros.S modified: stub/src/arm.v4a-linux.elf-so_entry.S modified: stub/src/arm.v4a-linux.elf-so_fold.S modified: stub/src/arm64-linux.elf-so_entry.S modified: stub/src/i386-linux.elf-so_main.c --- src/stub/src/arch/arm/v4a/macros.S | 2 + src/stub/src/arm.v4a-linux.elf-so_entry.S | 63 +++++++++++++++-------- src/stub/src/arm.v4a-linux.elf-so_fold.S | 27 ++++++---- src/stub/src/arm64-linux.elf-so_entry.S | 14 ++--- src/stub/src/i386-linux.elf-so_main.c | 3 +- 5 files changed, 69 insertions(+), 40 deletions(-) diff --git a/src/stub/src/arch/arm/v4a/macros.S b/src/stub/src/arch/arm/v4a/macros.S index 54b043ba..f9652091 100644 --- a/src/stub/src/arch/arm/v4a/macros.S +++ b/src/stub/src/arch/arm/v4a/macros.S @@ -72,9 +72,11 @@ __NR_SYSCALL_BASE = 0 mov r7,r12 // restore r7 from ip .endm .macro do_sys7t2 N // "7t2": two-byte N; clobbers r7 as a temporary + mov r12,r7 // save r7 in ip mov r7, #(\N) & 0xff // syscall number orr r7,r7,#(\N) &~0xff // high bits swi 0 + mov r7,r12 // restore r7 from ip .endm .macro do_sys2 N // two-byte N; clobbers 'ip' (r12), saves r7 mov r12,r7 // save r7 in ip diff --git a/src/stub/src/arm.v4a-linux.elf-so_entry.S b/src/stub/src/arm.v4a-linux.elf-so_entry.S index d3e9c61c..5bff9b40 100644 --- a/src/stub/src/arm.v4a-linux.elf-so_entry.S +++ b/src/stub/src/arm.v4a-linux.elf-so_entry.S @@ -67,11 +67,13 @@ PAGE_SHIFT= 12 PAGE_MASK= (~0<p_flags); // also makes PROT_WRITE