File 0001-Fix-build-with-glibc-2.26.patch of Package pemu

From 9951fc1125b88c8d9212b8561060b41b02185501 Mon Sep 17 00:00:00 2001
From: Martin Hauke <mardnh@gmx.de>
Date: Sat, 13 Jun 2020 11:11:21 +0200
Subject: [PATCH] Fix build with glibc >= 2.26

Replace all references to struct ucontext with ucontext_t as discussed
in https://lists.gnu.org/archive/html/qemu-devel/2017-06/msg06508.html

With this patch pemu can be compiled both with new and old glibc.
---
 cpu-exec.c       | 22 +++++++++++-----------
 translate-copy.c |  2 +-
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/cpu-exec.c b/cpu-exec.c
index 1028330..e6bee41 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -68,7 +68,7 @@ void cpu_loop_exit(void)
 void cpu_resume_from_signal(CPUState *env1, void *puc) 
 {
 #if !defined(CONFIG_SOFTMMU)
-    struct ucontext *uc = puc;
+    ucontext_t *uc = puc;
 #endif
 
     env = env1;
@@ -721,7 +721,7 @@ static inline int handle_cpu_signal(unsigned long pc, unsigned long address,
 
 #if defined(USE_CODE_COPY)
 static void cpu_send_trap(unsigned long pc, int trap, 
-                          struct ucontext *uc)
+                          ucontext_t *uc)
 {
     TranslationBlock *tb;
 
@@ -743,7 +743,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
                        void *puc)
 {
     siginfo_t *info = pinfo;
-    struct ucontext *uc = puc;
+    ucontext_t *uc = puc;
     unsigned long pc;
     int trapno;
 
@@ -774,7 +774,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
                        void *puc)
 {
     siginfo_t *info = pinfo;
-    struct ucontext *uc = puc;
+    ucontext_t *uc = puc;
     unsigned long pc;
 
     pc = uc->uc_mcontext.gregs[REG_RIP];
@@ -812,7 +812,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
 
 #ifdef __APPLE__
 # include <sys/ucontext.h>
-typedef struct ucontext SIGCONTEXT;
+typedef ucontext_t SIGCONTEXT;
 /* All Registers access - only for local access */
 # define REG_sig(reg_name, context)		((context)->uc_mcontext->ss.reg_name)
 # define FLOATREG_sig(reg_name, context)	((context)->uc_mcontext->fs.reg_name)
@@ -839,7 +839,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
                        void *puc)
 {
     siginfo_t *info = pinfo;
-    struct ucontext *uc = puc;
+    ucontext_t *uc = puc;
     unsigned long pc;
     int is_write;
 
@@ -863,7 +863,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
                            void *puc)
 {
     siginfo_t *info = pinfo;
-    struct ucontext *uc = puc;
+    ucontext_t *uc = puc;
     uint32_t *pc = uc->uc_mcontext.sc_pc;
     uint32_t insn = *pc;
     int is_write = 0;
@@ -927,7 +927,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
                        void *puc)
 {
     siginfo_t *info = pinfo;
-    struct ucontext *uc = puc;
+    ucontext_t *uc = puc;
     unsigned long pc;
     int is_write;
     
@@ -945,7 +945,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
                        void *puc)
 {
     siginfo_t *info = pinfo;
-    struct ucontext *uc = puc;
+    ucontext_t *uc = puc;
     unsigned long pc;
     int is_write;
     
@@ -967,7 +967,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
 int cpu_signal_handler(int host_signum, void *pinfo, void *puc)
 {
     siginfo_t *info = pinfo;
-    struct ucontext *uc = puc;
+    ucontext_t *uc = puc;
     unsigned long ip;
     int is_write = 0;
 
@@ -997,7 +997,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
                        void *puc)
 {
     siginfo_t *info = pinfo;
-    struct ucontext *uc = puc;
+    ucontext_t *uc = puc;
     unsigned long pc;
     int is_write;
     
diff --git a/translate-copy.c b/translate-copy.c
index cf8bd5a..abf6918 100644
--- a/translate-copy.c
+++ b/translate-copy.c
@@ -1290,7 +1290,7 @@ int cpu_restore_state_copy(TranslationBlock *tb,
                            CPUState *env, unsigned long searched_pc,
                            void *puc)
 {
-    struct ucontext *uc = puc;
+    ucontext_t *uc = puc;
     int ret, eflags;
 
     /* find opc index corresponding to search_pc */
-- 
2.26.2

openSUSE Build Service is sponsored by