diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2001-09-24 16:25:01 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2001-09-24 16:25:01 +0000 |
commit | 18dfd9f2c855beb26aacc24ff593ffc3dfbfb032 (patch) | |
tree | 2461792dea50edda29326f7913a3784279ab071e /libexec/ld.so/sparc64 | |
parent | fd23968c29a87b0eec8e96d56d242f9bda88732f (diff) |
dl_data is at the start of the stack, not after env. load loff.
Now _dl_boot starts correctly.
Diffstat (limited to 'libexec/ld.so/sparc64')
-rw-r--r-- | libexec/ld.so/sparc64/ldasm.S | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/libexec/ld.so/sparc64/ldasm.S b/libexec/ld.so/sparc64/ldasm.S index f86f4b2a312..ac4b903ceb5 100644 --- a/libexec/ld.so/sparc64/ldasm.S +++ b/libexec/ld.so/sparc64/ldasm.S @@ -1,4 +1,4 @@ -/* $OpenBSD: ldasm.S,v 1.2 2001/09/23 00:14:56 drahn Exp $ */ +/* $OpenBSD: ldasm.S,v 1.3 2001/09/24 16:25:00 art Exp $ */ /* $NetBSD: rtld_start.S,v 1.5 2001/08/14 22:17:48 eeh Exp $ */ /* @@ -109,14 +109,12 @@ _dl_start: addx %l0, 16, %o1 ! envp = %l0 + 16 + addx %o1, %l3, %o1 ! + argc - ! XXX loff ??? + subx %l0, ARGC, %o4 ! dl_data = sp - mov %o1, %o4 ! %o3 = my_envp -1: - ldx [%o4 + 0], %l2 ! while ((*my_envp) - subxcc %l2, %g0, %g0 ! != NULL) - bnz 1b ! my_envp++; - addx %o4, 8, %o4 ! %o4 == dynp + mov 0, %o3 ! dynp = 0 + + addx %o4, (7*8), %l2 + ldx [%l2], %o2 ! loff = dl_data[AUX_base]; call _dl_boot ! _dl_boot(argv,envp,loff,dynp,dl_data) nop |