Moved __mingw_get_msvcrt_handle to libmsvcrt.a and hardcode it to load msvcrt.dll (other msvcr*.dll variants no longer use that function).

git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@5898 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index fd9f516..5341ff8 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -118,6 +118,7 @@
   libsrc/wspiapi/WspiapiFreeAddrInfo.c
 
 src_msvcrt=\
+  crt/msvcrt.c \
   misc/invalid_parameter_handler.c \
   misc/lc_locale_func.c \
   misc/output_format.c \
diff --git a/mingw-w64-crt/Makefile.in b/mingw-w64-crt/Makefile.in
index 695d29d..f7bb748 100644
--- a/mingw-w64-crt/Makefile.in
+++ b/mingw-w64-crt/Makefile.in
@@ -1064,22 +1064,22 @@
 am_lib32_libmoldname_a_OBJECTS =
 lib32_libmoldname_a_OBJECTS = $(am_lib32_libmoldname_a_OBJECTS)
 lib32_libmsvcrt_a_LIBADD =
-am__lib32_libmsvcrt_a_SOURCES_DIST = misc/invalid_parameter_handler.c \
-	misc/lc_locale_func.c misc/output_format.c secapi/_access_s.c \
-	secapi/_cgets_s.c secapi/_cgetws_s.c secapi/_chsize_s.c \
-	secapi/_cprintf_s.c secapi/_cprintf_s_l.c secapi/_ctime32_s.c \
-	secapi/_ctime64_s.c secapi/_cwprintf_s.c \
-	secapi/_cwprintf_s_l.c secapi/_gmtime32_s.c \
-	secapi/_gmtime64_s.c secapi/_localtime32_s.c \
-	secapi/_localtime64_s.c secapi/_mktemp_s.c secapi/_strdate_s.c \
-	secapi/_strtime_s.c secapi/_umask_s.c secapi/_vcprintf_s.c \
-	secapi/_vcprintf_s_l.c secapi/_vcwprintf_s.c \
-	secapi/_vcwprintf_s_l.c secapi/_waccess_s.c \
-	secapi/_wasctime_s.c secapi/_wctime32_s.c secapi/_wctime64_s.c \
-	secapi/_wstrtime_s.c secapi/_wmktemp_s.c secapi/_wstrdate_s.c \
-	secapi/asctime_s.c secapi/memcpy_s.c secapi/vsprintf_s.c \
-	secapi/wmemcpy_s.c lib32/msvcrt.def.in
-am__objects_18 =  \
+am__lib32_libmsvcrt_a_SOURCES_DIST = crt/msvcrt.c \
+	misc/invalid_parameter_handler.c misc/lc_locale_func.c \
+	misc/output_format.c secapi/_access_s.c secapi/_cgets_s.c \
+	secapi/_cgetws_s.c secapi/_chsize_s.c secapi/_cprintf_s.c \
+	secapi/_cprintf_s_l.c secapi/_ctime32_s.c secapi/_ctime64_s.c \
+	secapi/_cwprintf_s.c secapi/_cwprintf_s_l.c \
+	secapi/_gmtime32_s.c secapi/_gmtime64_s.c \
+	secapi/_localtime32_s.c secapi/_localtime64_s.c \
+	secapi/_mktemp_s.c secapi/_strdate_s.c secapi/_strtime_s.c \
+	secapi/_umask_s.c secapi/_vcprintf_s.c secapi/_vcprintf_s_l.c \
+	secapi/_vcwprintf_s.c secapi/_vcwprintf_s_l.c \
+	secapi/_waccess_s.c secapi/_wasctime_s.c secapi/_wctime32_s.c \
+	secapi/_wctime64_s.c secapi/_wstrtime_s.c secapi/_wmktemp_s.c \
+	secapi/_wstrdate_s.c secapi/asctime_s.c secapi/memcpy_s.c \
+	secapi/vsprintf_s.c secapi/wmemcpy_s.c lib32/msvcrt.def.in
+am__objects_18 = crt/lib32_libmsvcrt_a-msvcrt.$(OBJEXT) \
 	misc/lib32_libmsvcrt_a-invalid_parameter_handler.$(OBJEXT) \
 	misc/lib32_libmsvcrt_a-lc_locale_func.$(OBJEXT) \
 	misc/lib32_libmsvcrt_a-output_format.$(OBJEXT) \
