mirror of
https://git.yoctoproject.org/poky
synced 2026-09-15 15:49:32 +02:00
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>
This commit is contained in:
committed by
Richard Purdie
parent
6494ab4ab3
commit
fde3ca8b73
@@ -1,74 +0,0 @@
|
|||||||
From 0c75ebaad09d6d3f2395dfe6160904af883dd0d9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andre McCurdy <armccurdy@gmail.com>
|
|
||||||
Date: Tue, 15 May 2018 15:34:39 -0700
|
|
||||||
Subject: [PATCH] linux/arm/raw_syscall.h: avoid r7 specified register
|
|
||||||
variables with Thumb
|
|
||||||
|
|
||||||
If Thumb code is being generated and frame pointers are enabled, the
|
|
||||||
Thumb frame pointer in r7 clashes with any local variable which may
|
|
||||||
need to be assigned to r7 (e.g. the syscall NR when making a raw
|
|
||||||
syscall).
|
|
||||||
|
|
||||||
With gcc, the double use of r7 results in a build error, e.g.
|
|
||||||
|
|
||||||
strace-4.22/tests/inject-nf.c:86:1: error: r7 cannot be used in asm here
|
|
||||||
|
|
||||||
With clang, the double use of r7 can result in the compiler silently
|
|
||||||
generating broken code which crashes at run time due to frame pointer
|
|
||||||
corruption:
|
|
||||||
|
|
||||||
https://bugs.llvm.org/show_bug.cgi?id=34165
|
|
||||||
|
|
||||||
In most cases the problem isn't visible as frame pointers will be
|
|
||||||
disabled automatically due to optimisation level. However to handle
|
|
||||||
cases where frame pointers are enabled (e.g. when CFLAGS etc are set
|
|
||||||
to support a debug build, etc) provide a version of raw_syscall_0
|
|
||||||
which manually saves and restores the frame pointer value in r7
|
|
||||||
to a temporary register before setting up the syscall NR in r7
|
|
||||||
and invoking the syscall.
|
|
||||||
|
|
||||||
* linux/arm/raw_syscall.h (raw_syscall_0) [__thumb__]: Provide
|
|
||||||
an alternative version.
|
|
||||||
|
|
||||||
Upstream-Status: Backport
|
|
||||||
|
|
||||||
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
|
|
||||||
---
|
|
||||||
linux/arm/raw_syscall.h | 15 +++++++++++++++
|
|
||||||
1 file changed, 15 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/linux/arm/raw_syscall.h b/linux/arm/raw_syscall.h
|
|
||||||
index 69c7e23..ec534ec 100644
|
|
||||||
--- a/linux/arm/raw_syscall.h
|
|
||||||
+++ b/linux/arm/raw_syscall.h
|
|
||||||
@@ -36,12 +36,27 @@ static inline kernel_ulong_t
|
|
||||||
raw_syscall_0(const kernel_ulong_t nr, kernel_ulong_t *err)
|
|
||||||
{
|
|
||||||
*err = 0;
|
|
||||||
+
|
|
||||||
+#ifdef __thumb__ /* && FRAME_POINTERS_ENABLED */
|
|
||||||
+
|
|
||||||
+ register kernel_ulong_t rt;
|
|
||||||
+ register kernel_ulong_t r0 __asm__("r0");
|
|
||||||
+ __asm__ __volatile__("mov %1,r7; mov r7,%2; swi 0x0; mov r7,%1"
|
|
||||||
+ : "=r"(r0), "=&r"(rt)
|
|
||||||
+ : "r"(nr)
|
|
||||||
+ : "memory");
|
|
||||||
+
|
|
||||||
+#else
|
|
||||||
+
|
|
||||||
register kernel_ulong_t r7 __asm__("r7") = nr;
|
|
||||||
register kernel_ulong_t r0 __asm__("r0");
|
|
||||||
__asm__ __volatile__("swi 0x0"
|
|
||||||
: "=r"(r0)
|
|
||||||
: "r"(r7)
|
|
||||||
: "memory");
|
|
||||||
+
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
return r0;
|
|
||||||
}
|
|
||||||
# define raw_syscall_0 raw_syscall_0
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
||||||
@@ -14,10 +14,9 @@ SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \
|
|||||||
file://mips-SIGEMT.patch \
|
file://mips-SIGEMT.patch \
|
||||||
file://0001-caps-abbrev.awk-fix-gawk-s-path.patch \
|
file://0001-caps-abbrev.awk-fix-gawk-s-path.patch \
|
||||||
file://0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch \
|
file://0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch \
|
||||||
file://0001-linux-arm-raw_syscall.h-avoid-r7-specified-register-.patch \
|
|
||||||
"
|
"
|
||||||
SRC_URI[md5sum] = "7a2a7d7715da6e6834bc65bd09bace1c"
|
SRC_URI[md5sum] = "fad4bba0947553cef34d46a9fd78f039"
|
||||||
SRC_URI[sha256sum] = "068cd09264c95e4d591bbcd3ea08f99a693ed8663cd5169b0fdad72eb5bdb39d"
|
SRC_URI[sha256sum] = "7860a6965f1dd832747bd8281a04738274398d32c56e9fbd0a68b1bb9ec09aad"
|
||||||
|
|
||||||
inherit autotools ptest bluetooth
|
inherit autotools ptest bluetooth
|
||||||
|
|
||||||
Reference in New Issue
Block a user