aboutsummaryrefslogtreecommitdiff
path: root/src/include/autoinit_funcs.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/autoinit_funcs.h')
-rw-r--r--src/include/autoinit_funcs.h20
1 files 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 @@
67* Current version of the header in packed BCD form. 67* Current version of the header in packed BCD form.
68* 0x01093001 = 1.9.30-1. 68* 0x01093001 = 1.9.30-1.
69*/ 69*/
70#define AUTOINIT_FUNCS_VERSION 0x01000200 70#define AUTOINIT_FUNCS_VERSION 0x01000300
71 71
72#if defined(__GNUC__) || defined(__clang__) 72#if defined(__GNUC__) || defined(__clang__)
73/* if possible - check for supported attribute */ 73/* if possible - check for supported attribute */
@@ -85,9 +85,11 @@
85 (defined(__SUNPRO_C) && __SUNPRO_C + 0 >= 0x5100) 85 (defined(__SUNPRO_C) && __SUNPRO_C + 0 >= 0x5100)
86 86
87#define GNUC_SET_INIT_AND_DEINIT(FI,FD) \ 87#define GNUC_SET_INIT_AND_DEINIT(FI,FD) \
88 void __attribute__ ((constructor)) _GNUC_init_helper_ ## FI (void) \ 88 void __attribute__ ((constructor)) _GNUC_init_helper_ ## FI (void); \
89 void __attribute__ ((destructor)) _GNUC_deinit_helper_ ## FD (void); \
90 void __attribute__ ((constructor)) _GNUC_init_helper_ ## FI (void) \
89 { (void) (FI) (); } \ 91 { (void) (FI) (); } \
90 void __attribute__ ((destructor)) _GNUC_deinit_helper_ ## FD (void) \ 92 void __attribute__ ((destructor)) _GNUC_deinit_helper_ ## FD (void) \
91 { (void) (FD) (); } \ 93 { (void) (FD) (); } \
92 struct _GNUC_dummy_str_ ## FI {int i;} 94 struct _GNUC_dummy_str_ ## FI {int i;}
93 95
@@ -204,9 +206,11 @@
204 206
205#if ! defined(_USRDLL) || defined(AUTOINIT_FUNCS_FORCE_STATIC_REG) 207#if ! defined(_USRDLL) || defined(AUTOINIT_FUNCS_FORCE_STATIC_REG)
206#define W32_SET_INIT_AND_DEINIT(FI,FD) \ 208#define W32_SET_INIT_AND_DEINIT(FI,FD) \
207 void __cdecl _W32_deinit_helper_ ## FD (void) \ 209 int __cdecl _W32_init_helper_ ## FI (void); \
210 void __cdecl _W32_deinit_helper_ ## FD (void); \
211 void __cdecl _W32_deinit_helper_ ## FD (void) \
208 { (void) (FD) (); } \ 212 { (void) (FD) (); } \
209 int __cdecl _W32_init_helper_ ## FI (void) \ 213 int __cdecl _W32_init_helper_ ## FI (void) \
210 { (void) (FI) (); atexit (_W32_deinit_helper_ ## FD); return 0; } \ 214 { (void) (FI) (); atexit (_W32_deinit_helper_ ## FD); return 0; } \
211 W32_REGISTER_INIT (_W32_init_helper_ ## FI) 215 W32_REGISTER_INIT (_W32_init_helper_ ## FI)
212#else /* _USRDLL */ 216#else /* _USRDLL */
@@ -215,7 +219,8 @@
215 and rename DllMain to usr_DllMain */ 219 and rename DllMain to usr_DllMain */
216#ifndef AUTOINIT_FUNCS_CALL_USR_DLLMAIN 220#ifndef AUTOINIT_FUNCS_CALL_USR_DLLMAIN
217#define W32_SET_INIT_AND_DEINIT(FI,FD) \ 221#define W32_SET_INIT_AND_DEINIT(FI,FD) \
218 BOOL WINAPI DllMain (HINSTANCE hinst,DWORD reason,LPVOID unused) \ 222 BOOL WINAPI DllMain (HINSTANCE hinst,DWORD reason,LPVOID unused); \
223 BOOL WINAPI DllMain (HINSTANCE hinst,DWORD reason,LPVOID unused) \
219 { if (DLL_PROCESS_ATTACH==reason) {(void) (FI) ();} \ 224 { if (DLL_PROCESS_ATTACH==reason) {(void) (FI) ();} \
220 else if (DLL_PROCESS_DETACH==reason) {(void) (FD) ();} \ 225 else if (DLL_PROCESS_DETACH==reason) {(void) (FD) ();} \
221 return TRUE; \ 226 return TRUE; \
@@ -223,7 +228,8 @@
223#else /* AUTOINIT_FUNCS_CALL_USR_DLLMAIN */ 228#else /* AUTOINIT_FUNCS_CALL_USR_DLLMAIN */
224#define W32_SET_INIT_AND_DEINIT(FI,FD) \ 229#define W32_SET_INIT_AND_DEINIT(FI,FD) \
225 BOOL WINAPI usr_DllMain (HINSTANCE hinst,DWORD reason,LPVOID unused); \ 230 BOOL WINAPI usr_DllMain (HINSTANCE hinst,DWORD reason,LPVOID unused); \
226 BOOL WINAPI DllMain (HINSTANCE hinst,DWORD reason,LPVOID unused) \ 231 BOOL WINAPI DllMain (HINSTANCE hinst,DWORD reason,LPVOID unused); \
232 BOOL WINAPI DllMain (HINSTANCE hinst,DWORD reason,LPVOID unused) \
227 { if (DLL_PROCESS_ATTACH==reason) {(void) (FI) ();} \ 233 { if (DLL_PROCESS_ATTACH==reason) {(void) (FI) ();} \
228 else if (DLL_PROCESS_DETACH==reason) {(void) (FD) ();} \ 234 else if (DLL_PROCESS_DETACH==reason) {(void) (FD) ();} \
229 return usr_DllMain (hinst,reason,unused); \ 235 return usr_DllMain (hinst,reason,unused); \