List of symbols in ucrtbase.def.in and ucrtbased.def.in are very similar.
So move them into one common file ucrtbase-common.def.in and based on
DEF_DEBUG definition choose if the symbol list is for debug ucrtbased.dll
or release ucrtbase.dll library.
---
 ...ucrtbase.def.in => ucrtbase-common.def.in} |  315 +-
 mingw-w64-crt/lib-common/ucrtbase.def.in      | 2666 +---------------
 mingw-w64-crt/lib-common/ucrtbased.def.in     | 2712 +----------------
 3 files changed, 209 insertions(+), 5484 deletions(-)
 copy mingw-w64-crt/lib-common/{ucrtbase.def.in => ucrtbase-common.def.in} (87%)
 rewrite mingw-w64-crt/lib-common/ucrtbase.def.in (99%)
 rewrite mingw-w64-crt/lib-common/ucrtbased.def.in (99%)

diff --git a/mingw-w64-crt/lib-common/ucrtbase.def.in 
b/mingw-w64-crt/lib-common/ucrtbase-common.def.in
similarity index 87%
copy from mingw-w64-crt/lib-common/ucrtbase.def.in
copy to mingw-w64-crt/lib-common/ucrtbase-common.def.in
index c9da99c13a89..4e1c87da6962 100644
--- a/mingw-w64-crt/lib-common/ucrtbase.def.in
+++ b/mingw-w64-crt/lib-common/ucrtbase-common.def.in
@@ -1,32 +1,62 @@
-LIBRARY "ucrtbase.dll"
-EXPORTS
-
-#include "func.def.in"
-
-; This is list of symbols available in the first public version 10.0.10137.0 
of ucrtbase.dll
-; It is part of the Microsoft Visual C++ 2015 Redistributable version 
14.0.23026.0
-#ifdef DEF_I386
-_CIacos
-_CIasin
-_CIatan
-_CIatan2
-_CIcos
-_CIcosh
-_CIexp
-_CIfmod
-_CIlog
-_CIlog10
-_CIpow
-_CIsin
-_CIsinh
-_CIsqrt
-_CItan
-_CItanh
+#ifdef DEF_DEBUG
+#define F_DEBUG(x) x
+#define F_NON_DEBUG(x)
+#else
+#define F_DEBUG(x)
+#define F_NON_DEBUG(x) x
 #endif
+
+; This is list of symbols available in the first public UCRT version 
(ucrtbase.dll and ucrtbased.dll)
+; First public ucrtbase.dll version is 10.0.10137.0 and is part of the 
Microsoft Visual C++ 2015 Redistributable version 14.0.23026.0
+; First public ucrtbased.dll version is 10.0.10150.0 and is part of the 
Microsoft Visual Studio 2015 (Universal CRT Headers Libraries and Sources)
+F_I386(_CIacos)
+F_I386(_CIasin)
+F_I386(_CIatan)
+F_I386(_CIatan2)
+F_I386(_CIcos)
+F_I386(_CIcosh)
+F_I386(_CIexp)
+F_I386(_CIfmod)
+F_I386(_CIlog)
+F_I386(_CIlog10)
+F_I386(_CIpow)
+F_I386(_CIsin)
+F_I386(_CIsinh)
+F_I386(_CIsqrt)
+F_I386(_CItan)
+F_I386(_CItanh)
 _Cbuild
 _Cmulcc
 _Cmulcr
 _CreateFrameInfo
