|
@@ -0,0 +1,49 @@
|
|
|
+From 66b1926d72ef51d4d59d0f97061f26a75651e265 Mon Sep 17 00:00:00 2001
|
|
|
+From: Khem Raj <raj.khem@gmail.com>
|
|
|
+Date: Fri, 11 Oct 2024 12:31:40 -0700
|
|
|
+Subject: [PATCH] sched_attr: Do not define for glibc >= 2.41
|
|
|
+
|
|
|
+glibc 2.41+ has added [1] definitions for sched_setattr and sched_getattr functions
|
|
|
+and struct sched_attr. Therefore, it needs to be checked for here as well before
|
|
|
+defining sched_attr
|
|
|
+
|
|
|
+Define sched_attr conditionally on SCHED_ATTR_SIZE_VER0
|
|
|
+
|
|
|
+Fixes builds with glibc/trunk
|
|
|
+
|
|
|
+[1] https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=21571ca0d70302909cf72707b2a7736cf12190a0;hp=298bc488fdc047da37482f4003023cb9adef78f8
|
|
|
+
|
|
|
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
+Cc: Laurent Vivier <laurent@vivier.eu>
|
|
|
+Cc: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
|
|
|
+Upstream: https://patchwork.kernel.org/project/qemu-devel/patch/20241011193140.1047648-1-raj.khem@gmail.com/
|
|
|
+---
|
|
|
+ linux-user/syscall.c | 4 +++-
|
|
|
+ 1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
+
|
|
|
+diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
|
|
+index 1ce4c79784..a407d4a023 100644
|
|
|
+--- a/linux-user/syscall.c
|
|
|
++++ b/linux-user/syscall.c
|
|
|
+@@ -358,7 +358,8 @@ _syscall3(int, sys_sched_getaffinity, pid_t, pid, unsigned int, len,
|
|
|
+ #define __NR_sys_sched_setaffinity __NR_sched_setaffinity
|
|
|
+ _syscall3(int, sys_sched_setaffinity, pid_t, pid, unsigned int, len,
|
|
|
+ unsigned long *, user_mask_ptr);
|
|
|
+-/* sched_attr is not defined in glibc */
|
|
|
++/* sched_attr is not defined in glibc < 2.41 */
|
|
|
++#ifndef SCHED_ATTR_SIZE_VER0
|
|
|
+ struct sched_attr {
|
|
|
+ uint32_t size;
|
|
|
+ uint32_t sched_policy;
|
|
|
+@@ -371,6 +372,7 @@ struct sched_attr {
|
|
|
+ uint32_t sched_util_min;
|
|
|
+ uint32_t sched_util_max;
|
|
|
+ };
|
|
|
++#endif
|
|
|
+ #define __NR_sys_sched_getattr __NR_sched_getattr
|
|
|
+ _syscall4(int, sys_sched_getattr, pid_t, pid, struct sched_attr *, attr,
|
|
|
+ unsigned int, size, unsigned int, flags);
|
|
|
+--
|
|
|
+2.34.1
|
|
|
+
|