summaryrefslogtreecommitdiffstats
path: root/meta-xilinx-bsp/recipes-devtools/qemu/files/0001-The-glibc-2.29.9000-6.fc31.x86_64-package-finally-in.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-xilinx-bsp/recipes-devtools/qemu/files/0001-The-glibc-2.29.9000-6.fc31.x86_64-package-finally-in.patch')
-rw-r--r--meta-xilinx-bsp/recipes-devtools/qemu/files/0001-The-glibc-2.29.9000-6.fc31.x86_64-package-finally-in.patch105
1 files changed, 105 insertions, 0 deletions
diff --git a/meta-xilinx-bsp/recipes-devtools/qemu/files/0001-The-glibc-2.29.9000-6.fc31.x86_64-package-finally-in.patch b/meta-xilinx-bsp/recipes-devtools/qemu/files/0001-The-glibc-2.29.9000-6.fc31.x86_64-package-finally-in.patch
new file mode 100644
index 00000000..97cf71d9
--- /dev/null
+++ b/meta-xilinx-bsp/recipes-devtools/qemu/files/0001-The-glibc-2.29.9000-6.fc31.x86_64-package-finally-in.patch
@@ -0,0 +1,105 @@
1From 4fdb6551ea8856cc2df25d33e4103bf1736d7935 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
3Date: Wed, 20 Nov 2019 13:53:16 -0800
4Subject: [PATCH] The glibc-2.29.9000-6.fc31.x86_64 package finally includes
5 the gettid() function as part of unistd.h when __USE_GNU is defined. This
6 clashes with linux-user code which unconditionally defines this function name
7 itself.
8MIME-Version: 1.0
9Content-Type: text/plain; charset=UTF-8
10Content-Transfer-Encoding: 8bit
11
12/home/berrange/src/virt/qemu/linux-user/syscall.c:253:16: error: static
13declaration of ‘gettid’ follows non-static declaration
14 253 | _syscall0(int, gettid)
15 | ^~~~~~
16/home/berrange/src/virt/qemu/linux-user/syscall.c:184:13: note: in
17definition of macro ‘_syscall0’
18 184 | static type name (void) \
19 | ^~~~
20In file included from /usr/include/unistd.h:1170,
21 from
22/home/berrange/src/virt/qemu/include/qemu/osdep.h:107,
23 from
24/home/berrange/src/virt/qemu/linux-user/syscall.c:20:
25/usr/include/bits/unistd_ext.h:34:16: note: previous declaration of
26‘gettid’ was here
27 34 | extern __pid_t gettid (void) __THROW;
28 | ^~~~~~
29 CC aarch64-linux-user/linux-user/signal.o
30make[1]: *** [/home/berrange/src/virt/qemu/rules.mak:69:
31linux-user/syscall.o] Error 1
32make[1]: *** Waiting for unfinished jobs....
33make: *** [Makefile:449: subdir-aarch64-linux-user] Error 2
34
35While we could make our definition conditional and rely on glibc's impl,
36this patch simply renames our definition to sys_gettid() which is a
37common pattern in this file.
38
39Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
40Signed-off-by: Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>
41---
42 linux-user/syscall.c | 15 ++++++++-------
43 1 file changed, 8 insertions(+), 7 deletions(-)
44
45diff --git a/linux-user/syscall.c b/linux-user/syscall.c
46index 11c9116..464c3b9 100644
47--- a/linux-user/syscall.c
48+++ b/linux-user/syscall.c
49@@ -34,6 +34,7 @@
50 #include <sys/resource.h>
51 #include <sys/swap.h>
52 #include <linux/capability.h>
53+#include <linux/sockios.h>
54 #include <sched.h>
55 #include <sys/timex.h>
56 #ifdef __ia64__
57@@ -256,12 +257,12 @@ static type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5, \
58 #define TARGET_NR__llseek TARGET_NR_llseek
59 #endif
60
61-#ifdef __NR_gettid
62-_syscall0(int, gettid)
63+#ifdef __NR_sys_gettid
64+_syscall0(int, sys_gettid)
65 #else
66 /* This is a replacement for the host gettid() and must return a host
67 errno. */
68-static int gettid(void) {
69+static int sys_gettid(void) {
70 return -ENOSYS;
71 }
72 #endif
73@@ -6246,7 +6247,7 @@ static void *clone_func(void *arg)
74 cpu = ENV_GET_CPU(env);
75 thread_cpu = cpu;
76 ts = (TaskState *)cpu->opaque;
77- info->tid = gettid();
78+ info->tid = sys_gettid();
79 task_settid(ts);
80 if (info->child_tidptr)
81 put_user_u32(info->tid, info->child_tidptr);
82@@ -6390,9 +6391,9 @@ static int do_fork(CPUArchState *env, unsigned int flags, abi_ulong newsp,
83 mapping. We can't repeat the spinlock hack used above because
84 the child process gets its own copy of the lock. */
85 if (flags & CLONE_CHILD_SETTID)
86- put_user_u32(gettid(), child_tidptr);
87+ put_user_u32(sys_gettid(), child_tidptr);
88 if (flags & CLONE_PARENT_SETTID)
89- put_user_u32(gettid(), parent_tidptr);
90+ put_user_u32(sys_gettid(), parent_tidptr);
91 ts = (TaskState *)cpu->opaque;
92 if (flags & CLONE_SETTLS)
93 cpu_set_tls (env, newtls);
94@@ -11454,7 +11455,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
95 break;
96 #endif
97 case TARGET_NR_gettid:
98- ret = get_errno(gettid());
99+ ret = get_errno(sys_gettid());
100 break;
101 #ifdef TARGET_NR_readahead
102 case TARGET_NR_readahead:
103--
1042.7.4
105