summaryrefslogtreecommitdiff
path: root/0010-aarch64-correct-CFI-in-rawmemchr-bug-31113.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-10-09 03:36:26 +0000
committerCoprDistGit <infra@openeuler.org>2024-10-09 03:36:26 +0000
commitdb43dfdfa8bc2b938582aef3d87e43594c13ee50 (patch)
tree47b95b2f6ac8d8b7e6fa373a5bd7d661bf7234df /0010-aarch64-correct-CFI-in-rawmemchr-bug-31113.patch
parentb933872de72b006230559f77acc3ccfb38a1f343 (diff)
automatic import of glibcopeneuler20.03
Diffstat (limited to '0010-aarch64-correct-CFI-in-rawmemchr-bug-31113.patch')
-rw-r--r--0010-aarch64-correct-CFI-in-rawmemchr-bug-31113.patch31
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
+