C99 isblank symbol is natively available since msvcr120.dll, so include
mingw-w64 implementation of isblank to CRT import libraries only up to the
msvcr110 version.

This allows to use native isblank symbol for UCRT and msvcr120 builds.

Import libraries msvcr100 and msvcr110 currently do not have version
specific extra library, so define it and include it in MRI scripts.
---
 mingw-w64-crt/Makefile.am             | 41 +++++++++++++++++++++------
 mingw-w64-crt/lib-common/msvcr100.mri |  1 +
 mingw-w64-crt/lib-common/msvcr110.mri |  1 +
 3 files changed, 34 insertions(+), 9 deletions(-)

diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 283909ecae9c..2db7d797edea 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -299,6 +299,7 @@ src_msvcrt=\
   misc/_configthreadlocale.c \
   misc/imaxdiv.c \
   misc/invalid_parameter_handler.c \
+  misc/isblank.c \
   misc/purecall.c \
   secapi/_vscprintf_p.c \
   secapi/_vscwprintf_p.c \
@@ -632,6 +633,7 @@ src_crtdll=\
   misc/imaxabs.c \
   misc/imaxdiv.c \
   misc/invalid_parameter_handler.c \
+  misc/isblank.c \
   misc/lc_locale_func.c \
   misc/output_format.c \
   misc/purecall.c \
@@ -675,6 +677,7 @@ src_msvcrt10=\
   misc/imaxabs.c \
   misc/imaxdiv.c \
   misc/invalid_parameter_handler.c \
+  misc/isblank.c \
   misc/lc_locale_func.c \
   misc/output_format.c \
   misc/purecall.c \
@@ -707,6 +710,7 @@ src_msvcrt20=\
   misc/imaxabs.c \
   misc/imaxdiv.c \
   misc/invalid_parameter_handler.c \
+  misc/isblank.c \
   misc/lc_locale_func.c \
   misc/output_format.c \
   misc/purecall.c \
@@ -734,6 +738,7 @@ src_msvcrt40=\
   misc/imaxabs.c \
   misc/imaxdiv.c \
   misc/invalid_parameter_handler.c \
+  misc/isblank.c \
   misc/lc_locale_func.c \
   misc/output_format.c \
   misc/purecall.c \
@@ -755,6 +760,7 @@ src_msvcr70=\
   misc/imaxabs.c \
   misc/imaxdiv.c \
   misc/invalid_parameter_handler.c \
+  misc/isblank.c \
   misc/output_format.c \
   misc/seterrno.c \
   misc/wassert.c \
@@ -769,6 +775,7 @@ src_msvcr71=\
   misc/imaxabs.c \
   misc/imaxdiv.c \
   misc/invalid_parameter_handler.c \
+  misc/isblank.c \
   misc/output_format.c \
   misc/seterrno.c \
   misc/wassert.c \
@@ -777,10 +784,18 @@ src_msvcr71=\
   stdio/mingw_lock.c
 
 src_msvcr80=\
-  misc/imaxdiv.c
+  misc/imaxdiv.c \
+  misc/isblank.c
 
 src_msvcr90=\
-  misc/imaxdiv.c
+  misc/imaxdiv.c \
+  misc/isblank.c
+
+src_msvcr100=\
+  misc/isblank.c
+
+src_msvcr110=\
+  misc/isblank.c
 
 src_msvcr120_app=\
   misc/__set_app_type.c \
@@ -836,7 +851,7 @@ src_libmingwex=\
   misc/feclearexcept.c   misc/fegetenv.c            misc/fegetexceptflag.c  
misc/fegetround.c            misc/feholdexcept.c    \
   misc/feraiseexcept.c   misc/fesetenv.c            misc/fesetexceptflag.c  
misc/fesetround.c            misc/fetestexcept.c    \
   misc/feupdateenv.c     misc/ftruncate.c           misc/fwide.c            
misc/getlogin.c              misc/getopt.c          \
-  misc/gettimeofday.c    misc/isblank.c             misc/iswblank.c        \
+  misc/gettimeofday.c    misc/iswblank.c        \
   misc/mempcpy.c         misc/mingw-aligned-malloc.c \
   misc/mingw_matherr.c   misc/mingw_mbwc_convert.c  misc/mingw_usleep.c     
misc/mingw_wcstod.c          misc/mingw_wcstof.c    \
   misc/mingw_wcstold.c \
@@ -1291,11 +1306,11 @@ lib32/libmsvcr90d.a: lib-common/msvcr90d.mri 
lib32/libmsvcr90d_def.a lib32/libms
        cd $(dir $@) && $(AR) -M < $(abspath $<)
 
 lib32_DATA += lib32/libmsvcr100.a
