[Buildroot] [PATCH] package/libcap: add patch to fix build on ARC, OpenRISC, Microblaze

Thomas Petazzoni thomas.petazzoni at bootlin.com
Fri Apr 18 21:41:43 UTC 2025


Following the bump of libcap to version 2.76 in commit
e2eb2ee58b9f70ebb83231537cca19bd28fa48de, the build started failing on
ARC, OpenRISC, Microblaze. The bug was reported upstream at
https://bugzilla.kernel.org/show_bug.cgi?id=219915 and was
subsequently fixed by upstream commit:

  https://git.kernel.org/pub/scm/libs/libcap/libcap.git/commit/?id=7a2eee56607218d017af8d26c2c41dba83629708

Which we backport in this commit.

Fixes:

  http://autobuild.buildroot.net/results/c99f461ac757d2934a353818a302a67ef3ad5cf5/ (ARC)
  http://autobuild.buildroot.net/results/8cae72f02d25a48287320d9c991f41761487e353/ (Microblaze)
  http://autobuild.buildroot.net/results/74e2c4d37c5b0ae2749c7d77ca7431bd0d510971/ (OpenRISC)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
---
 ...-PSX-support-for-microblaze-arc-and-.patch | 56 +++++++++++++++++++
 1 file changed, 56 insertions(+)
 create mode 100644 package/libcap/0001-First-attempt-at-PSX-support-for-microblaze-arc-and-.patch

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" <morgan at 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 at kernel.org>
+Upstream: https://git.kernel.org/pub/scm/libs/libcap/libcap.git/commit/?id=7a2eee56607218d017af8d26c2c41dba83629708
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni at 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
+
-- 
2.49.0



More information about the buildroot mailing list