+F_DEBUG(_CrtCheckMemory)
+F_DEBUG(_CrtDbgReport)
+F_DEBUG(_CrtDbgReportW)
+F_DEBUG(_CrtDoForAllClientObjects)
+F_DEBUG(_CrtDumpMemoryLeaks)
+F_DEBUG(_CrtGetAllocHook)
+F_DEBUG(_CrtGetDebugFillThreshold)
+F_DEBUG(_CrtGetDumpClient)
+F_DEBUG(_CrtGetReportHook)
+F_DEBUG(_CrtIsMemoryBlock)
+F_DEBUG(_CrtIsValidHeapPointer)
+F_DEBUG(_CrtIsValidPointer)
+F_DEBUG(_CrtMemCheckpoint)
+F_DEBUG(_CrtMemDifference)
+F_DEBUG(_CrtMemDumpAllObjectsSince)
+F_DEBUG(_CrtMemDumpStatistics)
+F_DEBUG(_CrtReportBlockType)
+F_DEBUG(_CrtSetAllocHook)
+F_DEBUG(_CrtSetBreakAlloc)
+F_DEBUG(_CrtSetDbgBlockType)
+F_DEBUG(_CrtSetDbgFlag)
+F_DEBUG(_CrtSetDebugFillThreshold)
+F_DEBUG(_CrtSetDumpClient)
+F_DEBUG(_CrtSetReportFile)
+F_DEBUG(_CrtSetReportHook)
+F_DEBUG(_CrtSetReportHook2)
+F_DEBUG(_CrtSetReportHookW2)
+F_DEBUG(_CrtSetReportMode)
 F_I386(_CxxThrowException@8)
 F_NON_I386(_CxxThrowException)
 F_I386(_EH_prolog)
@@ -52,6 +82,8 @@ F_X64(_SetImageBase)
 F_X64(_SetThrowImageBase)
 _SetWinRTOutOfMemoryExceptionCallback
 _Strftime
+F_DEBUG(_VCrtDbgReportA)
+F_DEBUG(_VCrtDbgReportW)
 _W_Getdays
 _W_Getmonths
 _W_Gettnames
@@ -112,34 +144,34 @@ __iscsymf
 __iswcsym
 __iswcsymf
 F_ARM32(__jump_unwind)
-#ifdef DEF_I386
-__libm_sse2_acos
-__libm_sse2_acosf
-__libm_sse2_asin
-__libm_sse2_asinf
-__libm_sse2_atan
-__libm_sse2_atan2
-__libm_sse2_atanf
-__libm_sse2_cos
-__libm_sse2_cosf
-__libm_sse2_exp
-__libm_sse2_expf
-__libm_sse2_log
-__libm_sse2_log10
-__libm_sse2_log10f
-__libm_sse2_logf
-__libm_sse2_pow
-__libm_sse2_powf
-__libm_sse2_sin
-__libm_sse2_sinf
-__libm_sse2_tan
-__libm_sse2_tanf
-#endif
+F_I386(__libm_sse2_acos)
+F_I386(__libm_sse2_acosf)
+F_I386(__libm_sse2_asin)
+F_I386(__libm_sse2_asinf)
+F_I386(__libm_sse2_atan)
+F_I386(__libm_sse2_atan2)
+F_I386(__libm_sse2_atanf)
+F_I386(__libm_sse2_cos)
+F_I386(__libm_sse2_cosf)
+F_I386(__libm_sse2_exp)
+F_I386(__libm_sse2_expf)
+F_I386(__libm_sse2_log)
+F_I386(__libm_sse2_log10)
+F_I386(__libm_sse2_log10f)
+F_I386(__libm_sse2_logf)
+F_I386(__libm_sse2_pow)
+F_I386(__libm_sse2_powf)
+F_I386(__libm_sse2_sin)
+F_I386(__libm_sse2_sinf)
+F_I386(__libm_sse2_tan)
+F_I386(__libm_sse2_tanf)
 __p___argc
 __p___argv
 __p___wargv
 __p__acmdln
 __p__commode
+F_DEBUG(__p__crtBreakAlloc)
+F_DEBUG(__p__crtDbgFlag)
 __p__environ
 __p__fmode
 __p__mbcasemap
@@ -186,8 +218,11 @@ __threadid
 __timezone
 __toascii
 __tzname
+#if !defined(DEF_DEBUG) || !defined(DEF_ARM64)
+; symbols __unDName and __unDNameEx are available in all versions except ARM64 
ucrtbased.dll
 __unDName
 __unDNameEx
