From: Mao Han <han_mao@c-sky.com>
To: libc-alpha@sourceware.org
Cc: Mao Han <han_mao@c-sky.com>
Subject: [PATCH 3/4] C-SKY: mark lr as undefined to stop unwinding
Date: Thu, 7 Mar 2019 09:34:05 +0800 [thread overview]
Message-ID: <52cd01f3630c1c06c0d526e30acd6f4a0a3c3f4f.1551922357.git.han_mao@c-sky.com> (raw)
In-Reply-To: <edbba2b7bdb7bb93dd1be5e068c6af81f845da8f.1551922357.git.han_mao@c-sky.com>
In-Reply-To: <edbba2b7bdb7bb93dd1be5e068c6af81f845da8f.1551922357.git.han_mao@c-sky.com>
Mark the lr register as undefined at the start of execution, so unwind
will stop at this frame. run-backtrace-*.sh from elfutils testsuite will
fail without this patch.
* sysdeps/csky/abiv2/start.S: Likewise.
* sysdeps/unix/sysv/linux/csky/abiv1/setcontext.S: Likewise.
* sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S: Likewise.
---
ChangeLog | 6 ++++++
sysdeps/csky/abiv2/start.S | 4 ++++
sysdeps/unix/sysv/linux/csky/abiv2/clone.S | 7 +++++--
sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S | 2 ++
4 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 713e512..c95dfbc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2019-02-15 Mao Han <han_mao@c-sky.com>
+ * sysdeps/csky/abiv2/start.S: Likewise.
+ * sysdeps/unix/sysv/linux/csky/abiv2/clone.S: Likewise.
+ * sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S: Likewise.
+
+2019-02-13 Mao Han <han_mao@c-sky.com>
+
* sysdeps/unix/sysv/linux/csky/sys/procfs.h: Use linux definition
directly.
* sysdeps/unix/sysv/linux/csky/sys/user.h: Remove user_regs
diff --git a/sysdeps/csky/abiv2/start.S b/sysdeps/csky/abiv2/start.S
index 324ed69..b1e6152 100644
--- a/sysdeps/csky/abiv2/start.S
+++ b/sysdeps/csky/abiv2/start.S
@@ -46,6 +46,9 @@
.type _start,@function;
.align 4;
_start:
+ cfi_startproc
+ .cfi_label .Ldummy
+ cfi_undefined (lr)
subi sp, 8
/* Clear the link register since this is the outermost frame. */
movi lr, 0
@@ -96,6 +99,7 @@ _start:
/* Should never get here. */
jsri abort
#endif /* !SHARED */
+ cfi_endproc
.size _start,.-_start
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/clone.S b/sysdeps/unix/sysv/linux/csky/abiv2/clone.S
index 3e7328a..c1352ee 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/clone.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/clone.S
@@ -54,7 +54,7 @@ ENTRY (__clone)
btsti a0, 31 /* Check if return is less than zero. */
bt __do_syscall_error
cmpnei a0, 0
- bf __child
+ bf __thread_start
rts
__error_arg:
@@ -81,7 +81,9 @@ __do_syscall_error:
rts
PSEUDO_END (__clone)
-__child:
+ENTRY (__thread_start)
+ .cfi_label .Ldummy
+ cfi_undefined (lr)
ldw a0, (sp, 4) /* Restore args from new sp. */
ldw a1, (sp, 0) /* Restore function from new sp. */
addi sp, 8
@@ -90,6 +92,7 @@ __child:
/* exit */
lrw r7, __NR_exit
trap 0
+END (__thread_start)
libc_hidden_def (__clone)
weak_alias (__clone, clone)
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S b/sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S
index 6d3f04f..34de6e3 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S
@@ -62,6 +62,8 @@ END (setcontext)
weak_alias (__setcontext, setcontext)
ENTRY (__startcontext)
+ .cfi_label .Ldummy
+ cfi_undefined (lr)
mov a0, r9
cmpnei r9, 0 /* r9 was set in makecontext. */
bf 1f /* null, then exit. */
--
2.7.4
next prev parent reply other threads:[~2019-03-07 1:53 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-07 1:34 [PATCH 1/4] C-SKY: fix sigcontext miss match Mao Han
2019-03-07 1:34 ` [PATCH 2/4] C-SKY: remove user_regs definition Mao Han
2019-03-07 1:34 ` Mao Han [this message]
2019-03-07 1:34 ` [PATCH 4/4] C-SKY: add elf header definition for elfutils Mao Han
2019-03-11 2:59 ` [COMMITTED][PATCH 1/4] C-SKY: fix sigcontext miss match Mao Han
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/libc/involved.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52cd01f3630c1c06c0d526e30acd6f4a0a3c3f4f.1551922357.git.han_mao@c-sky.com \
--to=han_mao@c-sky.com \
--cc=libc-alpha@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).