diff --git a/mingw-w64-crt/libsrc/wspiapi/WspiapiGetAddrInfo.c b/mingw-w64-crt/libsrc/wspiapi/WspiapiGetAddrInfo.c
index 445c42a..cc235f7 100644
--- a/mingw-w64-crt/libsrc/wspiapi/WspiapiGetAddrInfo.c
+++ b/mingw-w64-crt/libsrc/wspiapi/WspiapiGetAddrInfo.c
@@ -14,7 +14,7 @@
   int err;
 
   if (!pfGetAddrInfo)
-    pfGetAddrInfo = (WSPIAPI_PGETADDRINFO) WspiapiLoad (0);
+    pfGetAddrInfo = (void*) WspiapiLoad (0);
   err = (*pfGetAddrInfo) (nodename, servname, hints, res);
   WSASetLastError (err);
   return err;
diff --git a/mingw-w64-crt/libsrc/wspiapi/WspiapiGetNameInfo.c b/mingw-w64-crt/libsrc/wspiapi/WspiapiGetNameInfo.c
index ab80595..bf24236 100644
--- a/mingw-w64-crt/libsrc/wspiapi/WspiapiGetNameInfo.c
+++ b/mingw-w64-crt/libsrc/wspiapi/WspiapiGetNameInfo.c
@@ -15,7 +15,7 @@
   int err;
 
   if (!pfGetNameInfo)
-    pfGetNameInfo = (WSPIAPI_PGETNAMEINFO) WspiapiLoad(1);
+    pfGetNameInfo = (void*) WspiapiLoad(1);
   err = (*pfGetNameInfo) (sa, salen, host, hostlen, serv, servlen, flags);
   WSASetLastError (err);
   return err;
diff --git a/mingw-w64-crt/misc/output_format.c b/mingw-w64-crt/misc/output_format.c
index 5bb25cf..d55da8b 100644
--- a/mingw-w64-crt/misc/output_format.c
+++ b/mingw-w64-crt/misc/output_format.c
@@ -46,7 +46,7 @@
 {
   f_set_output_format sof;
 
-  sof = (f_set_output_format) GetProcAddress (__mingw_get_msvcrt_handle(), "_set_output_format");
+  sof = (void*) GetProcAddress (__mingw_get_msvcrt_handle(), "_set_output_format");
   if(!sof)
       sof = fake_set_output_format;
 
@@ -67,7 +67,7 @@
 {
   f_get_output_format gof;
 
-  gof = (f_get_output_format) GetProcAddress (__mingw_get_msvcrt_handle(), "_get_output_format");
+  gof = (void*) GetProcAddress (__mingw_get_msvcrt_handle(), "_get_output_format");
   if(!gof)
       gof = fake_get_output_format;
 
diff --git a/mingw-w64-crt/secapi/_access_s.c b/mingw-w64-crt/secapi/_access_s.c
index 9be582e..130fdcb 100644
--- a/mingw-w64-crt/secapi/_access_s.c
+++ b/mingw-w64-crt/secapi/_access_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(const char *, int))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_access_s");
 	if (!f)
 	  f = _int_access_s;
diff --git a/mingw-w64-crt/secapi/_cgets_s.c b/mingw-w64-crt/secapi/_cgets_s.c
index f81623a..6b6917b 100644
--- a/mingw-w64-crt/secapi/_cgets_s.c
+++ b/mingw-w64-crt/secapi/_cgets_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(char *, size_t, size_t *))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_cgets_s");
 	if (!f)
 	  f = _int_cgets_s;
diff --git a/mingw-w64-crt/secapi/_cgetws_s.c b/mingw-w64-crt/secapi/_cgetws_s.c
index 01ee3d1..42f308d 100644
--- a/mingw-w64-crt/secapi/_cgetws_s.c
+++ b/mingw-w64-crt/secapi/_cgetws_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(wchar_t *, size_t, size_t *))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_cgetws_s");
 	if (!f)
 	  f = _int_cgetws_s;
diff --git a/mingw-w64-crt/secapi/_chsize_s.c b/mingw-w64-crt/secapi/_chsize_s.c
index cd8d066..2501837 100644
--- a/mingw-w64-crt/secapi/_chsize_s.c
+++ b/mingw-w64-crt/secapi/_chsize_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(int, long long))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_chsize_s");
 	if (!f)
 	  f = _int_chsize_s;
