From 950e81437776242be39fef4a8b0d0a17cf5882b7 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 24 Jul 2021 16:27:43 +0200 Subject: [PATCH] [CRT] Fix _fmode Remove mingw-w64 version of _fmode. _fmode should not be linked directly into the executable. Instead, the export from msvcrt should be used. On Windows 10 it's defined to *__p__fmode(), which is exported from ucrtbase.dll Also _fmode in msvcrt.dll is initialized with 0. --- sdk/lib/crt/msvcrtex.cmake | 1 - sdk/lib/crt/startup/startup.cmake | 1 - sdk/lib/crt/startup/txtmode.c | 13 ------------- sdk/lib/crt/stdio/fmode.c | 2 +- 4 files changed, 1 insertion(+), 16 deletions(-) delete mode 100644 sdk/lib/crt/startup/txtmode.c diff --git a/sdk/lib/crt/msvcrtex.cmake b/sdk/lib/crt/msvcrtex.cmake index 32d1afc6046..5f9cad1b48f 100644 --- a/sdk/lib/crt/msvcrtex.cmake +++ b/sdk/lib/crt/msvcrtex.cmake @@ -15,7 +15,6 @@ list(APPEND MSVCRTEX_SOURCE startup/charmax.c startup/atonexit.c startup/dllmain.c - startup/txtmode.c startup/pesect.c startup/tlsmcrt.c startup/tlsthrd.c diff --git a/sdk/lib/crt/startup/startup.cmake b/sdk/lib/crt/startup/startup.cmake index 1574d29e97b..37577e0e70d 100644 --- a/sdk/lib/crt/startup/startup.cmake +++ b/sdk/lib/crt/startup/startup.cmake @@ -12,7 +12,6 @@ list(APPEND CRT_STARTUP_SOURCE startup/natstart.c startup/charmax.c startup/atonexit.c - #startup/txtmode.c startup/pesect.c startup/tlsmcrt.c startup/tlsthrd.c diff --git a/sdk/lib/crt/startup/txtmode.c b/sdk/lib/crt/startup/txtmode.c deleted file mode 100644 index 1f50d168b89..00000000000 --- a/sdk/lib/crt/startup/txtmode.c +++ /dev/null @@ -1,13 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include - -/* Set default file mode to text */ - -/* Is this correct? Default value of _fmode in msvcrt.dll is 0. */ - -int _fmode = _O_TEXT; diff --git a/sdk/lib/crt/stdio/fmode.c b/sdk/lib/crt/stdio/fmode.c index 0469904c3e6..220a92d32c9 100644 --- a/sdk/lib/crt/stdio/fmode.c +++ b/sdk/lib/crt/stdio/fmode.c @@ -1,7 +1,7 @@ /* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */ #include -int _fmode = _O_TEXT; +int _fmode = 0; /* * @implemented