They were accidentally removed in commit e0b9e84fd8f9 ("crt: Fix
__getmainargs() and __wgetmainargs() ABI for msvcrt40.dll and msvcrt.dll")
when these functions were implemented as wrappers around the real
functions.

_imp_ symbols for __getmainargs() and __wgetmainargs() functions are needed
for applications which provides own declaration of these functions with
__declspec(dllimport).

Fixes linking error "undefined reference to `_imp____wgetmainargs'" as was
reported in bug report for mpeg123 application:
https://github.com/mingw-w64/mingw-w64/issues/73
---
 mingw-w64-crt/misc/crtdll__getmainargs.c    | 1 +
 mingw-w64-crt/misc/msvcrt20__getmainargs.c  | 1 +
 mingw-w64-crt/misc/msvcrt20__wgetmainargs.c | 1 +
 mingw-w64-crt/misc/msvcrt40__getmainargs.c  | 1 +
 mingw-w64-crt/misc/msvcrt40__wgetmainargs.c | 1 +
 mingw-w64-crt/misc/msvcrt__getmainargs.c    | 1 +
 mingw-w64-crt/misc/msvcrt__wgetmainargs.c   | 1 +
 7 files changed, 7 insertions(+)

diff --git a/mingw-w64-crt/misc/crtdll__getmainargs.c 
b/mingw-w64-crt/misc/crtdll__getmainargs.c
index 61401ca3f81a..16595e1fa990 100644
--- a/mingw-w64-crt/misc/crtdll__getmainargs.c
+++ b/mingw-w64-crt/misc/crtdll__getmainargs.c
@@ -17,3 +17,4 @@ int __cdecl __getmainargs(int *argc, char ***argv, char 
***envp, int expand_wild
   __GetMainArgs(argc, argv, envp, expand_wildcards);
   return 0;
 }
+int __cdecl (*__MINGW_IMP_SYMBOL(__getmainargs))(int *, char ***, char ***, 
int, _startupinfo *) = __getmainargs;
diff --git a/mingw-w64-crt/misc/msvcrt20__getmainargs.c 
b/mingw-w64-crt/misc/msvcrt20__getmainargs.c
index 7a119297d646..9653637ee8e1 100644
--- a/mingw-w64-crt/misc/msvcrt20__getmainargs.c
+++ b/mingw-w64-crt/misc/msvcrt20__getmainargs.c
@@ -17,3 +17,4 @@ int __cdecl __getmainargs(int *argc, char ***argv, char 
***envp, int expand_wild
   __msvcrt20_getmainargs(argc, argv, envp, expand_wildcards, 
startup_info->newmode);
   return 0;
 }
+int __cdecl (*__MINGW_IMP_SYMBOL(__getmainargs))(int *, char ***, char ***, 
int, _startupinfo *) = __getmainargs;
diff --git a/mingw-w64-crt/misc/msvcrt20__wgetmainargs.c 
b/mingw-w64-crt/misc/msvcrt20__wgetmainargs.c
index 7a8207295f81..673f382e54b3 100644
--- a/mingw-w64-crt/misc/msvcrt20__wgetmainargs.c
+++ b/mingw-w64-crt/misc/msvcrt20__wgetmainargs.c
@@ -17,3 +17,4 @@ int __cdecl __wgetmainargs(int *argc, wchar_t ***argv, 
wchar_t ***envp, int expa
   __msvcrt20_wgetmainargs(argc, argv, envp, expand_wildcards, 
startup_info->newmode);
   return 0;
 }
+int __cdecl (*__MINGW_IMP_SYMBOL(__wgetmainargs))(int *, wchar_t ***, wchar_t 
***, int, _startupinfo *) = __wgetmainargs;
diff --git a/mingw-w64-crt/misc/msvcrt40__getmainargs.c 
b/mingw-w64-crt/misc/msvcrt40__getmainargs.c
index 541db331c6ed..ae65f442bc08 100644
--- a/mingw-w64-crt/misc/msvcrt40__getmainargs.c
+++ b/mingw-w64-crt/misc/msvcrt40__getmainargs.c
@@ -17,3 +17,4 @@ int __cdecl __getmainargs(int *argc, char ***argv, char 
***envp, int expand_wild
   __msvcrt40_getmainargs(argc, argv, envp, expand_wildcards, startup_info);
   return 0;
 }
+int __cdecl (*__MINGW_IMP_SYMBOL(__getmainargs))(int *, char ***, char ***, 
int, _startupinfo *) = __getmainargs;
diff --git a/mingw-w64-crt/misc/msvcrt40__wgetmainargs.c 
b/mingw-w64-crt/misc/msvcrt40__wgetmainargs.c
index 631b87b03fa8..da94bba64532 100644
--- a/mingw-w64-crt/misc/msvcrt40__wgetmainargs.c
+++ b/mingw-w64-crt/misc/msvcrt40__wgetmainargs.c
@@ -17,3 +17,4 @@ int __cdecl __wgetmainargs(int *argc, wchar_t ***argv, 
wchar_t ***envp, int expa
   __msvcrt40_wgetmainargs(argc, argv, envp, expand_wildcards, startup_info);
   return 0;
 }
+int __cdecl (*__MINGW_IMP_SYMBOL(__wgetmainargs))(int *, wchar_t ***, wchar_t 
***, int, _startupinfo *) = __wgetmainargs;
diff --git a/mingw-w64-crt/misc/msvcrt__getmainargs.c 
b/mingw-w64-crt/misc/msvcrt__getmainargs.c
index 5bf280be59c6..cf1eac7c0d10 100644
--- a/mingw-w64-crt/misc/msvcrt__getmainargs.c
+++ b/mingw-w64-crt/misc/msvcrt__getmainargs.c
@@ -30,3 +30,4 @@ int __cdecl __getmainargs(int *argc, char ***argv, char 
***envp, int expand_wild
     return -1;
   return 0;
 }
+int __cdecl (*__MINGW_IMP_SYMBOL(__getmainargs))(int *, char ***, char ***, 
int, _startupinfo *) = __getmainargs;
diff --git a/mingw-w64-crt/misc/msvcrt__wgetmainargs.c 
b/mingw-w64-crt/misc/msvcrt__wgetmainargs.c
index 1e26fc300066..9c3eed2528d0 100644
--- a/mingw-w64-crt/misc/msvcrt__wgetmainargs.c
+++ b/mingw-w64-crt/misc/msvcrt__wgetmainargs.c
@@ -30,3 +30,4 @@ int __cdecl __wgetmainargs(int *argc, wchar_t ***argv, 
wchar_t ***envp, int expa
     return -1;
   return 0;
 }
+int __cdecl (*__MINGW_IMP_SYMBOL(__wgetmainargs))(int *, wchar_t ***, wchar_t 
***, int, _startupinfo *) = __wgetmainargs;
-- 
2.20.1



_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to