+#endif
 __uncaught_exception
 __wcserror
 __wcserror_s
@@ -196,13 +231,21 @@ _abs64
 _access
 _access_s
 _aligned_free
+F_DEBUG(_aligned_free_dbg)
 _aligned_malloc
+F_DEBUG(_aligned_malloc_dbg)
 _aligned_msize
+F_DEBUG(_aligned_msize_dbg)
 _aligned_offset_malloc
+F_DEBUG(_aligned_offset_malloc_dbg)
 _aligned_offset_realloc
+F_DEBUG(_aligned_offset_realloc_dbg)
 _aligned_offset_recalloc
+F_DEBUG(_aligned_offset_recalloc_dbg)
 _aligned_realloc
+F_DEBUG(_aligned_realloc_dbg)
 _aligned_recalloc
+F_DEBUG(_aligned_recalloc_dbg)
 _assert
 _atodbl
 _atodbl_l
@@ -223,10 +266,10 @@ _byteswap_uint64
 _byteswap_ulong
 _byteswap_ushort
 _c_exit
-; DATA set manually
-_cabs DATA
+_cabs DATA ; DATA set manually
 _callnewh
 _calloc_base
+F_DEBUG(_calloc_dbg)
 _cexit
 _cgets
 _cgets_s
@@ -240,6 +283,8 @@ F_I386(_chkesp)
 _chmod
 _chsize
 _chsize_s
+F_DEBUG(_chvalidator)
+F_DEBUG(_chvalidator_l)
 _clearfp
 _close
 _commit
@@ -280,6 +325,7 @@ _dunscale
 _dup
 _dup2
 _dupenv_s
+F_DEBUG(_dupenv_s_dbg)
 _ecvt
 _ecvt_s
 _endthread
@@ -301,6 +347,7 @@ _execvp
 _execvpe
 _exit
 _expand
+F_DEBUG(_expand_dbg)
 _fclose_nolock
 _fcloseall
 _fcvt
@@ -341,8 +388,7 @@ _flushall
 _fpclass
 F_X64(_fpclassf)
 _fpieee_flt
-; DATA added manually
-_fpreset DATA
+_fpreset DATA ; DATA added manually
 _fputc_nolock
 _fputchar
 _fputwc_nolock
@@ -350,6 +396,7 @@ _fputwchar
 _fread_nolock
 _fread_nolock_s
 _free_base
+F_DEBUG(_free_dbg)
 _free_locale
 _fseek_nolock
 _fseeki64
@@ -368,6 +415,7 @@ _ftime64
 _ftime64_s
 F_I386(_ftol)
 _fullpath
+F_DEBUG(_fullpath_dbg)
 _futime32
 _futime64
 _fwrite_nolock
@@ -403,7 +451,9 @@ _getch_nolock
 _getche
 _getche_nolock
 _getcwd
+F_DEBUG(_getcwd_dbg)
 _getdcwd
+F_DEBUG(_getdcwd_dbg)
 _getdiskfree
 _getdllprocaddr
 _getdrive
@@ -439,10 +489,14 @@ _initialize_onexit_table
 _initialize_wide_environment
 _initterm
 _initterm_e
+F_DEBUG(_invalid_parameter)
 _invalid_parameter_noinfo
 _invalid_parameter_noinfo_noreturn
 _invoke_watson
+#if !defined(DEF_DEBUG) || !defined(DEF_ARM64)
+; symbol _is_exception_typeof is available in all versions except ARM64 
ucrtbased.dll
 _is_exception_typeof
+#endif
 _isalnum_l
 _isalpha_l
 _isatty
@@ -559,19 +613,17 @@ _ldtest
 _ldunscale
 _lfind
 _lfind_s
