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