diff --git a/mingw-w64-crt/secapi/_controlfp_s.c b/mingw-w64-crt/secapi/_controlfp_s.c
index 32be17c..afdcde1 100644
--- a/mingw-w64-crt/secapi/_controlfp_s.c
+++ b/mingw-w64-crt/secapi/_controlfp_s.c
@@ -45,7 +45,7 @@
 
   if (f == _stub)
     {
-        f = (errno_t __cdecl (*)(unsigned int *, unsigned int, unsigned int))
+        f = (void*)
             GetProcAddress (__mingw_get_msvcrt_handle (), "_controlfp_s");
         if (!f)
           f = _int_controlfp_s;
diff --git a/mingw-w64-crt/secapi/_ctime32_s.c b/mingw-w64-crt/secapi/_ctime32_s.c
index c59ccfc..c5e13ed 100644
--- a/mingw-w64-crt/secapi/_ctime32_s.c
+++ b/mingw-w64-crt/secapi/_ctime32_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(char *, size_t, const __time32_t *))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_ctime32_s");
 	if (!f)
 	  f = _int_ctime32_s;
diff --git a/mingw-w64-crt/secapi/_ctime64_s.c b/mingw-w64-crt/secapi/_ctime64_s.c
index 833d14a..46b2d9f 100644
--- a/mingw-w64-crt/secapi/_ctime64_s.c
+++ b/mingw-w64-crt/secapi/_ctime64_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(char *, size_t, const __time64_t *))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_ctime64_s");
 	if (!f)
 	  f = _int_ctime64_s;
diff --git a/mingw-w64-crt/secapi/_gmtime32_s.c b/mingw-w64-crt/secapi/_gmtime32_s.c
index 7139c24..0ef6a22 100644
--- a/mingw-w64-crt/secapi/_gmtime32_s.c
+++ b/mingw-w64-crt/secapi/_gmtime32_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(struct tm *, const __time32_t *))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_gmtime32_s");
 	if (!f)
 	  f = _int_gmtime32_s;
diff --git a/mingw-w64-crt/secapi/_gmtime64_s.c b/mingw-w64-crt/secapi/_gmtime64_s.c
index c4ca154..de36ffe 100644
--- a/mingw-w64-crt/secapi/_gmtime64_s.c
+++ b/mingw-w64-crt/secapi/_gmtime64_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(struct tm *, const __time64_t *))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_gmtime64_s");
 	if (!f)
 	  f = _int_gmtime64_s;
diff --git a/mingw-w64-crt/secapi/_localtime32_s.c b/mingw-w64-crt/secapi/_localtime32_s.c
index c8a62f6..9ec3540 100644
--- a/mingw-w64-crt/secapi/_localtime32_s.c
+++ b/mingw-w64-crt/secapi/_localtime32_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(struct tm *, const __time32_t *))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_localtime32_s");
 	if (!f)
 	  f = _int_localtime32_s;
diff --git a/mingw-w64-crt/secapi/_localtime64_s.c b/mingw-w64-crt/secapi/_localtime64_s.c
index bff0868..58dbb11 100644
--- a/mingw-w64-crt/secapi/_localtime64_s.c
+++ b/mingw-w64-crt/secapi/_localtime64_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(struct tm *, const __time64_t *))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_localtime64_s");
 	if (!f)
 	  f = _int_localtime64_s;
diff --git a/mingw-w64-crt/secapi/_mktemp_s.c b/mingw-w64-crt/secapi/_mktemp_s.c
index 01484d9..2a72acb 100644
--- a/mingw-w64-crt/secapi/_mktemp_s.c
+++ b/mingw-w64-crt/secapi/_mktemp_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(char *, size_t))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_mktemp_s");
 	if (!f)
 	  f = _int_mktemp_s;
diff --git a/mingw-w64-crt/secapi/_sopen_s.c b/mingw-w64-crt/secapi/_sopen_s.c
index b4f8f6a..6dc6f17 100644
--- a/mingw-w64-crt/secapi/_sopen_s.c
+++ b/mingw-w64-crt/secapi/_sopen_s.c
@@ -14,7 +14,7 @@
     errno_t __cdecl (*f)(int *, const char *, int, int, int) = __MINGW_IMP_SYMBOL(_sopen_s);
 
     if (f == _stub) {
-        f = (errno_t __cdecl (*)(int *, const char *, int, int, int))
+        f = (void*)
             GetProcAddress (__mingw_get_msvcrt_handle (), "_sopen_s");
         if (f == NULL)
             f = _int_sopen_s;
diff --git a/mingw-w64-crt/secapi/_strdate_s.c b/mingw-w64-crt/secapi/_strdate_s.c
index b62dec7..944057a 100644
--- a/mingw-w64-crt/secapi/_strdate_s.c
+++ b/mingw-w64-crt/secapi/_strdate_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(char *, size_t))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_strdate_s");
 	if (!f)
 	  f = _int_strdate_s;
