summaryrefslogtreecommitdiffstats
path: root/libexec
diff options
context:
space:
mode:
authorgonzo <gonzo@FreeBSD.org>2012-03-23 17:54:06 +0000
committergonzo <gonzo@FreeBSD.org>2012-03-23 17:54:06 +0000
commit7c6992b55a66e6ea3dbd1054ba5b013c8eb5c202 (patch)
tree1e2f330c89dbbaa1ce9296f9d593a02ca304378c /libexec
parentaeccd8bc9c4ea46cdcd36a520c6d368002605052 (diff)
downloadFreeBSD-src-7c6992b55a66e6ea3dbd1054ba5b013c8eb5c202.zip
FreeBSD-src-7c6992b55a66e6ea3dbd1054ba5b013c8eb5c202.tar.gz
Before jumping to application's entry point set ra == pc in order
to let backtracing routine know to go no further.
Diffstat (limited to 'libexec')
-rw-r--r--libexec/rtld-elf/mips/rtld_start.S3
1 files changed, 2 insertions, 1 deletions
diff --git a/libexec/rtld-elf/mips/rtld_start.S b/libexec/rtld-elf/mips/rtld_start.S
index 75a4825..a35fced 100644
--- a/libexec/rtld-elf/mips/rtld_start.S
+++ b/libexec/rtld-elf/mips/rtld_start.S
@@ -80,7 +80,8 @@ LEAF(rtld_start)
move a0, s0 /* stack pointer */
move t9, v0
PTR_SUBU sp, 4*SZREG /* ABI requires to reserve memory for 4 regs */
- jr t9 /* _start(sp, cleanup, obj); */
+ move ra,t9 /* RA == PC signals backtrace routine to stop */
+ j t9 /* _start(sp, cleanup, obj); */
move a3, s3 /* restore ps_strings */
END(rtld_start)
OpenPOWER on IntegriCloud