typedef void (*exithandler_t)(void);
typedef void (*constructor_t)(void);
+constructor_t _crtbegin_ctors[0] __attribute__((section(".ctors")));
+
exithandler_t _crt0_exit_handler;
-extern constructor_t _crtbegin_ctors[];
+//extern constructor_t _crtbegin_ctors[];
+extern void _exit(int status) __attribute__((noreturn));
+extern int main(int argc, char *argv[], char **envp);
+
+void _start(int argc, char *argv[], char **envp) __attribute__ ((alias("start")));
-int start(int argc, char *argv[], char **envp)
+void start(int argc, char *argv[], char **envp)
{
int i;
int rv;
if( _crt0_exit_handler )
_crt0_exit_handler();
-
- return rv;
+
+ _exit(rv);
}