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