@@ -2161,22 +2161,22 @@
 am_lib64_libmoldname_a_OBJECTS =
 lib64_libmoldname_a_OBJECTS = $(am_lib64_libmoldname_a_OBJECTS)
 lib64_libmsvcrt_a_LIBADD =
-am__lib64_libmsvcrt_a_SOURCES_DIST = misc/invalid_parameter_handler.c \
-	misc/lc_locale_func.c misc/output_format.c secapi/_access_s.c \
-	secapi/_cgets_s.c secapi/_cgetws_s.c secapi/_chsize_s.c \
-	secapi/_cprintf_s.c secapi/_cprintf_s_l.c secapi/_ctime32_s.c \
-	secapi/_ctime64_s.c secapi/_cwprintf_s.c \
-	secapi/_cwprintf_s_l.c secapi/_gmtime32_s.c \
-	secapi/_gmtime64_s.c secapi/_localtime32_s.c \
-	secapi/_localtime64_s.c secapi/_mktemp_s.c secapi/_strdate_s.c \
-	secapi/_strtime_s.c secapi/_umask_s.c secapi/_vcprintf_s.c \
-	secapi/_vcprintf_s_l.c secapi/_vcwprintf_s.c \
-	secapi/_vcwprintf_s_l.c secapi/_waccess_s.c \
-	secapi/_wasctime_s.c secapi/_wctime32_s.c secapi/_wctime64_s.c \
-	secapi/_wstrtime_s.c secapi/_wmktemp_s.c secapi/_wstrdate_s.c \
-	secapi/asctime_s.c secapi/memcpy_s.c secapi/vsprintf_s.c \
-	secapi/wmemcpy_s.c lib64/msvcrt.def.in
-am__objects_47 =  \
+am__lib64_libmsvcrt_a_SOURCES_DIST = crt/msvcrt.c \
+	misc/invalid_parameter_handler.c misc/lc_locale_func.c \
+	misc/output_format.c secapi/_access_s.c secapi/_cgets_s.c \
+	secapi/_cgetws_s.c secapi/_chsize_s.c secapi/_cprintf_s.c \
+	secapi/_cprintf_s_l.c secapi/_ctime32_s.c secapi/_ctime64_s.c \
+	secapi/_cwprintf_s.c secapi/_cwprintf_s_l.c \
+	secapi/_gmtime32_s.c secapi/_gmtime64_s.c \
+	secapi/_localtime32_s.c secapi/_localtime64_s.c \
+	secapi/_mktemp_s.c secapi/_strdate_s.c secapi/_strtime_s.c \
+	secapi/_umask_s.c secapi/_vcprintf_s.c secapi/_vcprintf_s_l.c \
+	secapi/_vcwprintf_s.c secapi/_vcwprintf_s_l.c \
+	secapi/_waccess_s.c secapi/_wasctime_s.c secapi/_wctime32_s.c \
+	secapi/_wctime64_s.c secapi/_wstrtime_s.c secapi/_wmktemp_s.c \
+	secapi/_wstrdate_s.c secapi/asctime_s.c secapi/memcpy_s.c \
+	secapi/vsprintf_s.c secapi/wmemcpy_s.c lib64/msvcrt.def.in
+am__objects_47 = crt/lib64_libmsvcrt_a-msvcrt.$(OBJEXT) \
 	misc/lib64_libmsvcrt_a-invalid_parameter_handler.$(OBJEXT) \
 	misc/lib64_libmsvcrt_a-lc_locale_func.$(OBJEXT) \
 	misc/lib64_libmsvcrt_a-output_format.$(OBJEXT) \
