diff options
author | Ross Burton <ross.burton@intel.com> | 2018-07-17 17:39:04 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-07-24 11:52:26 +0100 |
commit | fde3ca8b7340f19f53e4939cef5fb2753a158034 (patch) | |
tree | a7f1a82da3a3e688cb54ed41d474ed6f8bfa05ed /meta | |
parent | 6494ab4ab361a53d739caa47fb48ddac44278494 (diff) | |
download | poky-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')
-rw-r--r-- | meta/recipes-devtools/strace/strace/0001-linux-arm-raw_syscall.h-avoid-r7-specified-register-.patch | 74 | ||||
-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 @@ | |||
1 | From 0c75ebaad09d6d3f2395dfe6160904af883dd0d9 Mon Sep 17 00:00:00 2001 | ||
2 | From: Andre McCurdy <armccurdy@gmail.com> | ||
3 | Date: Tue, 15 May 2018 15:34:39 -0700 | ||
4 | Subject: [PATCH] linux/arm/raw_syscall.h: avoid r7 specified register | ||
5 | variables with Thumb | ||
6 | |||
7 | If Thumb code is being generated and frame pointers are enabled, the | ||
8 | Thumb frame pointer in r7 clashes with any local variable which may | ||
9 | need to be assigned to r7 (e.g. the syscall NR when making a raw | ||
10 | syscall). | ||
11 | |||
12 | With 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 | |||
16 | With clang, the double use of r7 can result in the compiler silently | ||
17 | generating broken code which crashes at run time due to frame pointer | ||
18 | corruption: | ||
19 | |||
20 | https://bugs.llvm.org/show_bug.cgi?id=34165 | ||
21 | |||
22 | In most cases the problem isn't visible as frame pointers will be | ||
23 | disabled automatically due to optimisation level. However to handle | ||
24 | cases where frame pointers are enabled (e.g. when CFLAGS etc are set | ||
25 | to support a debug build, etc) provide a version of raw_syscall_0 | ||
26 | which manually saves and restores the frame pointer value in r7 | ||
27 | to a temporary register before setting up the syscall NR in r7 | ||
28 | and invoking the syscall. | ||
29 | |||
30 | * linux/arm/raw_syscall.h (raw_syscall_0) [__thumb__]: Provide | ||
31 | an alternative version. | ||
32 | |||
33 | Upstream-Status: Backport | ||
34 | |||
35 | Signed-off-by: Andre McCurdy <armccurdy@gmail.com> | ||
36 | --- | ||
37 | linux/arm/raw_syscall.h | 15 +++++++++++++++ | ||
38 | 1 file changed, 15 insertions(+) | ||
39 | |||
40 | diff --git a/linux/arm/raw_syscall.h b/linux/arm/raw_syscall.h | ||
41 | index 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 | -- | ||
73 | 1.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 | " |
19 | SRC_URI[md5sum] = "7a2a7d7715da6e6834bc65bd09bace1c" | 18 | SRC_URI[md5sum] = "fad4bba0947553cef34d46a9fd78f039" |
20 | SRC_URI[sha256sum] = "068cd09264c95e4d591bbcd3ea08f99a693ed8663cd5169b0fdad72eb5bdb39d" | 19 | SRC_URI[sha256sum] = "7860a6965f1dd832747bd8281a04738274398d32c56e9fbd0a68b1bb9ec09aad" |
21 | 20 | ||
22 | inherit autotools ptest bluetooth | 21 | inherit autotools ptest bluetooth |
23 | 22 | ||