57 lines
2.0 KiB
Diff
57 lines
2.0 KiB
Diff
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
|
|
|