libmsvcrtd.a is import library for msvcrtd.dll and therefore it cannot include libmsvcrt_extra.a library which object files are compiled with -D__LIBMSVCRT_OS__ which instruct code to access msvcrt.dll library.
Add a new static library libmsvcrtd_extra.a which is compiled from subset of libmsvcrt_extra.a sources which does not depend on msvcrt.dll and compile them without -D__LIBMSVCRT_OS__ option. Then use this new static library libmsvcrtd_extra.a for building the final libmsvcrtd.a import library. --- mingw-w64-crt/Makefile.am | 43 +++++++++++++++++++++++++++++++-- mingw-w64-crt/lib32/msvcrtd.mri | 2 +- 2 files changed, 42 insertions(+), 3 deletions(-) diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am index 7db657ed7991..58b736d97282 100644 --- a/mingw-w64-crt/Makefile.am +++ b/mingw-w64-crt/Makefile.am @@ -898,6 +898,43 @@ src_msvcrt40=\ stdio/mingw_dummy__lock.c \ stdio/mingw_lock.c +src_msvcrtd=\ + math/x86/_copysignf.c \ + misc/___mb_cur_max_func.c \ + misc/__p__osplatform.c \ + misc/__pctype_func.c \ + misc/__pwctype_func.c \ + misc/__sys_errlist.c \ + misc/__sys_nerr.c \ + misc/_configthreadlocale.c \ + misc/_get_errno.c \ + misc/_set_errno.c \ + misc/btowc.c \ + misc/imaxabs.c \ + misc/imaxdiv.c \ + misc/invalid_parameter_handler.c \ + misc/isblank.c \ + misc/iswblank.c \ + misc/lc_locale_func.c \ + misc/mbrtowc.c \ + misc/output_format.c \ + misc/purecall.c \ + misc/strnlen.c \ + misc/strtoimax.c \ + misc/strtoumax.c \ + misc/wassert.c \ + misc/wcrtomb.c \ + misc/wcsnlen.c \ + misc/wcstoimax.c \ + misc/wcstoumax.c \ + misc/wctob.c \ + misc/wctrans.c \ + misc/wctype.c \ + stdio/_scprintf.c \ + stdio/_vscprintf.c \ + stdio/fseeki64.c \ + stdio/mingw_lock.c + src_msvcr70=\ misc/__p__osplatform.c \ misc/__sys_errlist.c \ @@ -1462,7 +1499,7 @@ lib32/libmsvcr40d.a: lib32/msvcr40d.mri lib32/libmsvcr40d_def.a lib32/libmsvcrt_ cd $(dir $@) && $(AR) -M < $(abspath $<) lib32_DATA += lib32/libmsvcrtd.a -lib32/libmsvcrtd.a: lib32/msvcrtd.mri lib32/libmsvcrtd_def.a lib32/libmsvcrt_common.a lib32/libmsvcrt_extra.a +lib32/libmsvcrtd.a: lib32/msvcrtd.mri lib32/libmsvcrtd_def.a lib32/libmsvcrt_common.a lib32/libmsvcrtd_extra.a cd $(dir $@) && $(AR) -M < $(abspath $<) lib32_DATA += lib32/libmsvcr70.a @@ -1534,7 +1571,7 @@ lib32/libucrtbased.a: lib-common/ucrtbased.mri lib32/libucrtbased_def.a lib32/li 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/libmsvcr100_extra.a lib32/libmsvcr110_extra.a lib32/libmsvcr120_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/libmsvcrtd_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_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) @@ -1547,6 +1584,8 @@ lib32_libmsvcrt_common_a_SOURCES = $(src_msvcrt_common32) lib32_libmsvcrt_common_a_CPPFLAGS=$(CPPFLAGS32) -D__LIBMSVCRT__ $(extra_include) $(sysincludes) lib32_libmsvcrt_extra_a_SOURCES = $(src_msvcrt32) lib32_libmsvcrt_extra_a_CPPFLAGS=$(CPPFLAGS32) -D__LIBMSVCRT__ -D__LIBMSVCRT_OS__ $(extra_include) $(sysincludes) +lib32_libmsvcrtd_extra_a_SOURCES = $(src_msvcrtd) +lib32_libmsvcrtd_extra_a_CPPFLAGS = $(CPPFLAGS32) -D__LIBMSVCRT__ $(extra_include) $(sysincludes) lib32_libmsvcr70_extra_a_SOURCES = $(src_msvcr70) lib32_libmsvcr70_extra_a_CPPFLAGS = $(CPPFLAGS32) -D__LIBMSVCRT__ $(extra_include) $(sysincludes) lib32_libmsvcr71_extra_a_SOURCES = $(src_msvcr71) diff --git a/mingw-w64-crt/lib32/msvcrtd.mri b/mingw-w64-crt/lib32/msvcrtd.mri index 24e94c2158a8..c2d5b0247881 100644 --- a/mingw-w64-crt/lib32/msvcrtd.mri +++ b/mingw-w64-crt/lib32/msvcrtd.mri @@ -1,6 +1,6 @@ CREATE libmsvcrtd.a ADDLIB libmsvcrtd_def.a ADDLIB libmsvcrt_common.a -ADDLIB libmsvcrt_extra.a +ADDLIB libmsvcrtd_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