From f80da0ba6f06bc3ce66852cd69d1eec5e748b0ef Mon Sep 17 00:00:00 2001 From: "Evgeny Grin (Karlson2k)" Date: Fri, 22 Apr 2022 10:07:21 +0300 Subject: [PATCH] autoinit_funcs.h: added functions prototypes --- src/include/autoinit_funcs.h | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/include/autoinit_funcs.h b/src/include/autoinit_funcs.h index a289b0bc..f48c4f9c 100644 --- a/src/include/autoinit_funcs.h +++ b/src/include/autoinit_funcs.h @@ -67,7 +67,7 @@ * Current version of the header in packed BCD form. * 0x01093001 = 1.9.30-1. */ -#define AUTOINIT_FUNCS_VERSION 0x01000200 +#define AUTOINIT_FUNCS_VERSION 0x01000300 #if defined(__GNUC__) || defined(__clang__) /* if possible - check for supported attribute */ @@ -85,9 +85,11 @@ (defined(__SUNPRO_C) && __SUNPRO_C + 0 >= 0x5100) #define GNUC_SET_INIT_AND_DEINIT(FI,FD) \ - void __attribute__ ((constructor)) _GNUC_init_helper_ ## FI (void) \ + void __attribute__ ((constructor)) _GNUC_init_helper_ ## FI (void); \ + void __attribute__ ((destructor)) _GNUC_deinit_helper_ ## FD (void); \ + void __attribute__ ((constructor)) _GNUC_init_helper_ ## FI (void) \ { (void) (FI) (); } \ - void __attribute__ ((destructor)) _GNUC_deinit_helper_ ## FD (void) \ + void __attribute__ ((destructor)) _GNUC_deinit_helper_ ## FD (void) \ { (void) (FD) (); } \ struct _GNUC_dummy_str_ ## FI {int i;} @@ -204,9 +206,11 @@ #if ! defined(_USRDLL) || defined(AUTOINIT_FUNCS_FORCE_STATIC_REG) #define W32_SET_INIT_AND_DEINIT(FI,FD) \ - void __cdecl _W32_deinit_helper_ ## FD (void) \ + int __cdecl _W32_init_helper_ ## FI (void); \ + void __cdecl _W32_deinit_helper_ ## FD (void); \ + void __cdecl _W32_deinit_helper_ ## FD (void) \ { (void) (FD) (); } \ - int __cdecl _W32_init_helper_ ## FI (void) \ + int __cdecl _W32_init_helper_ ## FI (void) \ { (void) (FI) (); atexit (_W32_deinit_helper_ ## FD); return 0; } \ W32_REGISTER_INIT (_W32_init_helper_ ## FI) #else /* _USRDLL */ @@ -215,7 +219,8 @@ and rename DllMain to usr_DllMain */ #ifndef AUTOINIT_FUNCS_CALL_USR_DLLMAIN #define W32_SET_INIT_AND_DEINIT(FI,FD) \ - BOOL WINAPI DllMain (HINSTANCE hinst,DWORD reason,LPVOID unused) \ + BOOL WINAPI DllMain (HINSTANCE hinst,DWORD reason,LPVOID unused); \ + BOOL WINAPI DllMain (HINSTANCE hinst,DWORD reason,LPVOID unused) \ { if (DLL_PROCESS_ATTACH==reason) {(void) (FI) ();} \ else if (DLL_PROCESS_DETACH==reason) {(void) (FD) ();} \ return TRUE; \ @@ -223,7 +228,8 @@ #else /* AUTOINIT_FUNCS_CALL_USR_DLLMAIN */ #define W32_SET_INIT_AND_DEINIT(FI,FD) \ BOOL WINAPI usr_DllMain (HINSTANCE hinst,DWORD reason,LPVOID unused); \ - BOOL WINAPI DllMain (HINSTANCE hinst,DWORD reason,LPVOID unused) \ + BOOL WINAPI DllMain (HINSTANCE hinst,DWORD reason,LPVOID unused); \ + BOOL WINAPI DllMain (HINSTANCE hinst,DWORD reason,LPVOID unused) \ { if (DLL_PROCESS_ATTACH==reason) {(void) (FI) ();} \ else if (DLL_PROCESS_DETACH==reason) {(void) (FD) ();} \ return usr_DllMain (hinst,reason,unused); \