crt: exe: Invoke gcc c++ constructors after msvc c++ constructors
Function __main() is function for executing gcc c++ constructors. Move it
into guarded code which prevents duplicate code execution, after executing
msvc c++ constructors (__xc_a-__xc_z callbacks).
Signed-off-by: Martin Storsjö <martin@martin.st>
diff --git a/mingw-w64-crt/crt/crtexe.c b/mingw-w64-crt/crt/crtexe.c
index 0f79c0a..00221ea 100644
--- a/mingw-w64-crt/crt/crtexe.c
+++ b/mingw-w64-crt/crt/crtexe.c
@@ -216,6 +216,7 @@
_amsg_exit (8); /* _RT_SPACEARG */
_initterm (__xc_a, __xc_z);
+ __main (); /* C++ initialization. */
__native_startup_state = __initialized;
}
@@ -228,7 +229,6 @@
__dyn_tls_init_callback (NULL, DLL_THREAD_ATTACH, NULL);
duplicate_ppstrings (argc, &argv);
- __main (); /* C++ initialization. */
#ifdef _UNICODE
__winitenv = envp;
#else