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);
 }
 
 
