Correct old bogosity
diff --git a/klibc/arch/README b/klibc/arch/README
index 9a76577..b97aaca 100644
--- a/klibc/arch/README
+++ b/klibc/arch/README
@@ -8,29 +8,17 @@
functionality.
-extern char **environ;
-extern int main(int, char **, char **);
-extern __noreturn exit(int);
+extern __noreturn __libc_init(void *, void *);
__noreturn _start(void)
{
- intptr_t *argptr = __stack_pointer(); /* Usually -- e.g. SPARC is special */
- int argc;
- char **argv, **envp;
+ void *elf_data = get_elf_data_address(); /* Usually the stack address */
+ void *atexit_ptr = get_atexit_ptr(); /* Usually in a register */
-#if STACK_GROWS_UP
- argc = (int)*argptr--;
- argv = (char **)argptr;
- envp = argv-(argc+1);
-#else
- argc = (int)*argptr++;
- argv = (char **)argptr;
- envp = argv+(argc+1);
-#endif
+ /* Some architectures need this for debugging to work */
+ setup_null_stack_frame_if_necessary();
- environ = envp;
-
- exit(main(argc, argv, envp));
+ __libc_init(elf_data, atexit_ptr);
}