|
@@ -0,0 +1,56 @@
|
|
|
+From 7a2eee56607218d017af8d26c2c41dba83629708 Mon Sep 17 00:00:00 2001
|
|
|
+From: "Andrew G. Morgan" <morgan@kernel.org>
|
|
|
+Date: Thu, 17 Apr 2025 20:20:09 -0700
|
|
|
+Subject: [PATCH] First attempt at PSX support for microblaze, arc and
|
|
|
+ openrisc.
|
|
|
+
|
|
|
+I found some confusing macrology for openrisc. I'm optimistic that
|
|
|
+this is recognized with the __or1k__ gcc macro.
|
|
|
+
|
|
|
+See for details:
|
|
|
+
|
|
|
+ https://bugzilla.kernel.org/show_bug.cgi?id=219915
|
|
|
+
|
|
|
+Signed-off-by: Andrew G. Morgan <morgan@kernel.org>
|
|
|
+Upstream: https://git.kernel.org/pub/scm/libs/libcap/libcap.git/commit/?id=7a2eee56607218d017af8d26c2c41dba83629708
|
|
|
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|
|
+---
|
|
|
+ psx/psx_calls.c | 8 ++++++--
|
|
|
+ 1 file changed, 6 insertions(+), 2 deletions(-)
|
|
|
+
|
|
|
+diff --git a/psx/psx_calls.c b/psx/psx_calls.c
|
|
|
+index 9662fbd..8195964 100644
|
|
|
+--- a/psx/psx_calls.c
|
|
|
++++ b/psx/psx_calls.c
|
|
|
+@@ -48,7 +48,8 @@
|
|
|
+ || defined(__mips__) || defined(__loongarch__) \
|
|
|
+ || defined(__powerpc__) || defined(__s390__) || defined(__riscv) \
|
|
|
+ || defined(__alpha__) || defined(__hppa__) || defined(__sh__) \
|
|
|
+- || defined(__m68k__) || defined(__sparc__)
|
|
|
++ || defined(__m68k__) || defined(__sparc__) || defined(__arc__) \
|
|
|
++ || defined(__microblaze__) || defined(__or1k__)
|
|
|
+
|
|
|
+ #undef _NSIG
|
|
|
+ #undef _NSIG_BPW
|
|
|
+@@ -69,7 +70,8 @@
|
|
|
+
|
|
|
+ #if defined(__x86_64__) || defined(__i386__) \
|
|
|
+ || defined(__arm__) \
|
|
|
+- || defined(__powerpc__)
|
|
|
++ || defined(__powerpc__) \
|
|
|
++ || defined(__arc__)
|
|
|
+ /* field used */
|
|
|
+ #define SA_RESTORER 0x04000000
|
|
|
+ #endif /* architectures that use SA_RESTORER */
|
|
|
+@@ -201,6 +203,8 @@ static void psx_posix_syscall_actor(int signum, siginfo_t *info, void *ignore) {
|
|
|
+ __asm__ __volatile__("\npsx_restorer:\n\tmov r7,#173\n\tswi 0\n");
|
|
|
+ #elif defined(__powerpc__)
|
|
|
+ __asm__ __volatile__("\npsx_restorer:\n\tli 0, 172\n\tsc\n");
|
|
|
++#elif defined(__arc__)
|
|
|
++ __asm__ __volatile__("\npsx_restorer:\n\tmov r8, 139\n\ttrap_s 0\n");
|
|
|
+ #else
|
|
|
+ #error "unsupported architecture - https://bugzilla.kernel.org/show_bug.cgi?id=219687"
|
|
|
+ #endif /* supported architectures */
|
|
|
+--
|
|
|
+2.49.0
|
|
|
+
|