[PATCH] ucrtbase: Hook up _crt_atexit

Martin Storsjo martin at martin.st
Wed Aug 26 16:06:35 CDT 2015


Add a new, separate entry point for this function. For now, it
has got the same implementation as the normal atexit function.

This function is required for a plain empty exe built with MSVC 2015
with dynamic C runtime to start up.
---
 .../api-ms-win-crt-runtime-l1-1-0.spec                           | 2 +-
 dlls/msvcrt/exit.c                                               | 9 +++++++++
 dlls/ucrtbase/ucrtbase.spec                                      | 2 +-
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/dlls/api-ms-win-crt-runtime-l1-1-0/api-ms-win-crt-runtime-l1-1-0.spec b/dlls/api-ms-win-crt-runtime-l1-1-0/api-ms-win-crt-runtime-l1-1-0.spec
index 8e8fd08..77afe01 100644
--- a/dlls/api-ms-win-crt-runtime-l1-1-0/api-ms-win-crt-runtime-l1-1-0.spec
+++ b/dlls/api-ms-win-crt-runtime-l1-1-0/api-ms-win-crt-runtime-l1-1-0.spec
@@ -29,7 +29,7 @@
 @ cdecl _controlfp(long long) ucrtbase._controlfp
 @ cdecl _controlfp_s(ptr long long) ucrtbase._controlfp_s
 @ stub _crt_at_quick_exit
-@ stub _crt_atexit
+@ cdecl _crt_atexit(ptr) ucrtbase._crt_atexit
 @ stub _crt_debugger_hook
 @ cdecl _endthread() ucrtbase._endthread
 @ cdecl _endthreadex(long) ucrtbase._endthreadex
diff --git a/dlls/msvcrt/exit.c b/dlls/msvcrt/exit.c
index 3d79a4d..0f1343d 100644
--- a/dlls/msvcrt/exit.c
+++ b/dlls/msvcrt/exit.c
@@ -326,6 +326,15 @@ int CDECL MSVCRT_atexit(void (*func)(void))
 }
 
 /*********************************************************************
+ *		_crt_atexit (UCRTBASE.@)
+ */
+int CDECL MSVCRT__crt_atexit(void (*func)(void))
+{
+  TRACE("(%p)\n", func);
+  return MSVCRT__onexit((MSVCRT__onexit_t)func) == (MSVCRT__onexit_t)func ? 0 : -1;
+}
+
+/*********************************************************************
  *		_set_purecall_handler (MSVCR71.@)
  */
 MSVCRT_purecall_handler CDECL _set_purecall_handler(MSVCRT_purecall_handler function)
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec
index aacffb8..bb56408 100644
--- a/dlls/ucrtbase/ucrtbase.spec
+++ b/dlls/ucrtbase/ucrtbase.spec
@@ -241,7 +241,7 @@
 @ cdecl _creat(str long) MSVCRT__creat
 @ cdecl _create_locale(long str) MSVCRT__create_locale
 @ stub _crt_at_quick_exit
-@ stub _crt_atexit
+@ cdecl _crt_atexit(ptr) MSVCRT__crt_atexit
 @ stub _crt_debugger_hook
 @ cdecl _ctime32(ptr) MSVCRT__ctime32
 @ cdecl _ctime32_s(str long ptr) MSVCRT__ctime32_s
-- 
1.8.1.2




More information about the wine-patches mailing list