diff --git a/mingw-w64-crt/secapi/_strtime_s.c b/mingw-w64-crt/secapi/_strtime_s.c
index b66e3f9..270ac42 100644
--- a/mingw-w64-crt/secapi/_strtime_s.c
+++ b/mingw-w64-crt/secapi/_strtime_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(char *, size_t))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_strtime_s");
 	if (!f)
 	  f = _int_strtime_s;
diff --git a/mingw-w64-crt/secapi/_umask_s.c b/mingw-w64-crt/secapi/_umask_s.c
index 75e8ddb..a13140d 100644
--- a/mingw-w64-crt/secapi/_umask_s.c
+++ b/mingw-w64-crt/secapi/_umask_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(int, int *))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_umask_s");
 	if (!f)
 	  f = _int_umask_s;
diff --git a/mingw-w64-crt/secapi/_vcprintf_s.c b/mingw-w64-crt/secapi/_vcprintf_s.c
index 91f143f..34eb451 100644
--- a/mingw-w64-crt/secapi/_vcprintf_s.c
+++ b/mingw-w64-crt/secapi/_vcprintf_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (int __cdecl (*)(const char *, va_list))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_vcprintf_s");
 	if (!f)
 	  f = _int_vcprintf_s;
diff --git a/mingw-w64-crt/secapi/_vcprintf_s_l.c b/mingw-w64-crt/secapi/_vcprintf_s_l.c
index 787c76b..bad4904 100644
--- a/mingw-w64-crt/secapi/_vcprintf_s_l.c
+++ b/mingw-w64-crt/secapi/_vcprintf_s_l.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (int __cdecl (*)(const char *, _locale_t, va_list))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_vcprintf_s_l");
 	if (!f)
 	  f = _int_vcprintf_s_l;
diff --git a/mingw-w64-crt/secapi/_vcwprintf_s.c b/mingw-w64-crt/secapi/_vcwprintf_s.c
index 325e866..0cddc52 100644
--- a/mingw-w64-crt/secapi/_vcwprintf_s.c
+++ b/mingw-w64-crt/secapi/_vcwprintf_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (int __cdecl (*)(const wchar_t *, va_list))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_vcwprintf_s");
 	if (!f)
 	  f = _int_vcwprintf_s;
diff --git a/mingw-w64-crt/secapi/_vcwprintf_s_l.c b/mingw-w64-crt/secapi/_vcwprintf_s_l.c
index 4d112a1..978e546 100644
--- a/mingw-w64-crt/secapi/_vcwprintf_s_l.c
+++ b/mingw-w64-crt/secapi/_vcwprintf_s_l.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (int __cdecl (*)(const wchar_t *, _locale_t, va_list))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_vcwprintf_s_l");
 	if (!f)
 	  f = _int_vcwprintf_s_l;
diff --git a/mingw-w64-crt/secapi/_waccess_s.c b/mingw-w64-crt/secapi/_waccess_s.c
index c4825cf..7957312 100644
--- a/mingw-w64-crt/secapi/_waccess_s.c
+++ b/mingw-w64-crt/secapi/_waccess_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(const wchar_t *, int))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_waccess_s");
 	if (!f)
 	  f = _int_waccess_s;
diff --git a/mingw-w64-crt/secapi/_wasctime_s.c b/mingw-w64-crt/secapi/_wasctime_s.c
index 6b414ee..fbc2804 100644
--- a/mingw-w64-crt/secapi/_wasctime_s.c
+++ b/mingw-w64-crt/secapi/_wasctime_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(wchar_t *, size_t, const struct tm *))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_wasctime_s");
 	if (!f)
 	  f = _int_wasctime_s;
diff --git a/mingw-w64-crt/secapi/_wctime32_s.c b/mingw-w64-crt/secapi/_wctime32_s.c
index 27c414b..42d4b8a 100644
--- a/mingw-w64-crt/secapi/_wctime32_s.c
+++ b/mingw-w64-crt/secapi/_wctime32_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(wchar_t *, size_t, const __time32_t *))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_wctime32_s");
 	if (!f)
 	  f = _int_wctime32_s;
diff --git a/mingw-w64-crt/secapi/_wctime64_s.c b/mingw-w64-crt/secapi/_wctime64_s.c
index bce40fd..860e5b4 100644
--- a/mingw-w64-crt/secapi/_wctime64_s.c
+++ b/mingw-w64-crt/secapi/_wctime64_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(wchar_t *, size_t, const __time64_t *))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_wctime64_s");
 	if (!f)
 	  f = _int_wctime64_s;
diff --git a/mingw-w64-crt/secapi/_wmktemp_s.c b/mingw-w64-crt/secapi/_wmktemp_s.c
index e13abc7..fc887f3 100644
--- a/mingw-w64-crt/secapi/_wmktemp_s.c
+++ b/mingw-w64-crt/secapi/_wmktemp_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(wchar_t *, size_t))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_wmktemp_s");
 	if (!f)
 	  f = _int_wmktemp_s;
