[Buildroot] [PATCH] package/uclibc: define RLIMIT_RTTIME
Romain Naour
romain.naour at gmail.com
Tue May 17 19:47:56 UTC 2022
RLIMIT_RTTIME is needed to build qemu 7.0.0 with
Linux user-land emulation support [1].
Disabling uClibc for Qemu user-land emulation would requires
disabling uClibc support for gobject-introspection and nodejs
along with reverse dependencies.
[1] https://git.qemu.org/?p=qemu.git;a=commitdiff;h=244fd08323088db73590ff2317dfe86f810b51d7
Fixes:
http://autobuild.buildroot.net/results/1849f6d05728624fd293a015812b8d0f9d192e62
Signed-off-by: Romain Naour <romain.naour at gmail.com>
Cc: Waldemar Brodkorb <wbx at openadk.org>
---
...ne-RLIMIT_RTTIME-bump-RLIMIT_NLIMITS.patch | 126 ++++++++++++++++++
1 file changed, 126 insertions(+)
create mode 100644 package/uclibc/0001-define-RLIMIT_RTTIME-bump-RLIMIT_NLIMITS.patch
diff --git a/package/uclibc/0001-define-RLIMIT_RTTIME-bump-RLIMIT_NLIMITS.patch b/package/uclibc/0001-define-RLIMIT_RTTIME-bump-RLIMIT_NLIMITS.patch
new file mode 100644
index 0000000000..7d3a047af3
--- /dev/null
+++ b/package/uclibc/0001-define-RLIMIT_RTTIME-bump-RLIMIT_NLIMITS.patch
@@ -0,0 +1,126 @@
+From b168450de521198537d59c017d85270184e5da08 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour at gmail.com>
+Date: Mon, 16 May 2022 23:13:05 +0200
+Subject: [PATCH] define RLIMIT_RTTIME, bump RLIMIT_NLIMITS
+
+This macro exists since Linux 2.6.25 [1] and is defined in glibc
+since 2.14 [2] for sparc and most supported architectures.
+
+RLIMIT_RTTIME has been added later for mips [3] and alpha [4].
+
+For example, RLIMIT_RTTIME is needed to build qemu 7.0.0 with
+Linux user-land emulation support [5].
+
+[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=78f2c7db6068fd6ef75b8c120f04a388848eacb5
+[2] https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=67f86a251e0d36107fe28999281d46e76941c7b9
+[3] https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=8969f4df1a526aa60dd0bc1c4736cf02104d4a05
+[4] https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=53c2cb7641bd866398156625ef672bbd2d78a0d8
+[5] https://git.qemu.org/?p=qemu.git;a=commitdiff;h=244fd08323088db73590ff2317dfe86f810b51d7
+
+Signed-off-by: Romain Naour <romain.naour at gmail.com>
+---
+ libc/sysdeps/linux/alpha/bits/resource.h | 8 +++++++-
+ libc/sysdeps/linux/common/bits/resource.h | 8 +++++++-
+ libc/sysdeps/linux/mips/bits/resource.h | 8 +++++++-
+ libc/sysdeps/linux/sparc/bits/resource.h | 8 +++++++-
+ libc/sysdeps/linux/sparc64/bits/resource.h | 8 +++++++-
+ 5 files changed, 35 insertions(+), 5 deletions(-)
+
+diff --git a/libc/sysdeps/linux/alpha/bits/resource.h b/libc/sysdeps/linux/alpha/bits/resource.h
+index 74f4eed69..78b790d86 100644
+--- a/libc/sysdeps/linux/alpha/bits/resource.h
++++ b/libc/sysdeps/linux/alpha/bits/resource.h
+@@ -99,7 +99,13 @@ enum __rlimit_resource
+ __RLIMIT_RTPRIO = 14,
+ #define RLIMIT_RTPRIO __RLIMIT_RTPRIO
+
+- __RLIMIT_NLIMITS = 15,
++ /* Maximum CPU time in µs that a process scheduled under a real-time
++ scheduling policy may consume without making a blocking system
++ call before being forcibly descheduled. */
++ __RLIMIT_RTTIME = 15,
++#define RLIMIT_RTTIME __RLIMIT_RTTIME
++
++ __RLIMIT_NLIMITS = 16,
+ __RLIM_NLIMITS = __RLIMIT_NLIMITS
+ #define RLIMIT_NLIMITS __RLIMIT_NLIMITS
+ #define RLIM_NLIMITS __RLIM_NLIMITS
+diff --git a/libc/sysdeps/linux/common/bits/resource.h b/libc/sysdeps/linux/common/bits/resource.h
+index df0ba56d9..92b67eb23 100644
+--- a/libc/sysdeps/linux/common/bits/resource.h
++++ b/libc/sysdeps/linux/common/bits/resource.h
+@@ -99,7 +99,13 @@ enum __rlimit_resource
+ __RLIMIT_RTPRIO = 14,
+ #define RLIMIT_RTPRIO __RLIMIT_RTPRIO
+
+- __RLIMIT_NLIMITS = 15,
++ /* Maximum CPU time in µs that a process scheduled under a real-time
++ scheduling policy may consume without making a blocking system
++ call before being forcibly descheduled. */
++ __RLIMIT_RTTIME = 15,
++#define RLIMIT_RTTIME __RLIMIT_RTTIME
++
++ __RLIMIT_NLIMITS = 16,
+ __RLIM_NLIMITS = __RLIMIT_NLIMITS
+ #define RLIMIT_NLIMITS __RLIMIT_NLIMITS
+ #define RLIM_NLIMITS __RLIM_NLIMITS
+diff --git a/libc/sysdeps/linux/mips/bits/resource.h b/libc/sysdeps/linux/mips/bits/resource.h
+index b204aefd6..48a97f62e 100644
+--- a/libc/sysdeps/linux/mips/bits/resource.h
++++ b/libc/sysdeps/linux/mips/bits/resource.h
+@@ -99,7 +99,13 @@ enum __rlimit_resource
+ __RLIMIT_RTPRIO = 14,
+ #define RLIMIT_RTPRIO __RLIMIT_RTPRIO
+
+- __RLIMIT_NLIMITS = 15,
++ /* Maximum CPU time in µs that a process scheduled under a real-time
++ scheduling policy may consume without making a blocking system
++ call before being forcibly descheduled. */
++ __RLIMIT_RTTIME = 15,
++#define RLIMIT_RTTIME __RLIMIT_RTTIME
++
++ __RLIMIT_NLIMITS = 16,
+ __RLIM_NLIMITS = __RLIMIT_NLIMITS
+ #define RLIMIT_NLIMITS __RLIMIT_NLIMITS
+ #define RLIM_NLIMITS __RLIM_NLIMITS
+diff --git a/libc/sysdeps/linux/sparc/bits/resource.h b/libc/sysdeps/linux/sparc/bits/resource.h
+index 1005aeced..9bff26d00 100644
+--- a/libc/sysdeps/linux/sparc/bits/resource.h
++++ b/libc/sysdeps/linux/sparc/bits/resource.h
+@@ -98,7 +98,13 @@ enum __rlimit_resource
+ __RLIMIT_RTPRIO = 14,
+ #define RLIMIT_RTPRIO __RLIMIT_RTPRIO
+
+- __RLIMIT_NLIMITS = 15,
++ /* Maximum CPU time in µs that a process scheduled under a real-time
++ scheduling policy may consume without making a blocking system
++ call before being forcibly descheduled. */
++ __RLIMIT_RTTIME = 15,
++#define RLIMIT_RTTIME __RLIMIT_RTTIME
++
++ __RLIMIT_NLIMITS = 16,
+ __RLIM_NLIMITS = __RLIMIT_NLIMITS
+ #define RLIMIT_NLIMITS __RLIMIT_NLIMITS
+ #define RLIM_NLIMITS __RLIM_NLIMITS
+diff --git a/libc/sysdeps/linux/sparc64/bits/resource.h b/libc/sysdeps/linux/sparc64/bits/resource.h
+index 366e5c2d9..255fb9734 100644
+--- a/libc/sysdeps/linux/sparc64/bits/resource.h
++++ b/libc/sysdeps/linux/sparc64/bits/resource.h
+@@ -98,7 +98,13 @@ enum __rlimit_resource
+ __RLIMIT_RTPRIO = 14,
+ #define RLIMIT_RTPRIO __RLIMIT_RTPRIO
+
+- __RLIMIT_NLIMITS = 15,
++ /* Maximum CPU time in µs that a process scheduled under a real-time
++ scheduling policy may consume without making a blocking system
++ call before being forcibly descheduled. */
++ __RLIMIT_RTTIME = 15,
++#define RLIMIT_RTTIME __RLIMIT_RTTIME
++
++ __RLIMIT_NLIMITS = 16,
+ __RLIM_NLIMITS = __RLIMIT_NLIMITS
+ #define RLIMIT_NLIMITS __RLIMIT_NLIMITS
+ #define RLIM_NLIMITS __RLIM_NLIMITS
+--
+2.35.3
+
--
2.35.3
More information about the buildroot
mailing list