OSDN Git Service

Patch from Stefan Holst to fix argv[0]
authorEric Andersen <andersen@codepoet.org>
Fri, 19 Mar 2004 20:38:10 +0000 (20:38 -0000)
committerEric Andersen <andersen@codepoet.org>
Fri, 19 Mar 2004 20:38:10 +0000 (20:38 -0000)
libc/sysdeps/linux/sparc/crt0.c

index 8272f3d..81caf1e 100644 (file)
@@ -28,16 +28,16 @@ void (*mainp)(int argc,void *argv,void *envp) = main;
 extern void __uClibc_main(int argc,void *argv,void *envp);
 
 
-void _start(unsigned int first_arg)
+void _start(void)
 {
        unsigned int argc;
        char **argv, **envp;
        unsigned long *stack;
 
-       stack = (unsigned long*) &first_arg;
-       argc = *(stack - 1);
-       argv = (char **) stack;
-       envp = (char **)stack + argc + 1;
+       stack = ((unsigned long*)__builtin_frame_address(0))+16;
+       argc = *stack;
+       argv = (char **)stack + 1;
+       envp = (char **)stack + argc + 2;
 
        __uClibc_main(argc, argv, envp);
 }