From df77bb0e1a9a7531dd18a4e56e82cec6d85fb3f9 Mon Sep 17 00:00:00 2001 From: Joakim Tjernlund Date: Wed, 25 May 2005 23:54:50 +0000 Subject: Prepare for standalone execution of ldso. --- ldso/ldso/i386/dl-startup.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'ldso') diff --git a/ldso/ldso/i386/dl-startup.h b/ldso/ldso/i386/dl-startup.h index b0612b923..95609bbb3 100644 --- a/ldso/ldso/i386/dl-startup.h +++ b/ldso/ldso/i386/dl-startup.h @@ -16,6 +16,17 @@ asm( " call 1f\n" "1: popl %ebx\n" " addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx\n" + " # See if we were run as a command with the executable file\n" + " # name as an extra leading argument.\n" + " movl _dl_skip_args@GOTOFF(%ebx), %eax\n" + " # Pop the original argument count.\n" + " popl %edx\n" + " # Adjust the stack pointer to skip _dl_skip_args words.\n" + " leal (%esp,%eax,4), %esp\n" + " # Subtract _dl_skip_args from argc.\n" + " subl %eax, %edx\n" + " # Push argc back on the stack.\n" + " push %edx\n" " # Pass our FINI ptr() to the user in %edx, as per ELF ABI.\n" " leal _dl_fini@GOTOFF(%ebx), %edx\n" " # Jump to the user's entry point.\n" -- cgit v1.2.3