[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