-#ifdef DEF_I386
-_libm_sse2_acos_precise
-_libm_sse2_asin_precise
-_libm_sse2_atan_precise
-_libm_sse2_cos_precise
-_libm_sse2_exp_precise
-_libm_sse2_log10_precise
-_libm_sse2_log_precise
-_libm_sse2_pow_precise
-_libm_sse2_sin_precise
-_libm_sse2_sqrt_precise
-_libm_sse2_tan_precise
-#endif
+F_I386(_libm_sse2_acos_precise)
+F_I386(_libm_sse2_asin_precise)
+F_I386(_libm_sse2_atan_precise)
+F_I386(_libm_sse2_cos_precise)
+F_I386(_libm_sse2_exp_precise)
+F_I386(_libm_sse2_log10_precise)
+F_I386(_libm_sse2_log_precise)
+F_I386(_libm_sse2_pow_precise)
+F_I386(_libm_sse2_sin_precise)
+F_I386(_libm_sse2_sqrt_precise)
+F_I386(_libm_sse2_tan_precise)
 _loaddll
 F64(_local_unwind)
 F_I386(_local_unwind2)
@@ -599,6 +651,7 @@ _ltow_s
 _makepath
 _makepath_s
 _malloc_base
+F_DEBUG(_malloc_dbg)
 _mbbtombc
 _mbbtombc_l
 _mbbtype
@@ -642,6 +695,7 @@ _mbscspn_l
 _mbsdec
 _mbsdec_l
 _mbsdup
+F_DEBUG(_mbsdup_dbg)
 _mbsicmp
 _mbsicmp_l
 _mbsicoll
@@ -746,26 +800,25 @@ _mktemp_s
 _mktime32
 _mktime64
 _msize
+F_DEBUG(_msize_dbg)
 _nextafter
 F_X64(_nextafterf)
-#ifdef DEF_I386
-_o__CIacos
-_o__CIasin
-_o__CIatan
-_o__CIatan2
-_o__CIcos
-_o__CIcosh
-_o__CIexp
-_o__CIfmod
-_o__CIlog
-_o__CIlog10
-_o__CIpow
-_o__CIsin
-_o__CIsinh
-_o__CIsqrt
-_o__CItan
-_o__CItanh
-#endif
+F_I386(_o__CIacos)
+F_I386(_o__CIasin)
+F_I386(_o__CIatan)
+F_I386(_o__CIatan2)
+F_I386(_o__CIcos)
+F_I386(_o__CIcosh)
+F_I386(_o__CIexp)
+F_I386(_o__CIfmod)
+F_I386(_o__CIlog)
+F_I386(_o__CIlog10)
+F_I386(_o__CIpow)
+F_I386(_o__CIsin)
+F_I386(_o__CIsinh)
+F_I386(_o__CIsqrt)
+F_I386(_o__CItan)
+F_I386(_o__CItanh)
 _o__Getdays
 _o__Getmonths
 _o__Gettnames
@@ -786,29 +839,27 @@ _o___conio_common_vcwscanf
 _o___daylight
 _o___dstbias
 _o___fpe_flt_rounds
-#ifdef DEF_I386
-_o___libm_sse2_acos
-_o___libm_sse2_acosf
-_o___libm_sse2_asin
-_o___libm_sse2_asinf
-_o___libm_sse2_atan
-_o___libm_sse2_atan2
-_o___libm_sse2_atanf
-_o___libm_sse2_cos
-_o___libm_sse2_cosf
-_o___libm_sse2_exp
-_o___libm_sse2_expf
-_o___libm_sse2_log
-_o___libm_sse2_log10
-_o___libm_sse2_log10f
-_o___libm_sse2_logf
-_o___libm_sse2_pow
-_o___libm_sse2_powf
-_o___libm_sse2_sin
-_o___libm_sse2_sinf
-_o___libm_sse2_tan
-_o___libm_sse2_tanf
-#endif
+F_I386(_o___libm_sse2_acos)
+F_I386(_o___libm_sse2_acosf)
+F_I386(_o___libm_sse2_asin)
+F_I386(_o___libm_sse2_asinf)
+F_I386(_o___libm_sse2_atan)
+F_I386(_o___libm_sse2_atan2)
+F_I386(_o___libm_sse2_atanf)
+F_I386(_o___libm_sse2_cos)
+F_I386(_o___libm_sse2_cosf)
+F_I386(_o___libm_sse2_exp)
+F_I386(_o___libm_sse2_expf)
+F_I386(_o___libm_sse2_log)
+F_I386(_o___libm_sse2_log10)
+F_I386(_o___libm_sse2_log10f)
+F_I386(_o___libm_sse2_logf)
+F_I386(_o___libm_sse2_pow)
+F_I386(_o___libm_sse2_powf)
+F_I386(_o___libm_sse2_sin)
+F_I386(_o___libm_sse2_sinf)
+F_I386(_o___libm_sse2_tan)
+F_I386(_o___libm_sse2_tanf)
 _o___p___argc
 _o___p___argv
 _o___p___wargv
