[PATCH] ucrtbase: Add stub functions for narrow environment

Martin Storsjo martin at martin.st
Thu Aug 27 15:27:24 CDT 2015


These are required for a plain empty exe that is built with dynamic
C runtime with MSVC 2015 to start up.
---
 .../api-ms-win-crt-runtime-l1-1-0.spec             |  6 ++---
 dlls/msvcrt/data.c                                 | 26 ++++++++++++++++++++++
 dlls/ucrtbase/ucrtbase.spec                        |  6 ++---
 3 files changed, 32 insertions(+), 6 deletions(-)

diff --git a/dlls/api-ms-win-crt-runtime-l1-1-0/api-ms-win-crt-runtime-l1-1-0.spec b/dlls/api-ms-win-crt-runtime-l1-1-0/api-ms-win-crt-runtime-l1-1-0.spec
index 77afe01..2f0bb33 100644
--- a/dlls/api-ms-win-crt-runtime-l1-1-0/api-ms-win-crt-runtime-l1-1-0.spec
+++ b/dlls/api-ms-win-crt-runtime-l1-1-0/api-ms-win-crt-runtime-l1-1-0.spec
@@ -23,7 +23,7 @@
 @ cdecl _c_exit() ucrtbase._c_exit
 @ cdecl _cexit() ucrtbase._cexit
 @ cdecl _clearfp() ucrtbase._clearfp
-@ stub _configure_narrow_argv
+@ cdecl _configure_narrow_argv(long) ucrtbase._configure_narrow_argv
 @ stub _configure_wide_argv
 @ cdecl _control87(long long) ucrtbase._control87
 @ cdecl _controlfp(long long) ucrtbase._controlfp
@@ -40,7 +40,7 @@
 @ cdecl _fpreset() ucrtbase._fpreset
 @ cdecl _get_doserrno(ptr) ucrtbase._get_doserrno
 @ cdecl _get_errno(ptr) ucrtbase._get_errno
-@ stub _get_initial_narrow_environment
+@ cdecl _get_initial_narrow_environment() ucrtbase._get_initial_narrow_environment
 @ stub _get_initial_wide_environment
 @ cdecl _get_invalid_parameter_handler() ucrtbase._get_invalid_parameter_handler
 @ stub _get_narrow_winmain_command_line
@@ -51,7 +51,7 @@
 @ cdecl _get_wpgmptr(ptr) ucrtbase._get_wpgmptr
 @ cdecl _getdllprocaddr(long str long) ucrtbase._getdllprocaddr
 @ cdecl _getpid() ucrtbase._getpid
-@ stub _initialize_narrow_environment
+@ cdecl _initialize_narrow_environment() ucrtbase._initialize_narrow_environment
 @ stub _initialize_onexit_table
 @ stub _initialize_wide_environment
 @ cdecl _initterm(ptr ptr) ucrtbase._initterm
diff --git a/dlls/msvcrt/data.c b/dlls/msvcrt/data.c
index e6989f1..7e75a7f 100644
--- a/dlls/msvcrt/data.c
+++ b/dlls/msvcrt/data.c
@@ -640,3 +640,29 @@ void CDECL MSVCRT___set_app_type(int app_type)
   TRACE("(%d) %s application\n", app_type, app_type == 2 ? "Gui" : "Console");
   MSVCRT_app_type = app_type;
 }
+
+/*********************************************************************
+ *		_get_initial_narrow_environment (UCRTBASE.@)
+ */
+char** CDECL _get_initial_narrow_environment(void)
+{
+  return MSVCRT___argv;
+}
+
+/*********************************************************************
+ *		_configure_narrow_argv (UCRTBASE.@)
+ */
+int CDECL _configure_narrow_argv(int mode)
+{
+  TRACE("(%d)\n", mode);
+  return 0;
+}
+
+/*********************************************************************
+ *		_initialize_narrow_environment (UCRTBASE.@)
+ */
+int CDECL _initialize_narrow_environment(void)
+{
+  TRACE("\n");
+  return 0;
+}
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec
index bb56408..5623107 100644
--- a/dlls/ucrtbase/ucrtbase.spec
+++ b/dlls/ucrtbase/ucrtbase.spec
@@ -229,7 +229,7 @@
 @ cdecl _close(long) MSVCRT__close
 @ cdecl _commit(long) MSVCRT__commit
 @ cdecl _configthreadlocale(long)
-@ stub _configure_narrow_argv
+@ cdecl _configure_narrow_argv(long)
 @ stub _configure_wide_argv
 @ cdecl _control87(long long)
 @ cdecl _controlfp(long long)
@@ -365,7 +365,7 @@
 @ cdecl _get_errno(ptr)
 @ cdecl _get_fmode(ptr) MSVCRT__get_fmode
 @ cdecl _get_heap_handle()
-@ stub _get_initial_narrow_environment
+@ cdecl _get_initial_narrow_environment()
 @ stub _get_initial_wide_environment
 @ cdecl _get_invalid_parameter_handler()
 @ stub _get_narrow_winmain_command_line
@@ -418,7 +418,7 @@
 @ cdecl _i64toa_s(int64 ptr long long) MSVCRT__i64toa_s
 @ cdecl _i64tow(int64 ptr long) ntdll._i64tow
 @ cdecl _i64tow_s(int64 ptr long long) MSVCRT__i64tow_s
-@ stub _initialize_narrow_environment
+@ cdecl _initialize_narrow_environment()
 @ stub _initialize_onexit_table
 @ stub _initialize_wide_environment
 @ cdecl _initterm(ptr ptr)
-- 
1.8.1.2




More information about the wine-patches mailing list