X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Usermode%2FLibraries%2Fcrt0.o_src%2Fcrt0.c;h=8363aea9ae889bcdf02e098e47123f77fc06f14d;hb=67be203adb74a30134d277c346ca2f82e0fe0850;hp=7c0e3ff9f6b4c4590806bca6d01a2ff8101a29df;hpb=fb6e2db49eccb97eff2d27b00bdbecb2d3c50b92;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/crt0.o_src/crt0.c b/Usermode/Libraries/crt0.o_src/crt0.c index 7c0e3ff9..8363aea9 100644 --- a/Usermode/Libraries/crt0.o_src/crt0.c +++ b/Usermode/Libraries/crt0.o_src/crt0.c @@ -6,10 +6,16 @@ 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; @@ -21,6 +27,6 @@ int start(int argc, char *argv[], char **envp) if( _crt0_exit_handler ) _crt0_exit_handler(); - - return rv; + + _exit(rv); }