@@ -3781,6 +3781,7 @@
   libsrc/wspiapi/WspiapiFreeAddrInfo.c
 
 src_msvcrt = \
+  crt/msvcrt.c \
   misc/invalid_parameter_handler.c \
   misc/lc_locale_func.c \
   misc/output_format.c \
@@ -6314,6 +6315,8 @@
 	$(AM_V_at)-rm -f lib32/libmoldname.a
 	$(AM_V_AR)$(lib32_libmoldname_a_AR) lib32/libmoldname.a $(lib32_libmoldname_a_OBJECTS) $(lib32_libmoldname_a_LIBADD)
 	$(AM_V_at)$(RANLIB) lib32/libmoldname.a
+crt/lib32_libmsvcrt_a-msvcrt.$(OBJEXT): crt/$(am__dirstamp) \
+	crt/$(DEPDIR)/$(am__dirstamp)
 misc/lib32_libmsvcrt_a-invalid_parameter_handler.$(OBJEXT):  \
 	misc/$(am__dirstamp) misc/$(DEPDIR)/$(am__dirstamp)
 misc/lib32_libmsvcrt_a-lc_locale_func.$(OBJEXT): misc/$(am__dirstamp) \
@@ -7894,6 +7897,8 @@
 	$(AM_V_at)-rm -f lib64/libmoldname.a
 	$(AM_V_AR)$(lib64_libmoldname_a_AR) lib64/libmoldname.a $(lib64_libmoldname_a_OBJECTS) $(lib64_libmoldname_a_LIBADD)
 	$(AM_V_at)$(RANLIB) lib64/libmoldname.a
+crt/lib64_libmsvcrt_a-msvcrt.$(OBJEXT): crt/$(am__dirstamp) \
+	crt/$(DEPDIR)/$(am__dirstamp)
 misc/lib64_libmsvcrt_a-invalid_parameter_handler.$(OBJEXT):  \
 	misc/$(am__dirstamp) misc/$(DEPDIR)/$(am__dirstamp)
 misc/lib64_libmsvcrt_a-lc_locale_func.$(OBJEXT): misc/$(am__dirstamp) \
@@ -9291,6 +9296,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@crt/$(DEPDIR)/lib32_libmingw32_a-xtxtmode.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@crt/$(DEPDIR)/lib32_libmingwex_a-dllentry.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@crt/$(DEPDIR)/lib32_libmingwex_a-dllmain.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@crt/$(DEPDIR)/lib32_libmsvcrt_a-msvcrt.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@crt/$(DEPDIR)/lib64_libmingw32_a-CRT_fp10.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@crt/$(DEPDIR)/lib64_libmingw32_a-_newmode.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@crt/$(DEPDIR)/lib64_libmingw32_a-atonexit.Po@am__quote@
@@ -9322,6 +9328,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@crt/$(DEPDIR)/lib64_libmingw32_a-xtxtmode.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@crt/$(DEPDIR)/lib64_libmingwex_a-dllentry.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@crt/$(DEPDIR)/lib64_libmingwex_a-dllmain.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@crt/$(DEPDIR)/lib64_libmsvcrt_a-msvcrt.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@gdtoa/$(DEPDIR)/lib32_libmingwex_a-arithchk.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@gdtoa/$(DEPDIR)/lib32_libmingwex_a-dmisc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@gdtoa/$(DEPDIR)/lib32_libmingwex_a-dtoa.Po@am__quote@
@@ -19051,6 +19058,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmingwthrd_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsrc/lib32_libmingwthrd_a-mingwthrd_mt.obj `if test -f 'libsrc/mingwthrd_mt.c'; then $(CYGPATH_W) 'libsrc/mingwthrd_mt.c'; else $(CYGPATH_W) '$(srcdir)/libsrc/mingwthrd_mt.c'; fi`
 
