diff --git a/package/libcap/0001-First-attempt-at-PSX-support-for-microblaze-arc-and-.patch b/package/libcap/0001-First-attempt-at-PSX-support-for-microblaze-arc-and-.patch new file mode 100644 index 0000000000..3f569d6d2c --- /dev/null +++ b/package/libcap/0001-First-attempt-at-PSX-support-for-microblaze-arc-and-.patch @@ -0,0 +1,56 @@ +From 7a2eee56607218d017af8d26c2c41dba83629708 Mon Sep 17 00:00:00 2001 +From: "Andrew G. Morgan" +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 +Upstream: https://git.kernel.org/pub/scm/libs/libcap/libcap.git/commit/?id=7a2eee56607218d017af8d26c2c41dba83629708 +Signed-off-by: Thomas Petazzoni +--- + 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 +