diff options
Diffstat (limited to '0010-aarch64-correct-CFI-in-rawmemchr-bug-31113.patch')
-rw-r--r-- | 0010-aarch64-correct-CFI-in-rawmemchr-bug-31113.patch | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/0010-aarch64-correct-CFI-in-rawmemchr-bug-31113.patch b/0010-aarch64-correct-CFI-in-rawmemchr-bug-31113.patch new file mode 100644 index 0000000..b260311 --- /dev/null +++ b/0010-aarch64-correct-CFI-in-rawmemchr-bug-31113.patch @@ -0,0 +1,31 @@ +From 168ae58e6e705a53a71850ee63ba5514fd5d7b70 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab <schwab@suse.de> +Date: Thu, 23 Nov 2023 18:23:46 +0100 +Subject: [PATCH 10/26] aarch64: correct CFI in rawmemchr (bug 31113) + +The .cfi_return_column directive changes the return column for the whole +FDE range. But the actual intent is to tell the unwinder that the value +in x30 (lr) now resides in x15 after the move, and that is expressed by +the .cfi_register directive. + +(cherry picked from commit 3f798427884fa57770e8e2291cf58d5918254bb5) +--- + sysdeps/aarch64/rawmemchr.S | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sysdeps/aarch64/rawmemchr.S b/sysdeps/aarch64/rawmemchr.S +index efc4b7007b..1fff094215 100644 +--- a/sysdeps/aarch64/rawmemchr.S ++++ b/sysdeps/aarch64/rawmemchr.S +@@ -31,7 +31,7 @@ ENTRY (__rawmemchr) + + L(do_strlen): + mov x15, x30 +- cfi_return_column (x15) ++ cfi_register (x30, x15) + mov x14, x0 + bl __strlen + add x0, x14, x0 +-- +2.33.0 + |