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