[uClibc-cvs] svn commit: trunk/uClibc/ldso/ldso/x86_64
vapier at uclibc.org
vapier at uclibc.org
Fri Jul 8 02:01:25 UTC 2005
Author: vapier
Date: 2005-07-07 20:01:24 -0600 (Thu, 07 Jul 2005)
New Revision: 10744
Log:
fix GET_ARGV() so it pulls out the argc/argv/envp properly
Modified:
trunk/uClibc/ldso/ldso/x86_64/dl-startup.h
Changeset:
Modified: trunk/uClibc/ldso/ldso/x86_64/dl-startup.h
===================================================================
--- trunk/uClibc/ldso/ldso/x86_64/dl-startup.h 2005-07-07 23:45:58 UTC (rev 10743)
+++ trunk/uClibc/ldso/ldso/x86_64/dl-startup.h 2005-07-08 02:01:24 UTC (rev 10744)
@@ -1,7 +1,10 @@
/* vi: set sw=4 ts=4: */
/*
* Architecture specific code used by dl-startup.c
- * Copyright (C) 2000-2004 by Erik Andersen <andersen at codepoet.org>
+ * Copyright (C) 2000-2005 by Erik Andersen <andersen at codepoet.org>
+ * Copyright (C) 2005 by Mike Frysinger <vapier at gentoo.org>
+ *
+ * Parts taken from glibc/sysdeps/x86_64/dl-machine.h
*/
asm(
" .text\n"
@@ -24,6 +27,8 @@
" subl %eax, %edx\n"
" # Push argc back on the stack.\n"
" pushq %rdx\n"
+ " # argc -> rsi\n"
+ " movq %rdx, %rsi\n"
" # Pass our finalizer function to the user in %rdx, as per ELF ABI.\n"
" leaq _dl_fini(%rip), %rdx\n"
" # And make sure %rsp points to argc stored on the stack.\n"
@@ -37,7 +42,7 @@
/* Get a pointer to the argv array. On many platforms this can be just
* the address if the first argument, on other platforms we need to
* do something a little more subtle here. */
-#define GET_ARGV(ARGVP, ARGS) ARGVP = (((unsigned long*) & ARGS)+1)
+#define GET_ARGV(ARGVP, ARGS) ARGVP = (((unsigned long*) ARGS)+1)
/* Handle relocation of the symbols in the dynamic loader. */
static __always_inline
More information about the uClibc-cvs
mailing list