-lib32/libmsvcr100.a: lib-common/msvcr100.mri lib32/libmsvcr100_def.a 
lib32/libmsvcrt_common.a
+lib32/libmsvcr100.a: lib-common/msvcr100.mri lib32/libmsvcr100_def.a 
lib32/libmsvcrt_common.a lib32/libmsvcr100_extra.a
        cd $(dir $@) && $(AR) -M < $(abspath $<)
 
 lib32_DATA += lib32/libmsvcr110.a
-lib32/libmsvcr110.a: lib-common/msvcr110.mri lib32/libmsvcr110_def.a 
lib32/libmsvcrt_common.a
+lib32/libmsvcr110.a: lib-common/msvcr110.mri lib32/libmsvcr110_def.a 
lib32/libmsvcrt_common.a lib32/libmsvcr110_extra.a
        cd $(dir $@) && $(AR) -M < $(abspath $<)
 
 lib32_DATA += lib32/libmsvcr120.a
@@ -1315,7 +1330,7 @@ lib32/libucrtbase.a: lib-common/ucrtbase.mri 
lib32/libucrtbase_def.a lib32/libuc
        cd $(dir $@) && $(AR) -M < $(abspath $<)
 
 lib32_DATA += lib32/libucrt.a lib32/libucrtapp.a
-noinst_LIBRARIES += lib32/libcrtdll_extra.a lib32/libmsvcrt10_extra.a 
lib32/libmsvcrt20_extra.a lib32/libmsvcrt40_extra.a lib32/libmsvcrt_common.a 
lib32/libmsvcrt_extra.a lib32/libmsvcr70_extra.a lib32/libmsvcr71_extra.a 
lib32/libmsvcr80_extra.a lib32/libmsvcr90_extra.a lib32/libmsvcr120_app_extra.a 
lib32/libucrt_extra.a lib32/libucrtapp_extra.a
+noinst_LIBRARIES += lib32/libcrtdll_extra.a lib32/libmsvcrt10_extra.a 
lib32/libmsvcrt20_extra.a lib32/libmsvcrt40_extra.a lib32/libmsvcrt_common.a 
lib32/libmsvcrt_extra.a lib32/libmsvcr70_extra.a lib32/libmsvcr71_extra.a 
lib32/libmsvcr80_extra.a lib32/libmsvcr90_extra.a lib32/libmsvcr100_extra.a 
lib32/libmsvcr110_extra.a lib32/libmsvcr120_app_extra.a lib32/libucrt_extra.a 
lib32/libucrtapp_extra.a
 lib32_libcrtdll_extra_a_SOURCES = $(src_crtdll)
 lib32_libcrtdll_extra_a_CPPFLAGS = $(CPPFLAGS32) -D__LIBMSVCRT__ 
$(extra_include) $(sysincludes)
 lib32_libmsvcrt10_extra_a_SOURCES = $(src_msvcrt10)
@@ -1336,6 +1351,10 @@ lib32_libmsvcr80_extra_a_SOURCES = $(src_msvcr80)
 lib32_libmsvcr80_extra_a_CPPFLAGS = $(CPPFLAGS32) -D__LIBMSVCRT__ 
$(extra_include) $(sysincludes)
 lib32_libmsvcr90_extra_a_SOURCES = $(src_msvcr90)
 lib32_libmsvcr90_extra_a_CPPFLAGS = $(CPPFLAGS32) -D__LIBMSVCRT__ 
$(extra_include) $(sysincludes)
+lib32_libmsvcr100_extra_a_SOURCES = $(src_msvcr100)
+lib32_libmsvcr100_extra_a_CPPFLAGS = $(CPPFLAGS32) -D__LIBMSVCRT__ 
$(extra_include) $(sysincludes)
+lib32_libmsvcr110_extra_a_SOURCES = $(src_msvcr110)
+lib32_libmsvcr110_extra_a_CPPFLAGS = $(CPPFLAGS32) -D__LIBMSVCRT__ 
$(extra_include) $(sysincludes)
 lib32_libmsvcr120_app_extra_a_SOURCES = $(src_msvcr120_app)
 lib32_libmsvcr120_app_extra_a_CPPFLAGS=$(CPPFLAGS32) -D__LIBMSVCRT__ 
$(extra_include) $(sysincludes)
 lib32_libucrt_extra_a_SOURCES = $(src_ucrtbase32)
@@ -1648,11 +1667,11 @@ lib64/libmsvcr90d.a: lib-common/msvcr90d.mri 
lib64/libmsvcr90d_def.a lib64/libms
        cd $(dir $@) && $(AR) -M < $(abspath $<)
 
 lib64_DATA += lib64/libmsvcr100.a
-lib64/libmsvcr100.a: lib-common/msvcr100.mri lib64/libmsvcr100_def.a 
lib64/libmsvcrt_common.a
+lib64/libmsvcr100.a: lib-common/msvcr100.mri lib64/libmsvcr100_def.a 
lib64/libmsvcrt_common.a lib64/libmsvcr100_extra.a
        cd $(dir $@) && $(AR) -M < $(abspath $<)
 
 lib64_DATA += lib64/libmsvcr110.a
