summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/strace
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2012-07-11 11:13:37 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-07-17 10:54:01 +0100
commit804cebc8b9329523c31bb864d7049f8dc5279a5c (patch)
tree77257f1bcc644b7797f1fd849393bb4bfbae07a6 /meta/recipes-devtools/strace
parent19bf330db74496c4d5448dece4dd867265394e28 (diff)
downloadpoky-804cebc8b9329523c31bb864d7049f8dc5279a5c.tar.gz
strace: Fix build on eglibc 2.16
This patch fixes two build issues seen with strace one in general with eglibc 2.16 and another with x32 abi (From OE-Core rev: 2ed0011adc1642e0fbb6bfe1d7ae6b70ce7dfedb) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/strace')
-rw-r--r--meta/recipes-devtools/strace/strace-4.7/strace-eglibc-2.16.patch52
-rw-r--r--meta/recipes-devtools/strace/strace-4.7/strace-x32.patch88
-rw-r--r--meta/recipes-devtools/strace/strace_4.7.bb7
3 files changed, 145 insertions, 2 deletions
diff --git a/meta/recipes-devtools/strace/strace-4.7/strace-eglibc-2.16.patch b/meta/recipes-devtools/strace/strace-4.7/strace-eglibc-2.16.patch
new file mode 100644
index 0000000000..67cf4e8c11
--- /dev/null
+++ b/meta/recipes-devtools/strace/strace-4.7/strace-eglibc-2.16.patch
@@ -0,0 +1,52 @@
1Upstream-Status: Backport
2
3https://bugs.gentoo.org/414637
4
5From 302e8ec6cd62912a3cd6494ce6702f4ad8dae0e2 Mon Sep 17 00:00:00 2001
6From: Mike Frysinger <vapier@gentoo.org>
7Date: Fri, 4 May 2012 19:30:59 -0400
8Subject: [PATCH] util: fix building when glibc has a stub process_vm_readv
9
10If you have a newer glibc which provides process_vm_readv, but it is built
11against older kernel headers which lack __NR_process_vm_readv, the library
12will contain a stub implementation that just returns ENOSYS. Autoconf
13checks for this case explicitly and will declare it as unavailable. So we
14end up in a case where the headers provide the prototype, but autoconf has
15not defined HAVE_PROCESS_VM_READV, so we hit the same build failure again:
16
17util.c:738:16: error: static declaration of 'process_vm_readv' follows non-static declaration
18/usr/include/bits/uio.h:58:16: note: previous declaration of 'process_vm_readv' was here
19
20So rename our local function to something unique, and add a define so the
21callers all hit the right place.
22
23* util.c (strace_process_vm_readv): Rename from process_vm_readv.
24(process_vm_readv): Define to strace_process_vm_readv.
25
26Signed-off-by: Mike Frysinger <vapier@gentoo.org>
27---
28 util.c | 4 +++-
29 1 file changed, 3 insertions(+), 1 deletion(-)
30
31Index: strace-4.7/util.c
32===================================================================
33--- strace-4.7.orig/util.c 2012-04-28 05:58:35.000000000 -0700
34+++ strace-4.7/util.c 2012-07-11 11:07:47.869825001 -0700
35@@ -735,7 +735,8 @@
36
37 #if defined(__NR_process_vm_readv)
38 static bool process_vm_readv_not_supported = 0;
39-static ssize_t process_vm_readv(pid_t pid,
40+/* Have to avoid duplicating with the C library headers. */
41+static ssize_t strace_process_vm_readv(pid_t pid,
42 const struct iovec *lvec,
43 unsigned long liovcnt,
44 const struct iovec *rvec,
45@@ -744,6 +745,7 @@
46 {
47 return syscall(__NR_process_vm_readv, (long)pid, lvec, liovcnt, rvec, riovcnt, flags);
48 }
49+#define process_vm_readv strace_process_vm_readv
50 #else
51 static bool process_vm_readv_not_supported = 1;
52 # define process_vm_readv(...) (errno = ENOSYS, -1)
diff --git a/meta/recipes-devtools/strace/strace-4.7/strace-x32.patch b/meta/recipes-devtools/strace/strace-4.7/strace-x32.patch
new file mode 100644
index 0000000000..3dc69b282b
--- /dev/null
+++ b/meta/recipes-devtools/strace/strace-4.7/strace-x32.patch
@@ -0,0 +1,88 @@
1Upstream-Status: Pending
2
3m 364ed4f14c5edb5ddbc79c72d22498219033b29d Mon Sep 17 00:00:00 2001
4From: Mike Frysinger <vapier@gentoo.org>
5Date: Mon, 4 Jun 2012 13:19:42 -0400
6Subject: [PATCH] x32: update syscall table
7
8This syncs with the syscall table as it is in linux 3.4.
9
10* linux/x32/syscallent.h (59): Fix comment typo.
11(78): Add missing getdents entry.
12(174): Delete create_module entry (not in the kernel).
13(181, 182, 183, 184, 185): Add missing entries.
14(524, 536, 539, 540): Fix spacing.
15
16Signed-off-by: Mike Frysinger <vapier@gentoo.org>
17---
18 linux/x32/syscallent.h | 24 ++++++++++++------------
19 1 file changed, 12 insertions(+), 12 deletions(-)
20
21Index: strace-4.7/linux/x32/syscallent.h
22===================================================================
23--- strace-4.7.orig/linux/x32/syscallent.h 2012-04-16 04:00:01.000000000 -0700
24+++ strace-4.7/linux/x32/syscallent.h 2012-07-11 11:08:00.285824906 -0700
25@@ -57,7 +57,7 @@
26 { 5, TP, sys_clone, "clone" }, /* 56 */
27 { 0, TP, sys_fork, "fork" }, /* 57 */
28 { 0, TP, sys_vfork, "vfork" }, /* 58 */
29- { }, /* 47 */
30+ { }, /* 59 */
31 { 1, TP, sys_exit, "_exit" }, /* 60 */
32 { 4, TP, sys_wait4, "wait4" }, /* 61 */
33 { 2, TS, sys_kill, "kill" }, /* 62 */
34@@ -76,7 +76,7 @@
35 { 1, TD, sys_fdatasync, "fdatasync" }, /* 75 */
36 { 2, TF, sys_truncate, "truncate" }, /* 76 */
37 { 2, TD, sys_ftruncate, "ftruncate" }, /* 77 */
38- { }, /* 78 */
39+ { 3, TD, sys_getdents, "getdents" }, /* 78 */
40 { 2, TF, sys_getcwd, "getcwd" }, /* 79 */
41 { 1, TF, sys_chdir, "chdir" }, /* 80 */
42 { 1, TD, sys_fchdir, "fchdir" }, /* 81 */
43@@ -172,18 +172,18 @@
44 { 2, 0, sys_setdomainname, "setdomainname" }, /* 171 */
45 { 1, 0, sys_iopl, "iopl" }, /* 172 */
46 { 3, 0, sys_ioperm, "ioperm" }, /* 173 */
47- { 2, 0, sys_create_module, "create_module" }, /* 174 */
48+ { }, /* 174 */
49 { 3, 0, sys_init_module, "init_module" }, /* 175 */
50 { 2, 0, sys_delete_module, "delete_module" }, /* 176 */
51 { }, /* 177 */
52 { }, /* 178 */
53 { 4, 0, sys_quotactl, "quotactl" }, /* 179 */
54 { }, /* 180 */
55- { }, /* 181 */
56- { }, /* 182 */
57- { }, /* 183 */
58- { }, /* 184 */
59- { }, /* 185 */
60+ { 5, 0, sys_getpmsg, "getpmsg" }, /* 181 */
61+ { 5, 0, sys_putpmsg, "putpmsg" }, /* 182 */
62+ { 5, 0, sys_afs_syscall, "afs_syscall" }, /* 183 */
63+ { 3, 0, sys_tuxcall, "tuxcall" }, /* 184 */
64+ { 3, 0, sys_security, "security" }, /* 185 */
65 { 0, 0, sys_gettid, "gettid" }, /* 186 */
66 { 4, TD, sys_readahead, "readahead" }, /* 187 */
67 { 5, TF, sys_setxattr, "setxattr" }, /* 188 */
68@@ -325,7 +325,7 @@
69 { 4, 0, sys_ptrace, "ptrace" }, /* 521 */
70 { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 522 */
71 { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait" }, /* 523 */
72- { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo" }, /* 524 */
73+ { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo" }, /* 524 */
74 { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 525 */
75 { 3, 0, sys_timer_create, "timer_create" }, /* 526 */
76 { 2, 0, sys_mq_notify, "mq_notify" }, /* 527 */
77@@ -337,8 +337,8 @@
78 { 6, 0, sys_move_pages, "move_pages" }, /* 533 */
79 { 5, TD, sys_preadv, "preadv" }, /* 534 */
80 { 5, TD, sys_pwritev, "pwritev" }, /* 535 */
81- { 4, TP|TS, sys_rt_tgsigqueueinfo, "rt_tgsigqueueinfo"}, /* 536 */
82+ { 4, TP|TS, sys_rt_tgsigqueueinfo, "rt_tgsigqueueinfo" }, /* 536 */
83 { 5, TN, sys_recvmmsg, "recvmmsg" }, /* 537 */
84 { 4, TN, sys_sendmmsg, "sendmmsg" }, /* 538 */
85- { 6, 0, sys_process_vm_readv, "process_vm_readv"}, /* 539 */
86- { 6, 0, sys_process_vm_writev, "process_vm_writev"}, /* 540 */
87+ { 6, 0, sys_process_vm_readv, "process_vm_readv" }, /* 539 */
88+ { 6, 0, sys_process_vm_writev, "process_vm_writev" }, /* 540 */
diff --git a/meta/recipes-devtools/strace/strace_4.7.bb b/meta/recipes-devtools/strace/strace_4.7.bb
index e7ab0cb0bd..21dd47a811 100644
--- a/meta/recipes-devtools/strace/strace_4.7.bb
+++ b/meta/recipes-devtools/strace/strace_4.7.bb
@@ -3,13 +3,16 @@ HOMEPAGE = "http://strace.sourceforge.net"
3SECTION = "console/utils" 3SECTION = "console/utils"
4LICENSE = "BSD" 4LICENSE = "BSD"
5LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=124500c21e856f0912df29295ba104c7" 5LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=124500c21e856f0912df29295ba104c7"
6PR = "r0" 6PR = "r1"
7 7
8PACKAGES =+ "${PN}-graph " 8PACKAGES =+ "${PN}-graph "
9FILES_${PN}-graph = "${bindir}/strace-graph" 9FILES_${PN}-graph = "${bindir}/strace-graph"
10RDEPENDS_${PN}-graph = "perl" 10RDEPENDS_${PN}-graph = "perl"
11 11
12SRC_URI = "${SOURCEFORGE_MIRROR}/strace/strace-${PV}.tar.xz" 12SRC_URI = "${SOURCEFORGE_MIRROR}/strace/strace-${PV}.tar.xz \
13 file://strace-eglibc-2.16.patch \
14 file://strace-x32.patch \
15 "
13 16
14SRC_URI[md5sum] = "6054c3880a00c6703f83b57f15e04642" 17SRC_URI[md5sum] = "6054c3880a00c6703f83b57f15e04642"
15SRC_URI[sha256sum] = "c49cd98873c119c5f201356200a9b9687da1ceea83a05047e2ae0a7ac1e41195" 18SRC_URI[sha256sum] = "c49cd98873c119c5f201356200a9b9687da1ceea83a05047e2ae0a7ac1e41195"