@@ -1125,19 +1176,17 @@ _o__ldtest
 _o__ldunscale
 _o__lfind
 _o__lfind_s
-#ifdef DEF_I386
-_o__libm_sse2_acos_precise
-_o__libm_sse2_asin_precise
-_o__libm_sse2_atan_precise
-_o__libm_sse2_cos_precise
-_o__libm_sse2_exp_precise
-_o__libm_sse2_log10_precise
-_o__libm_sse2_log_precise
-_o__libm_sse2_pow_precise
-_o__libm_sse2_sin_precise
-_o__libm_sse2_sqrt_precise
-_o__libm_sse2_tan_precise
-#endif
+F_I386(_o__libm_sse2_acos_precise)
+F_I386(_o__libm_sse2_asin_precise)
+F_I386(_o__libm_sse2_atan_precise)
+F_I386(_o__libm_sse2_cos_precise)
+F_I386(_o__libm_sse2_exp_precise)
+F_I386(_o__libm_sse2_log10_precise)
+F_I386(_o__libm_sse2_log_precise)
+F_I386(_o__libm_sse2_pow_precise)
+F_I386(_o__libm_sse2_sin_precise)
+F_I386(_o__libm_sse2_sqrt_precise)
+F_I386(_o__libm_sse2_tan_precise)
 _o__loaddll
 _o__localtime32
 _o__localtime32_s
@@ -1858,7 +1907,9 @@ _query_new_handler
 _query_new_mode
 _read
 _realloc_base
+F_DEBUG(_realloc_dbg)
 _recalloc
+F_DEBUG(_recalloc_dbg)
 _register_onexit_function
 _register_thread_local_exe_atexit_callback
 _resetstkoflw
@@ -1922,6 +1973,7 @@ _strcoll_l
 _strdate
 _strdate_s
 _strdup
+F_DEBUG(_strdup_dbg)
 _strerror
 _strerror_s
 _strftime_l
@@ -1968,6 +2020,7 @@ _swab
 _tell
 _telli64
 _tempnam
+F_DEBUG(_tempnam_dbg)
 _time32
 _time64
 _timespec32_get
@@ -1978,8 +2031,7 @@ _toupper
 _toupper_l
 _towlower_l
 _towupper_l
-; This is wrapped in the compat code.
-_tzset DATA
+_tzset DATA ; This is wrapped in the compat code.
 _ui64toa
 _ui64toa_s
 _ui64tow
@@ -2013,6 +2065,7 @@ _wcreat
 _wcreate_locale
 _wcscoll_l
 _wcsdup
+F_DEBUG(_wcsdup_dbg)
 _wcserror
 _wcserror_s
 _wcsftime_l
@@ -2063,6 +2116,7 @@ _wctomb_l
 _wctomb_s_l
 _wctype DATA
 _wdupenv_s
+F_DEBUG(_wdupenv_s_dbg)
 _wexecl
 _wexecle
 _wexeclp
@@ -2086,8 +2140,11 @@ _wfreopen
 _wfreopen_s
 _wfsopen
 _wfullpath
