On Sun, 18 May 2025, Pali Rohár wrote:
On Friday 09 May 2025 18:07:22 Pali Rohár wrote:
On Tuesday 06 May 2025 19:59:31 Martin Storsjö wrote:
On Thu, 17 Apr 2025, Pali Rohár wrote:
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).
---
mingw-w64-crt/crt/crtexe.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mingw-w64-crt/crt/crtexe.c b/mingw-w64-crt/crt/crtexe.c
index 620f08b9467d..46e61fcecb94 100644
--- a/mingw-w64-crt/crt/crtexe.c
+++ b/mingw-w64-crt/crt/crtexe.c
@@ -208,6 +208,7 @@ __tmainCRTStartup (void)
_amsg_exit (8); /* _RT_SPACEARG */
_initterm (__xc_a, __xc_z);
+ __main (); /* C++ initialization. */
__native_startup_state = __initialized;
}
@@ -229,7 +230,6 @@ __tmainCRTStartup (void)
_fpreset ();
duplicate_ppstrings (argc, &argv);
- __main (); /* C++ initialization. */
#ifdef _UNICODE
__winitenv = envp;
#else
--
This makes the constructors be called before _pei386_runtime_relocator -
this will quite certainly break things in some setup. Yes I know a later
patch fixes the order again, but we shouldn't be moving things in such an
order.
// Martin
Ou, I did not notice this. This needs to be reworked, so the code is
always called in the correct order.
Is this right now the only issue needed resolve?
I think so (I don't offhand remember if I commented something else - I
think the other discussion threads have been resolved by just discussing
the mattera).
// Martin
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public