diff options
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.patch | 105 |
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 @@ | |||
1 | From 4fdb6551ea8856cc2df25d33e4103bf1736d7935 Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com> | ||
3 | Date: Wed, 20 Nov 2019 13:53:16 -0800 | ||
4 | Subject: [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. | ||
8 | MIME-Version: 1.0 | ||
9 | Content-Type: text/plain; charset=UTF-8 | ||
10 | Content-Transfer-Encoding: 8bit | ||
11 | |||
12 | /home/berrange/src/virt/qemu/linux-user/syscall.c:253:16: error: static | ||
13 | declaration 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 | ||
17 | definition of macro ‘_syscall0’ | ||
18 | 184 | static type name (void) \ | ||
19 | | ^~~~ | ||
20 | In 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 | ||
30 | make[1]: *** [/home/berrange/src/virt/qemu/rules.mak:69: | ||
31 | linux-user/syscall.o] Error 1 | ||
32 | make[1]: *** Waiting for unfinished jobs.... | ||
33 | make: *** [Makefile:449: subdir-aarch64-linux-user] Error 2 | ||
34 | |||
35 | While we could make our definition conditional and rely on glibc's impl, | ||
36 | this patch simply renames our definition to sys_gettid() which is a | ||
37 | common pattern in this file. | ||
38 | |||
39 | Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> | ||
40 | Signed-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 | |||
45 | diff --git a/linux-user/syscall.c b/linux-user/syscall.c | ||
46 | index 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 | -- | ||
104 | 2.7.4 | ||
105 | |||