This matches what was done for _fmode in
2e64b9e4537d564478f17b873b2f655f518325ed. This fixes using a
crtexe.c built without optimizations with UCRT (and fixes UCRT
in general after the previous commit).

Signed-off-by: Martin Storsjö <[email protected]>
---
 mingw-w64-crt/Makefile.am         |  4 ++++
 mingw-w64-crt/crt/crtexe.c        |  4 ++--
 mingw-w64-crt/misc/__p__commode.c | 17 +++++++++++++++++
 3 files changed, 23 insertions(+), 2 deletions(-)
 create mode 100644 mingw-w64-crt/misc/__p__commode.c

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 9a1fe0739..d38e524c8 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -257,6 +257,7 @@ src_msvcrt64=\
   $(src_msvcrt) \
   misc/__p___argv.c \
   misc/__p__acmdln.c \
+  misc/__p__commode.c \
   misc/__p__fmode.c \
   misc/__p__wcmdln.c \
   misc/_create_locale.c \
@@ -267,6 +268,7 @@ src_msvcrtarm32=\
   $(src_msvcrt) \
   misc/__p___argv.c \
   misc/__p__acmdln.c \
+  misc/__p__commode.c \
   misc/__p__fmode.c \
   misc/__p__wcmdln.c \
   misc/_getpid.c \
@@ -359,6 +361,7 @@ src_msvcrtarm64=\
   math/arm64/truncf.S \
   misc/__p___argv.c \
   misc/__p__acmdln.c \
+  misc/__p__commode.c \
   misc/__p__fmode.c \
   misc/__p__wcmdln.c \
   misc/_getpid.c \
@@ -368,6 +371,7 @@ src_msvcr80_64=\
   $(src_msvcrt_common) \
   misc/__p___argv.c \
   misc/__p__acmdln.c \
+  misc/__p__commode.c \
   misc/__p__fmode.c \
   misc/__p__wcmdln.c
 
diff --git a/mingw-w64-crt/crt/crtexe.c b/mingw-w64-crt/crt/crtexe.c
index bea6c04a2..b730dc479 100644
--- a/mingw-w64-crt/crt/crtexe.c
+++ b/mingw-w64-crt/crt/crtexe.c
@@ -50,7 +50,7 @@ extern void _fpreset (void);
 #define SPACECHAR _T(' ')
 #define DQUOTECHAR _T('\"')
 
-extern int * __MINGW_IMP_SYMBOL(_commode);
+int *__cdecl __p__commode(void);
 
 #undef _fmode
 extern int _fmode;
@@ -142,7 +142,7 @@ pre_c_init (void)
     __set_app_type (_CONSOLE_APP);
 
   * __p__fmode() = _fmode;
-  * __MINGW_IMP_SYMBOL(_commode) = _commode;
+  * __p__commode() = _commode;
 
 #ifdef WPRFLAG
   _wsetargv();
diff --git a/mingw-w64-crt/misc/__p__commode.c 
b/mingw-w64-crt/misc/__p__commode.c
new file mode 100644
index 000000000..bd79f5af7
--- /dev/null
+++ b/mingw-w64-crt/misc/__p__commode.c
@@ -0,0 +1,17 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#include <_mingw.h>
+
+extern int * __MINGW_IMP_SYMBOL(_commode);
+
+int *__cdecl __p__commode(void);
+int *__cdecl __p__commode(void)
+{
+    return __MINGW_IMP_SYMBOL(_commode);
+}
+
+typeof(__p__commode) *__MINGW_IMP_SYMBOL(__p__commode) = __p__commode;
-- 
2.17.1



_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to