diff options
author | Dale Rahn <drahn@cvs.openbsd.org> | 2006-11-10 22:26:41 +0000 |
---|---|---|
committer | Dale Rahn <drahn@cvs.openbsd.org> | 2006-11-10 22:26:41 +0000 |
commit | 9ee00d51e1b2f24df4bc28f7fe015c0aa903cf12 (patch) | |
tree | 19cdab25db2acbf5d5582767a69791385f65f3da /libexec/ld.so/sh | |
parent | 798c224f33cc20a523c2f37e2b87b61358aeb2c4 (diff) |
dont want to know where this stack corruption is coming from.
Diffstat (limited to 'libexec/ld.so/sh')
-rw-r--r-- | libexec/ld.so/sh/ldasm.S | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libexec/ld.so/sh/ldasm.S b/libexec/ld.so/sh/ldasm.S index ed7ea5674c2..c3facca9724 100644 --- a/libexec/ld.so/sh/ldasm.S +++ b/libexec/ld.so/sh/ldasm.S @@ -1,4 +1,4 @@ -/* $OpenBSD: ldasm.S,v 1.2 2006/11/10 21:19:54 drahn Exp $ */ +/* $OpenBSD: ldasm.S,v 1.3 2006/11/10 22:26:40 drahn Exp $ */ /* * Copyright (c) 2006 Dale Rahn @@ -31,7 +31,8 @@ * bug that I couldn't find. */ -#define DL_DATA_SIZE (4096 + 16 * 4) /* XXX */ +#define DL_DATA_SIZE (8192 + 16 * 4) /* XXX */ +#define DATA_OFFSET (48) /* XXX */ #include <machine/asm.h> #include <sys/syscall.h> #include <SYS.h> @@ -42,7 +43,9 @@ ENTRY(_dl_start) mov r15, r4 // boot_bind(sp, dl_data) (sp) mov.l .L_datasize, r0 sub r0, r15 + mov.l .L_offset, r0 mov r15, r5 + add r0, r5 mov r5, r13 // not trusting register to store the data, push it on the stack. // callee/caller save questions @@ -111,6 +114,8 @@ ENTRY(_dl_start) .long _dl_boot-.L_call_boot .L_datasize: .long 4+4+DL_DATA_SIZE +.L_offset: + .long DATA_OFFSET .L_dynamic: .long _DYNAMIC-.L_offbase .L_loff: |