cross/i686-linux-glibc/buildroot/buildroot-2025.05/package/libcap/0001-First-attempt-at-PSX-s...

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