-lib64/libmsvcr110.a: lib-common/msvcr110.mri lib64/libmsvcr110_def.a 
lib64/libmsvcrt_common.a
+lib64/libmsvcr110.a: lib-common/msvcr110.mri lib64/libmsvcr110_def.a 
lib64/libmsvcrt_common.a lib64/libmsvcr110_extra.a
        cd $(dir $@) && $(AR) -M < $(abspath $<)
 
 lib64_DATA += lib64/libmsvcr120.a
@@ -1672,7 +1691,7 @@ lib64/libucrtbase.a: lib-common/ucrtbase.mri 
lib64/libucrtbase_def.a lib64/libuc
        cd $(dir $@) && $(AR) -M < $(abspath $<)
 
 lib64_DATA += lib64/libucrt.a lib64/libucrtapp.a
-noinst_LIBRARIES += lib64/libmsvcrt_common.a lib64/libmsvcrt_extra.a 
lib64/libmsvcr80_extra.a lib64/libmsvcr90_extra.a lib64/libmsvcr120_app_extra.a 
lib64/libucrt_extra.a lib64/libucrtapp_extra.a
+noinst_LIBRARIES += lib64/libmsvcrt_common.a lib64/libmsvcrt_extra.a 
lib64/libmsvcr80_extra.a lib64/libmsvcr90_extra.a lib64/libmsvcr100_extra.a 
lib64/libmsvcr110_extra.a lib64/libmsvcr120_app_extra.a lib64/libucrt_extra.a 
lib64/libucrtapp_extra.a
 lib64_libmsvcrt_common_a_SOURCES = $(src_msvcrt_common64)
 lib64_libmsvcrt_common_a_CPPFLAGS=$(CPPFLAGS64) -D__LIBMSVCRT__ 
$(extra_include) $(sysincludes)
 lib64_libmsvcrt_extra_a_SOURCES = $(src_msvcrt64)
@@ -1681,6 +1700,10 @@ lib64_libmsvcr80_extra_a_SOURCES = $(src_msvcr80)
 lib64_libmsvcr80_extra_a_CPPFLAGS=$(CPPFLAGS64) -D__LIBMSVCRT__ 
$(extra_include) $(sysincludes)
 lib64_libmsvcr90_extra_a_SOURCES = $(src_msvcr90)
 lib64_libmsvcr90_extra_a_CPPFLAGS=$(CPPFLAGS64) -D__LIBMSVCRT__ 
$(extra_include) $(sysincludes)
+lib64_libmsvcr100_extra_a_SOURCES = $(src_msvcr100)
+lib64_libmsvcr100_extra_a_CPPFLAGS=$(CPPFLAGS64) -D__LIBMSVCRT__ 
$(extra_include) $(sysincludes)
+lib64_libmsvcr110_extra_a_SOURCES = $(src_msvcr110)
+lib64_libmsvcr110_extra_a_CPPFLAGS=$(CPPFLAGS64) -D__LIBMSVCRT__ 
$(extra_include) $(sysincludes)
 lib64_libmsvcr120_app_extra_a_SOURCES = $(src_msvcr120_app)
 lib64_libmsvcr120_app_extra_a_CPPFLAGS=$(CPPFLAGS64) -D__LIBMSVCRT__ 
$(extra_include) $(sysincludes)
 lib64_libucrt_extra_a_SOURCES = $(src_ucrtbase64)
diff --git a/mingw-w64-crt/lib-common/msvcr100.mri 
b/mingw-w64-crt/lib-common/msvcr100.mri
index d8eae8a3c942..c28b6f3cd020 100644
--- a/mingw-w64-crt/lib-common/msvcr100.mri
+++ b/mingw-w64-crt/lib-common/msvcr100.mri
@@ -1,5 +1,6 @@
 CREATE libmsvcr100.a
 ADDLIB libmsvcr100_def.a
 ADDLIB libmsvcrt_common.a
+ADDLIB libmsvcr100_extra.a
 SAVE
 END
diff --git a/mingw-w64-crt/lib-common/msvcr110.mri 
b/mingw-w64-crt/lib-common/msvcr110.mri
index 8be7274f32f4..6b25e6caa3bb 100644
--- a/mingw-w64-crt/lib-common/msvcr110.mri
+++ b/mingw-w64-crt/lib-common/msvcr110.mri
@@ -1,5 +1,6 @@
 CREATE libmsvcr110.a
 ADDLIB libmsvcr110_def.a
 ADDLIB libmsvcrt_common.a
+ADDLIB libmsvcr110_extra.a
 SAVE
 END
-- 
2.20.1



_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to