+crt/lib32_libmsvcrt_a-msvcrt.o: crt/msvcrt.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT crt/lib32_libmsvcrt_a-msvcrt.o -MD -MP -MF crt/$(DEPDIR)/lib32_libmsvcrt_a-msvcrt.Tpo -c -o crt/lib32_libmsvcrt_a-msvcrt.o `test -f 'crt/msvcrt.c' || echo '$(srcdir)/'`crt/msvcrt.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) crt/$(DEPDIR)/lib32_libmsvcrt_a-msvcrt.Tpo crt/$(DEPDIR)/lib32_libmsvcrt_a-msvcrt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='crt/msvcrt.c' object='crt/lib32_libmsvcrt_a-msvcrt.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o crt/lib32_libmsvcrt_a-msvcrt.o `test -f 'crt/msvcrt.c' || echo '$(srcdir)/'`crt/msvcrt.c
+
+crt/lib32_libmsvcrt_a-msvcrt.obj: crt/msvcrt.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT crt/lib32_libmsvcrt_a-msvcrt.obj -MD -MP -MF crt/$(DEPDIR)/lib32_libmsvcrt_a-msvcrt.Tpo -c -o crt/lib32_libmsvcrt_a-msvcrt.obj `if test -f 'crt/msvcrt.c'; then $(CYGPATH_W) 'crt/msvcrt.c'; else $(CYGPATH_W) '$(srcdir)/crt/msvcrt.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) crt/$(DEPDIR)/lib32_libmsvcrt_a-msvcrt.Tpo crt/$(DEPDIR)/lib32_libmsvcrt_a-msvcrt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='crt/msvcrt.c' object='crt/lib32_libmsvcrt_a-msvcrt.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o crt/lib32_libmsvcrt_a-msvcrt.obj `if test -f 'crt/msvcrt.c'; then $(CYGPATH_W) 'crt/msvcrt.c'; else $(CYGPATH_W) '$(srcdir)/crt/msvcrt.c'; fi`
+
 misc/lib32_libmsvcrt_a-invalid_parameter_handler.o: misc/invalid_parameter_handler.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc/lib32_libmsvcrt_a-invalid_parameter_handler.o -MD -MP -MF misc/$(DEPDIR)/lib32_libmsvcrt_a-invalid_parameter_handler.Tpo -c -o misc/lib32_libmsvcrt_a-invalid_parameter_handler.o `test -f 'misc/invalid_parameter_handler.c' || echo '$(srcdir)/'`misc/invalid_parameter_handler.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) misc/$(DEPDIR)/lib32_libmsvcrt_a-invalid_parameter_handler.Tpo misc/$(DEPDIR)/lib32_libmsvcrt_a-invalid_parameter_handler.Po
@@ -27955,6 +27976,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmingwthrd_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsrc/lib64_libmingwthrd_a-mingwthrd_mt.obj `if test -f 'libsrc/mingwthrd_mt.c'; then $(CYGPATH_W) 'libsrc/mingwthrd_mt.c'; else $(CYGPATH_W) '$(srcdir)/libsrc/mingwthrd_mt.c'; fi`
 
+crt/lib64_libmsvcrt_a-msvcrt.o: crt/msvcrt.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT crt/lib64_libmsvcrt_a-msvcrt.o -MD -MP -MF crt/$(DEPDIR)/lib64_libmsvcrt_a-msvcrt.Tpo -c -o crt/lib64_libmsvcrt_a-msvcrt.o `test -f 'crt/msvcrt.c' || echo '$(srcdir)/'`crt/msvcrt.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) crt/$(DEPDIR)/lib64_libmsvcrt_a-msvcrt.Tpo crt/$(DEPDIR)/lib64_libmsvcrt_a-msvcrt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='crt/msvcrt.c' object='crt/lib64_libmsvcrt_a-msvcrt.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o crt/lib64_libmsvcrt_a-msvcrt.o `test -f 'crt/msvcrt.c' || echo '$(srcdir)/'`crt/msvcrt.c
+
+crt/lib64_libmsvcrt_a-msvcrt.obj: crt/msvcrt.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT crt/lib64_libmsvcrt_a-msvcrt.obj -MD -MP -MF crt/$(DEPDIR)/lib64_libmsvcrt_a-msvcrt.Tpo -c -o crt/lib64_libmsvcrt_a-msvcrt.obj `if test -f 'crt/msvcrt.c'; then $(CYGPATH_W) 'crt/msvcrt.c'; else $(CYGPATH_W) '$(srcdir)/crt/msvcrt.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) crt/$(DEPDIR)/lib64_libmsvcrt_a-msvcrt.Tpo crt/$(DEPDIR)/lib64_libmsvcrt_a-msvcrt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='crt/msvcrt.c' object='crt/lib64_libmsvcrt_a-msvcrt.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o crt/lib64_libmsvcrt_a-msvcrt.obj `if test -f 'crt/msvcrt.c'; then $(CYGPATH_W) 'crt/msvcrt.c'; else $(CYGPATH_W) '$(srcdir)/crt/msvcrt.c'; fi`
+
 misc/lib64_libmsvcrt_a-invalid_parameter_handler.o: misc/invalid_parameter_handler.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT misc/lib64_libmsvcrt_a-invalid_parameter_handler.o -MD -MP -MF misc/$(DEPDIR)/lib64_libmsvcrt_a-invalid_parameter_handler.Tpo -c -o misc/lib64_libmsvcrt_a-invalid_parameter_handler.o `test -f 'misc/invalid_parameter_handler.c' || echo '$(srcdir)/'`misc/invalid_parameter_handler.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) misc/$(DEPDIR)/lib64_libmsvcrt_a-invalid_parameter_handler.Tpo misc/$(DEPDIR)/lib64_libmsvcrt_a-invalid_parameter_handler.Po
