void attribute_hidden _init (int argc, char **argv, char **envp) { #endif #ifdef USE_NONOPTION_FLAGS extern void __getopt_clean_environment (char **); #endif __libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up; /* Make sure we don't initialize twice. */ if (!__libc_multiple_libcs) { /* Set the FPU control word to the proper default value if the kernel would use a different value. (In a static program we don't have this information.) */ #ifdef SHARED if (__fpu_control != GLRO(dl_fpu_control)) #endif __setfpucw (__fpu_control); } /* Save the command-line arguments. */ __libc_argc = argc; __libc_argv = argv; __environ = envp; #ifndef SHARED // !BAM // __libc_init_secure (); /* First the initialization which normally would be done by the dynamic linker. */ // !BAM // _dl_non_dynamic_init (); #endif #ifdef VDSO_SETUP VDSO_SETUP (); #endif __init_misc (argc, argv, envp); #ifdef USE_NONOPTION_FLAGS /* This is a hack to make the special getopt in GNU libc working. */ __getopt_clean_environment (envp); #endif /* Initialize ctype data. */ __ctype_init (); #if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS __libc_global_ctors (); #endif }
void attribute_hidden _init (int argc, char **argv, char **envp) { #endif __libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up; /* Make sure we don't initialize twice. */ if (!__libc_multiple_libcs) { /* Set the FPU control word to the proper default value if the kernel would use a different value. */ if (__fpu_control != GLRO(dl_fpu_control)) __setfpucw (__fpu_control); } /* Save the command-line arguments. */ __libc_argc = argc; __libc_argv = argv; __environ = envp; #ifndef SHARED /* First the initialization which normally would be done by the dynamic linker. */ _dl_non_dynamic_init (); #endif #ifdef VDSO_SETUP VDSO_SETUP (); #endif __init_misc (argc, argv, envp); /* Initialize ctype data. */ __ctype_init (); #if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS __libc_global_ctors (); #endif }