+F_DEBUG(_wfullpath_dbg)
 _wgetcwd
+F_DEBUG(_wgetcwd_dbg)
 _wgetdcwd
+F_DEBUG(_wgetdcwd_dbg)
 _wgetenv
 _wgetenv_s
 _wmakepath
@@ -2130,6 +2187,7 @@ _wstrtime
 _wstrtime_s
 _wsystem
 _wtempnam
+F_DEBUG(_wtempnam_dbg)
 _wtmpnam
 _wtmpnam_s
 _wtof
@@ -2606,8 +2664,8 @@ wctype
 wmemcpy_s
 wmemmove_s
 
-; These symbols were added in ucrtbase.dll version 10.0.10563.0
-; It is part of the Microsoft Visual C++ 2015 Redistributable version 
14.0.23506.0
+; These symbols were added in some later version of ucrtbase.dll and 
ucrtbased.dll
+; They were added into ucrtbase.dll version 10.0.10563.0 which is part of the 
Microsoft Visual C++ 2015 Redistributable version 14.0.23506.0
 _o____lc_codepage_func
 _o____lc_collate_cp_func
 _o____lc_locale_name_func
@@ -2637,18 +2695,15 @@ _o_rename
 _o_setlocale
 
 ; All symbols below this line are not available in Windows XP version of 
ucrtbase.dll
+; Also those symbols are not available in any version of ucrtbased.dll
 
 ; These symbols were added in ucrtbase.dll version 10.0.14393.0
 ; This is part of the Windows 10 Anniversary Update (Redstone 1)
-__std_terminate
-__uncaught_exceptions
+F_NON_DEBUG(__std_terminate)
+F_NON_DEBUG(__uncaught_exceptions)
 
 ; These symbols were added in ucrtbase.dll version 10.0.17134.1
-F_NON_I386(__C_specific_handler_noexcept)
+F_NON_DEBUG(F_NON_I386(__C_specific_handler_noexcept))
 
 ; These symbols were added in ucrtbase.dll version 10.0.19041.1
-F_X64(__CxxFrameHandler4)
-
-; Include symbol aliases for compatibility with msvcrt.dll
-#define UCRTBASE
-#include "crt-aliases.def.in"
+F_NON_DEBUG(F_X64(__CxxFrameHandler4))
diff --git a/mingw-w64-crt/lib-common/ucrtbase.def.in 
b/mingw-w64-crt/lib-common/ucrtbase.def.in
dissimilarity index 99%
index c9da99c13a89..2083ac640f9b 100644
--- a/mingw-w64-crt/lib-common/ucrtbase.def.in
+++ b/mingw-w64-crt/lib-common/ucrtbase.def.in
@@ -?,? +1,12 @@
+LIBRARY "ucrtbase.dll"
+EXPORTS
+
+#include "func.def.in"
+
+; Include common ucrtbase symbols for non-debug build ucrtbase.dll
+#undef DEF_DEBUG
+#include "ucrtbase-common.def.in"
+
+; Include symbol aliases for compatibility with msvcrt.dll
+#define UCRTBASE
+#include "crt-aliases.def.in"
diff --git a/mingw-w64-crt/lib-common/ucrtbased.def.in 
b/mingw-w64-crt/lib-common/ucrtbased.def.in
dissimilarity index 99%
index 0cbb4e26ca51..7d6712d3b064 100644
--- a/mingw-w64-crt/lib-common/ucrtbased.def.in
+++ b/mingw-w64-crt/lib-common/ucrtbased.def.in
@@ -?,? +1,12 @@
+LIBRARY "ucrtbased.dll"
+EXPORTS
+
+#include "func.def.in"
+
+; Include common ucrtbase symbols for debug build ucrtbased.dll
+#define DEF_DEBUG
+#include "ucrtbase-common.def.in"
+
+; Include symbol aliases for compatibility with msvcrt.dll
+#define UCRTBASE
+#include "crt-aliases.def.in"
-- 
2.20.1



_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to