This allows to remove the whole pre_c_init() function and registration of 
pcinit hook.
---
 mingw-w64-crt/crt/crtdll.c | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/mingw-w64-crt/crt/crtdll.c b/mingw-w64-crt/crt/crtdll.c
index 797a8ab54e1d..6c6ea38f03f7 100644
--- a/mingw-w64-crt/crt/crtdll.c
+++ b/mingw-w64-crt/crt/crtdll.c
@@ -57,16 +57,6 @@ extern WINBOOL WINAPI DllMain (HANDLE hDllHandle, DWORD 
dwReason, LPVOID lpreser
 
 extern WINBOOL WINAPI DllEntryPoint (HANDLE, DWORD, LPVOID);
 
-static int pre_c_init (void);
-
-_CRTALLOC(".CRT$XIAA") _PIFV pcinit = pre_c_init;
-
-static int
-pre_c_init (void)
-{
-  return _initialize_onexit_table(&atexit_table);
-}
-
 WINBOOL WINAPI _CRT_INIT (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
 {
   if (dwReason == DLL_PROCESS_DETACH)
@@ -105,6 +95,9 @@ WINBOOL WINAPI _CRT_INIT (HANDLE hDllHandle, DWORD dwReason, 
LPVOID lpreserved)
 #if defined(__x86_64__) && !defined(__SEH__)
          __mingw_init_ehandler ();
 #endif
+         ret = _initialize_onexit_table (&atexit_table);
+         if (ret != 0)
+           goto i__leave;
          ret = _initterm_e (__xi_a, __xi_z);
          if (ret != 0)
            goto i__leave;
-- 
2.20.1



_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to