diff options
author | gonzo <gonzo@FreeBSD.org> | 2012-03-23 17:54:06 +0000 |
---|---|---|
committer | gonzo <gonzo@FreeBSD.org> | 2012-03-23 17:54:06 +0000 |
commit | 7c6992b55a66e6ea3dbd1054ba5b013c8eb5c202 (patch) | |
tree | 1e2f330c89dbbaa1ce9296f9d593a02ca304378c | |
parent | aeccd8bc9c4ea46cdcd36a520c6d368002605052 (diff) | |
download | FreeBSD-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.
-rw-r--r-- | libexec/rtld-elf/mips/rtld_start.S | 3 |
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) |