diff --git a/mingw-w64-crt/crt/msvcrt.c b/mingw-w64-crt/crt/msvcrt.c
new file mode 100644
index 0000000..a27e3c1
--- /dev/null
+++ b/mingw-w64-crt/crt/msvcrt.c
@@ -0,0 +1,12 @@
+#include <windows.h>
+
+HMODULE __mingw_get_msvcrt_handle(void);
+HMODULE __mingw_get_msvcrt_handle(void)
+{
+    static HANDLE msvcrt_handle;
+
+    if(!msvcrt_handle)
+        msvcrt_handle = LoadLibraryW(L"msvcrt.dll");
+
+    return msvcrt_handle;
+}
diff --git a/mingw-w64-crt/crt/pesect.c b/mingw-w64-crt/crt/pesect.c
index 1a1d5ff..28c34f8 100644
--- a/mingw-w64-crt/crt/pesect.c
+++ b/mingw-w64-crt/crt/pesect.c
@@ -228,31 +228,3 @@
 
   return NULL;
 }
-
-HMODULE __mingw_get_msvcrt_handle(void);
-HMODULE __mingw_get_msvcrt_handle(void)
-{
-    static HANDLE msvcrt_handle;
-
-    if(!msvcrt_handle) {
-        const char *lib_name;
-        int i = 0;
-
-        while ((lib_name = __mingw_enum_import_library_names (i++))) {
-            if((lib_name[0] == 'm' || lib_name[0] == 'M')
-               && (lib_name[1] == 's' || lib_name[1] == 'S')
-               && (lib_name[2] == 'v' || lib_name[2] == 'V')
-               && (lib_name[3] == 'c' || lib_name[3] == 'C')
-               && (lib_name[4] == 'r' || lib_name[4] == 'R')
-               && (lib_name[5] == 't' || lib_name[5] == 'T' || ('0' <= lib_name[5] && lib_name[5] <= '9')))
-                break;
-        }
-
-       if(lib_name)
-            msvcrt_handle = GetModuleHandleA(lib_name);
-        if(!msvcrt_handle)
-            msvcrt_handle = LoadLibraryW(L"msvcrt.dll");
-    }
-
-    return msvcrt_handle;
-}