summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/strace
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2018-07-17 17:39:04 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-07-24 11:52:26 +0100
commitfde3ca8b7340f19f53e4939cef5fb2753a158034 (patch)
treea7f1a82da3a3e688cb54ed41d474ed6f8bfa05ed /meta/recipes-devtools/strace
parent6494ab4ab361a53d739caa47fb48ddac44278494 (diff)
downloadpoky-fde3ca8b7340f19f53e4939cef5fb2753a158034.tar.gz
strace: upgrade 4.22 -> 4.23
(From OE-Core rev: 71994715714076e7f4dfb29c91da0a4e293b7e53) Signed-off-by: Ross Burton <ross.burton@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/0001-linux-arm-raw_syscall.h-avoid-r7-specified-register-.patch74
-rw-r--r--meta/recipes-devtools/strace/strace_4.23.bb (renamed from meta/recipes-devtools/strace/strace_4.22.bb)5
2 files changed, 2 insertions, 77 deletions
diff --git a/meta/recipes-devtools/strace/strace/0001-linux-arm-raw_syscall.h-avoid-r7-specified-register-.patch b/meta/recipes-devtools/strace/strace/0001-linux-arm-raw_syscall.h-avoid-r7-specified-register-.patch
deleted file mode 100644
index 8584291ba8..0000000000
--- a/meta/recipes-devtools/strace/strace/0001-linux-arm-raw_syscall.h-avoid-r7-specified-register-.patch
+++ /dev/null
@@ -1,74 +0,0 @@
1From 0c75ebaad09d6d3f2395dfe6160904af883dd0d9 Mon Sep 17 00:00:00 2001
2From: Andre McCurdy <armccurdy@gmail.com>
3Date: Tue, 15 May 2018 15:34:39 -0700
4Subject: [PATCH] linux/arm/raw_syscall.h: avoid r7 specified register
5 variables with Thumb
6
7If Thumb code is being generated and frame pointers are enabled, the
8Thumb frame pointer in r7 clashes with any local variable which may
9need to be assigned to r7 (e.g. the syscall NR when making a raw
10syscall).
11
12With gcc, the double use of r7 results in a build error, e.g.
13
14 strace-4.22/tests/inject-nf.c:86:1: error: r7 cannot be used in asm here
15
16With clang, the double use of r7 can result in the compiler silently
17generating broken code which crashes at run time due to frame pointer
18corruption:
19
20 https://bugs.llvm.org/show_bug.cgi?id=34165
21
22In most cases the problem isn't visible as frame pointers will be
23disabled automatically due to optimisation level. However to handle
24cases where frame pointers are enabled (e.g. when CFLAGS etc are set
25to support a debug build, etc) provide a version of raw_syscall_0
26which manually saves and restores the frame pointer value in r7
27to a temporary register before setting up the syscall NR in r7
28and invoking the syscall.
29
30* linux/arm/raw_syscall.h (raw_syscall_0) [__thumb__]: Provide
31an alternative version.
32
33Upstream-Status: Backport
34
35Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
36---
37 linux/arm/raw_syscall.h | 15 +++++++++++++++
38 1 file changed, 15 insertions(+)
39
40diff --git a/linux/arm/raw_syscall.h b/linux/arm/raw_syscall.h
41index 69c7e23..ec534ec 100644
42--- a/linux/arm/raw_syscall.h
43+++ b/linux/arm/raw_syscall.h
44@@ -36,12 +36,27 @@ static inline kernel_ulong_t
45 raw_syscall_0(const kernel_ulong_t nr, kernel_ulong_t *err)
46 {
47 *err = 0;
48+
49+#ifdef __thumb__ /* && FRAME_POINTERS_ENABLED */
50+
51+ register kernel_ulong_t rt;
52+ register kernel_ulong_t r0 __asm__("r0");
53+ __asm__ __volatile__("mov %1,r7; mov r7,%2; swi 0x0; mov r7,%1"
54+ : "=r"(r0), "=&r"(rt)
55+ : "r"(nr)
56+ : "memory");
57+
58+#else
59+
60 register kernel_ulong_t r7 __asm__("r7") = nr;
61 register kernel_ulong_t r0 __asm__("r0");
62 __asm__ __volatile__("swi 0x0"
63 : "=r"(r0)
64 : "r"(r7)
65 : "memory");
66+
67+#endif
68+
69 return r0;
70 }
71 # define raw_syscall_0 raw_syscall_0
72--
731.9.1
74
diff --git a/meta/recipes-devtools/strace/strace_4.22.bb b/meta/recipes-devtools/strace/strace_4.23.bb
index 99691f87c3..0c159fc6f6 100644
--- a/meta/recipes-devtools/strace/strace_4.22.bb
+++ b/meta/recipes-devtools/strace/strace_4.23.bb
@@ -14,10 +14,9 @@ SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \
14 file://mips-SIGEMT.patch \ 14 file://mips-SIGEMT.patch \
15 file://0001-caps-abbrev.awk-fix-gawk-s-path.patch \ 15 file://0001-caps-abbrev.awk-fix-gawk-s-path.patch \
16 file://0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch \ 16 file://0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch \
17 file://0001-linux-arm-raw_syscall.h-avoid-r7-specified-register-.patch \
18 " 17 "
19SRC_URI[md5sum] = "7a2a7d7715da6e6834bc65bd09bace1c" 18SRC_URI[md5sum] = "fad4bba0947553cef34d46a9fd78f039"
20SRC_URI[sha256sum] = "068cd09264c95e4d591bbcd3ea08f99a693ed8663cd5169b0fdad72eb5bdb39d" 19SRC_URI[sha256sum] = "7860a6965f1dd832747bd8281a04738274398d32c56e9fbd0a68b1bb9ec09aad"
21 20
22inherit autotools ptest bluetooth 21inherit autotools ptest bluetooth
23 22