Changeset View
Changeset View
Standalone View
Standalone View
head/lib/csu/i386/crt1_c.c
Show First 20 Lines • Show All 50 Lines • ▼ Show 20 Lines | |||||
/* The entry function, C part. */ | /* The entry function, C part. */ | ||||
void | void | ||||
_start1(fptr cleanup, int argc, char *argv[]) | _start1(fptr cleanup, int argc, char *argv[]) | ||||
{ | { | ||||
char **env; | char **env; | ||||
env = argv + argc + 1; | env = argv + argc + 1; | ||||
handle_argv(argc, argv, env); | handle_argv(argc, argv, env); | ||||
if (&_DYNAMIC != NULL) | if (&_DYNAMIC != NULL) { | ||||
atexit(cleanup); | atexit(cleanup); | ||||
else | } else { | ||||
process_irelocs(); | |||||
_init_tls(); | _init_tls(); | ||||
} | |||||
#ifdef GCRT | #ifdef GCRT | ||||
atexit(_mcleanup); | atexit(_mcleanup); | ||||
monstartup(&eprol, &etext); | monstartup(&eprol, &etext); | ||||
__asm__("eprol:"); | __asm__("eprol:"); | ||||
#endif | #endif | ||||
handle_static_init(argc, argv, env); | handle_static_init(argc, argv, env); | ||||
exit(main(argc, argv, env)); | exit(main(argc, argv, env)); | ||||
} | } | ||||
__asm(".hidden _start1"); | __asm(".hidden _start1"); |