-- Best regards, Liu Hao
From 895f17608aab6d04bb0254ab58ad2bbe98ecc8fe Mon Sep 17 00:00:00 2001 From: Liu Hao <[email protected]> Date: Sun, 25 Apr 2021 00:20:47 +0800 Subject: [PATCH] crt: Implement `at_quick_exit()` `at_quick_exit()` was added in 7dda261ef062073eed4ed5b46effa3edd4a658fc. However it is not exported from any DLL, so we have to implement it ourselves. This matches Microsoft UCRT implementation and our `_onexit()`. Signed-off-by: Liu Hao <[email protected]> --- mingw-w64-crt/crt/ucrtbase_compat.c | 8 ++++++++ mingw-w64-headers/crt/corecrt_startup.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/mingw-w64-crt/crt/ucrtbase_compat.c b/mingw-w64-crt/crt/ucrtbase_compat.c index d04f5f23..e5cfe9a2 100644 --- a/mingw-w64-crt/crt/ucrtbase_compat.c +++ b/mingw-w64-crt/crt/ucrtbase_compat.c @@ -47,6 +47,7 @@ _CRTIMP char*** __cdecl __p__environ(void); _CRTIMP wchar_t*** __cdecl __p__wenviron(void); _CRTIMP int __cdecl _crt_atexit(_onexit_t func); +_CRTIMP int __cdecl _crt_at_quick_exit(_onexit_t func); _CRTIMP int __cdecl _initialize_narrow_environment(void); _CRTIMP int __cdecl _initialize_wide_environment(void); @@ -89,6 +90,13 @@ _onexit_t __cdecl _onexit(_onexit_t func) _onexit_t __cdecl (*__MINGW_IMP_SYMBOL(_onexit))(_onexit_t func) = _onexit; +int __cdecl at_quick_exit(_onexit_t func) +{ + return _crt_at_quick_exit(func); +} + +int __cdecl (*__MINGW_IMP_SYMBOL(at_quick_exit))(_onexit_t func) = at_quick_exit; + void __cdecl _amsg_exit(int ret) { fprintf(stderr, "runtime error %d\n", ret); } diff --git a/mingw-w64-headers/crt/corecrt_startup.h b/mingw-w64-headers/crt/corecrt_startup.h index 2f47cb51..e1732e7f 100644 --- a/mingw-w64-headers/crt/corecrt_startup.h +++ b/mingw-w64-headers/crt/corecrt_startup.h @@ -32,6 +32,8 @@ typedef int (__cdecl *_onexit_t)(void); _CRTIMP int __cdecl _initialize_onexit_table(_onexit_table_t*); _CRTIMP int __cdecl _register_onexit_function(_onexit_table_t*,_onexit_t); _CRTIMP int __cdecl _execute_onexit_table(_onexit_table_t*); +_CRTIMP int __cdecl _crt_atexit(_PVFV); +_CRTIMP int __cdecl _crt_at_quick_exit(_PVFV); #ifdef __cplusplus } -- 2.31.1
OpenPGP_signature
Description: OpenPGP digital signature
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
