diff options
Diffstat (limited to 'mdk-stage1/dietlibc/dyn_start.c')
-rw-r--r-- | mdk-stage1/dietlibc/dyn_start.c | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/mdk-stage1/dietlibc/dyn_start.c b/mdk-stage1/dietlibc/dyn_start.c deleted file mode 100644 index 391797e12..000000000 --- a/mdk-stage1/dietlibc/dyn_start.c +++ /dev/null @@ -1,40 +0,0 @@ -#include "dietfeatures.h" - -#ifdef WANT_DYNAMIC -#include <stdlib.h> - -typedef void(*structor)(void); - -__attribute__((section(".ctors"))) -static structor __CTOR_LIST__[1]={((structor)-1)}; - -__attribute__((section(".dtors"))) -static structor __DTOR_LIST__[1]={((structor)-1)}; - -static void __do_global_dtors_aux(void) -{ - structor *df=__CTOR_LIST__; /* ugly trick to prevent warning */ - for (df=((__DTOR_LIST__)+1);(*df) != (structor)0; df++) (*df)(); -} - -void _fini(void) __attribute__((section(".fini"))); -__attribute__((section(".fini"))) void _fini(void) -{ - __do_global_dtors_aux(); -} - -#ifndef __DYN_LIB_SHARED -/* pre main, post _start */ -int _dyn_start(int argc, char **argv, char **envp, structor dl_init); -int _dyn_start(int argc, char **argv, char **envp, structor dl_init) -{ - static __attribute__((section(".init"))) void _init(void); - int main(int argc, char **argv, char **envp); - - if (dl_init) atexit(dl_init); - _init(); - atexit(_fini); - return main(argc, argv, envp); -} -#endif -#endif |