From fa2bdd711212ba6b7a94a20971e8bfa281e73296 Mon Sep 17 00:00:00 2001 From: Uneven Prankster Date: Wed, 12 Jul 2023 13:22:29 -0300 Subject: lol --- tinycc/win32/lib/crtinit.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 tinycc/win32/lib/crtinit.c (limited to 'tinycc/win32/lib/crtinit.c') diff --git a/tinycc/win32/lib/crtinit.c b/tinycc/win32/lib/crtinit.c new file mode 100644 index 0000000..31f087b --- /dev/null +++ b/tinycc/win32/lib/crtinit.c @@ -0,0 +1,26 @@ +//+--------------------------------------------------------------------------- + +#ifdef __leading_underscore +# define _(s) s +#else +# define _(s) _##s +#endif + +extern void (*_(_init_array_start)[]) (int argc, _TCHAR **argv, _TCHAR **envp); +extern void (*_(_init_array_end)[]) (int argc, _TCHAR **argv, _TCHAR **envp); +extern void (*_(_fini_array_start)[]) (void); +extern void (*_(_fini_array_end)[]) (void); + +static void run_ctors(int argc, _TCHAR **argv, _TCHAR **env) +{ + int i = 0; + while (&_(_init_array_start)[i] != _(_init_array_end)) + (*_(_init_array_start)[i++])(argc, argv, env); +} + +static void run_dtors(void) +{ + int i = 0; + while (&_(_fini_array_end)[i] != _(_fini_array_start)) + (*_(_fini_array_end)[--i])(); +} -- cgit v1.2.3