diff -Naur icu-orig/source/i18n/digitlst.cpp icu/source/i18n/digitlst.cpp
--- icu-orig/source/i18n/digitlst.cpp	2016-10-27 04:37:56.000000000 +0300
+++ icu/source/i18n/digitlst.cpp	2018-03-01 10:09:31.297047400 +0300
@@ -489,7 +489,20 @@
 
 #if U_USE_STRTOD_L && U_PLATFORM_USES_ONLY_WIN32_API
 # define locale_t _locale_t
+// Stubs
+#if defined(__MINGW32__)
+inline  locale_t createlocale(int _Category,const char *_Locale) {
+    locale_t loc;
+    return loc;
+}
+
+inline void freelocale(locale_t _Locale) {
+
+}
+#else
 # define freelocale _free_locale
+# define createlocale _create_locale
+#endif
 # define strtod_l _strtod_l
 #endif
 
@@ -514,7 +527,7 @@
     ucln_i18n_registerCleanup(UCLN_I18N_DIGITLIST, digitList_cleanup);
 #if U_USE_STRTOD_L
 # if U_PLATFORM_USES_ONLY_WIN32_API
-    gCLocale = _create_locale(LC_ALL, "C");
+    gCLocale = createlocale(LC_ALL, "C");
 # else
     gCLocale = newlocale(LC_ALL_MASK, "C", (locale_t)0);
 # endif