diff --git a/mingw-w64-crt/secapi/_wstrdate_s.c b/mingw-w64-crt/secapi/_wstrdate_s.c
index e8ec1d4..3cd0c09 100644
--- a/mingw-w64-crt/secapi/_wstrdate_s.c
+++ b/mingw-w64-crt/secapi/_wstrdate_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(wchar_t *, size_t))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_wstrdate_s");
 	if (!f)
 	  f = _int_wstrdate_s;
diff --git a/mingw-w64-crt/secapi/_wstrtime_s.c b/mingw-w64-crt/secapi/_wstrtime_s.c
index ffb8a3e..a11211c 100644
--- a/mingw-w64-crt/secapi/_wstrtime_s.c
+++ b/mingw-w64-crt/secapi/_wstrtime_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(wchar_t *, size_t))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "_wstrtime_s");
 	if (!f)
 	  f = _int_wstrtime_s;
diff --git a/mingw-w64-crt/secapi/asctime_s.c b/mingw-w64-crt/secapi/asctime_s.c
index aeb16e3..18a7aeb 100644
--- a/mingw-w64-crt/secapi/asctime_s.c
+++ b/mingw-w64-crt/secapi/asctime_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(char *, size_t, const struct tm *))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "asctime_s");
 	if (!f)
 	  f = _int_asctime_s;
diff --git a/mingw-w64-crt/secapi/memcpy_s.c b/mingw-w64-crt/secapi/memcpy_s.c
index 013eff0..a206de3 100644
--- a/mingw-w64-crt/secapi/memcpy_s.c
+++ b/mingw-w64-crt/secapi/memcpy_s.c
@@ -16,7 +16,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(void *, size_t, const void *, size_t))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "memcpy_s");
 	if (!f)
 	  f = _int_memcpy_s;
diff --git a/mingw-w64-crt/secapi/memmove_s.c b/mingw-w64-crt/secapi/memmove_s.c
index dca1dbe..e5cee87 100644
--- a/mingw-w64-crt/secapi/memmove_s.c
+++ b/mingw-w64-crt/secapi/memmove_s.c
@@ -16,7 +16,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(void *, size_t, const void *, size_t))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "memmove_s");
 	if (!f)
 	  f = _int_memmove_s;
diff --git a/mingw-w64-crt/secapi/strerror_s.c b/mingw-w64-crt/secapi/strerror_s.c
index 1216c41..ea7148a 100644
--- a/mingw-w64-crt/secapi/strerror_s.c
+++ b/mingw-w64-crt/secapi/strerror_s.c
@@ -16,7 +16,7 @@
 
   if (f == _stub)
     {
-      f = (errno_t __cdecl (*)(char *, size_t, int))
+      f = (void*)
             GetProcAddress (__mingw_get_msvcrt_handle (), "strerror_s");
       if (!f)
       {
diff --git a/mingw-w64-crt/secapi/vsprintf_s.c b/mingw-w64-crt/secapi/vsprintf_s.c
index 45dfb14..dbb1c46 100644
--- a/mingw-w64-crt/secapi/vsprintf_s.c
+++ b/mingw-w64-crt/secapi/vsprintf_s.c
@@ -18,7 +18,7 @@
 
   if (f == _stub)
     {
-	f = (int __cdecl (*)(char *, size_t, const char *, va_list))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "vsprintf_s");
 	if (!f)
 	  f = _int_vsprintf_s;
diff --git a/mingw-w64-crt/secapi/wmemcpy_s.c b/mingw-w64-crt/secapi/wmemcpy_s.c
index 8387924..8276f28 100644
--- a/mingw-w64-crt/secapi/wmemcpy_s.c
+++ b/mingw-w64-crt/secapi/wmemcpy_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
-	f = (errno_t __cdecl (*)(wchar_t *, size_t, const wchar_t *, size_t))
+	f = (void*)
 	    GetProcAddress (__mingw_get_msvcrt_handle (), "wmemcpy_s");
 	if (!f)
 	  f = _int_wmemcpy_s;
diff --git a/mingw-w64-crt/secapi/wmemmove_s.c b/mingw-w64-crt/secapi/wmemmove_s.c
index 2e0d572..d9f09eb 100644
--- a/mingw-w64-crt/secapi/wmemmove_s.c
+++ b/mingw-w64-crt/secapi/wmemmove_s.c
@@ -17,7 +17,7 @@
 
   if (f == _stub)
     {
- f = (errno_t __cdecl (*)(wchar_t *, size_t, const wchar_t *, size_t))
+ f = (void*)
     GetProcAddress (__mingw_get_msvcrt_handle (), "wmemmove_s");
  if (!f)
   f = _int_wmemmove_s;
