@@ -13,11 +13,11 @@ const unsigned long *_auxv __attribute__((weak));
1313static void __stack_chk_init (void );
1414static void exit (int );
1515
16- extern void (* const __preinit_array_start [])(void ) __attribute__((weak ));
17- extern void (* const __preinit_array_end [])(void ) __attribute__((weak ));
16+ extern void (* const __preinit_array_start [])(int , char * * , char * * ) __attribute__((weak ));
17+ extern void (* const __preinit_array_end [])(int , char * * , char * * ) __attribute__((weak ));
1818
19- extern void (* const __init_array_start [])(void ) __attribute__((weak ));
20- extern void (* const __init_array_end [])(void ) __attribute__((weak ));
19+ extern void (* const __init_array_start [])(int , char * * , char * * ) __attribute__((weak ));
20+ extern void (* const __init_array_end [])(int , char * * , char * * ) __attribute__((weak ));
2121
2222extern void (* const __fini_array_start [])(void ) __attribute__((weak ));
2323extern void (* const __fini_array_end [])(void ) __attribute__((weak ));
@@ -29,7 +29,8 @@ void _start_c(long *sp)
2929 char * * argv ;
3030 char * * envp ;
3131 int exitcode ;
32- void (* const * func )(void );
32+ void (* const * ctor_func )(int , char * * , char * * );
33+ void (* const * dtor_func )(void );
3334 const unsigned long * auxv ;
3435 /* silence potential warning: conflicting types for 'main' */
3536 int _nolibc_main (int , char * * , char * * ) __asm__ ("main" );
@@ -66,16 +67,16 @@ void _start_c(long *sp)
6667 ;
6768 _auxv = auxv ;
6869
69- for (func = __preinit_array_start ; func < __preinit_array_end ; func ++ )
70- (* func )( );
71- for (func = __init_array_start ; func < __init_array_end ; func ++ )
72- (* func )( );
70+ for (ctor_func = __preinit_array_start ; ctor_func < __preinit_array_end ; ctor_func ++ )
71+ (* ctor_func )( argc , argv , envp );
72+ for (ctor_func = __init_array_start ; ctor_func < __init_array_end ; ctor_func ++ )
73+ (* ctor_func )( argc , argv , envp );
7374
7475 /* go to application */
7576 exitcode = _nolibc_main (argc , argv , envp );
7677
77- for (func = __fini_array_end ; func > __fini_array_start ;)
78- (* -- func )();
78+ for (dtor_func = __fini_array_end ; dtor_func > __fini_array_start ;)
79+ (* -- dtor_func )();
7980
8081 exit (exitcode );
8182}
0 commit comments