fix the java source compiler
[nestedvm.git] / src / org / ibex / nestedvm / crt0.c
1 #include <stddef.h>
2
3 extern int main(int argc, char **argv, char **envp);
4 extern void exit(int status);
5 extern int atexit(void (*f)());
6
7 /* For constuctors/destructors */
8 extern void _init();
9 extern void _fini();
10
11 extern char _gp[];
12 register char *gp asm("$28");
13  
14 char **environ;
15     
16 void _start(char **argv, char **environ_) {
17     int argc;
18     
19     if(!gp) gp = _gp;
20     
21     environ = environ_;
22     
23     /* Call global constructors */
24     _init();
25     
26     /* Register _fini() to be called on exit */
27     atexit(_fini);
28     
29     /* Count the arguments */
30     for(argc=0;argv[argc];argc++);
31         
32     /* Call main and exit */
33     exit(main(argc,argv,environ));
34 }