Re: [Mingw-w64-public] [PATCH 12/15] crt: msvcrt.def.in: Add symbols introduced in Windows Vista I386 and X64
On Friday 05 April 2024 00:02:02 Martin Storsjö wrote: > On Mon, 1 Apr 2024, Pali Rohár wrote: > > > --- > > mingw-w64-crt/lib-common/msvcrt.def.in | 136 - > > 1 file changed, 88 insertions(+), 48 deletions(-) > > > > diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in > > b/mingw-w64-crt/lib-common/msvcrt.def.in > > index 818d5149b156..71a6efcde3c9 100644 > > --- a/mingw-w64-crt/lib-common/msvcrt.def.in > > +++ b/mingw-w64-crt/lib-common/msvcrt.def.in > > @@ -369,12 +369,14 @@ _XcptFilter > > F_ARM_ANY(__AdjustPointer) > > F_NON_I386(__C_specific_handler) > > __CppXcptFilter > > +F_X86_ANY(__CxxCallUnwindDelDtor) > > F_I386(__CxxCallUnwindDtor) > > F_I386(__CxxCallUnwindVecDtor) > > F_I386(__CxxDetectRethrow) > > F_I386(__CxxExceptionFilter) > > F_X86_ANY(__CxxFrameHandler) > > -F_ARM_ANY(__CxxFrameHandler3) > > +__CxxFrameHandler2 > > +__CxxFrameHandler3 > > F_I386(__CxxLongjmpUnwind@4) > > F_I386(__CxxQueryExceptionSize) > > F_I386(__CxxRegisterExceptionObject) > > @@ -403,10 +405,10 @@ __crtGetLocaleInfoW > > __crtGetStringTypeW > > __crtLCMapStringA > > __crtLCMapStringW > > -F_ARM_ANY(__daylight) > > +__daylight > > __dllonexit > > __doserrno > > -F_ARM_ANY(__dstbias) > > +__dstbias > > These two symbols, __daylight and __dstbias, probably should be marked DATA > (based on their declaration in headers at least). __daylight and __dstbias (with two leading underlines) are regular functions, not global variables. mingw-w64-crt does not provide its own replacement version for these functions. No other def file marks them as DATA and neither gendef does not detect these symbols as DATA in any my examined msvcrt.dll version. So why should they be marked as DATA? ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] [PATCH] crt: Use LoadLibraryA() in delayimp.c for char* type
On Mon, 1 Apr 2024, Pali Rohár wrote: dli.szDll is of LPCSTR type, which is always const char* (and not wchar_t*). So instead of LoadLibrary() (which may take wchar_t* if _UNICODE macro is defined by compiler) use LoadLibraryA() (which always takes char*). --- mingw-w64-crt/misc/delayimp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-crt/misc/delayimp.c b/mingw-w64-crt/misc/delayimp.c index ca4b51ad161d..caa6166f066a 100644 --- a/mingw-w64-crt/misc/delayimp.c +++ b/mingw-w64-crt/misc/delayimp.c @@ -177,7 +177,7 @@ FARPROC WINAPI __delayLoadHelper2(PCImgDelayDescr pidd,FARPROC *ppfnIATEntry) if(hmod==0) { if(__pfnDliNotifyHook2) hmod = (HMODULE) (((*__pfnDliNotifyHook2)(dliNotePreLoadLibrary,))); -if(hmod==0) hmod = LoadLibrary(dli.szDll); +if(hmod==0) hmod = LoadLibraryA(dli.szDll); if(hmod==0) { dli.dwLastError = GetLastError(); if(__pfnDliFailureHook2) -- 2.20.1 LGTM, pushed. Thanks! // Martin ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] [PATCH 01/15] crt: msvcrt.def.in: Add I386 C++ symbols
On Mon, 1 Apr 2024, Pali Rohár wrote: In msvcrt.def.in file are already defined mangled C++ symbols for X64 and ARM32 versions of msvcrt.dll, so add also them for I386 version. These symbols are present in Visual C++ 4.2 version of msvcrt.dll and same set of symbols are in Visual C++ 5.0 and 6.0 versions. --- mingw-w64-crt/lib-common/msvcrt.def.in | 101 + 1 file changed, 101 insertions(+) Except for the patches I commented on, in this 15 patch series, the rest seemed reasonable, so I pushed most of them. I omitted patch 4, 12 and 15 that I had comments on, and 14 which conflicted due to omitting those earlier patches. Thanks for these patches! // Martin ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] [PATCH 15/15] crt: msvcrt.def.in: Reorder symbols chronologically and add comments
On Mon, 1 Apr 2024, Pali Rohár wrote: Library msvcrt.dll was used by Visual C++ versions 4.2 - 6.0 and is also part of the Windows system starting with NT 4.0 and 98. Currently the file msvcrt.def.in contains mix of all symbols in semi alphabetical order, with ad-hoc symbol aliases which some are not exported by any msvcrt.dll version (but needed for mingw-w64). Cleanup symbol definitions, reorder them into chronological order according to released msvcrt.dll versions and add exhausting comments explaining from which msvcrt.dll version is symbol present and also if it is being replaced by other symbol at linking time for backward version compatibility reasons. If at symbol line is comment "replaced by" it means that the symbol is I think this sentence (and the next one) is easier to read if you'd add the word "there" before "is", i.e. "there is comment". Adding some a/an makes it a bit more legible English as well, and rephrasing a little, e.g. "If there is a comment "replaced by" at a symbol line, it means ..." +_endthread ; In Windows XP and Windows XP SP1 OS system version of msvcrt.dll this symbol has name _endthread@4, in all other versions (including XP SP3) is has standard name +_endthreadex ; In Windows XP and Windows XP SP1 OS system version of msvcrt.dll this symbol has name _endthreadex@4, in all other versions (including XP SP3) is has standard name There's a typo in these ocmments, "is has standard name", I guess you mean "it has standard name". +; This is list of additional symbol aliases not available in any CRT library +; FIXME: should they be removed? +F32(_ftime_s == _ftime32_s) +F64(_ftime_s == _ftime64_s) +snwprintf == _snwprintf +vsnwprintf == _vsnwprintf I would maybe remove the implication that these maybe should be removed, or rephrase the fixme, like e.g. "FIXME: check if these really are needed" or so. + +; This is list of some symbols from X86 version of libmingwex library which can be defined on ARM as alias to some msvcrt.dll symbols FWIW, the reason here is that on arm, long double is equal to regular double, so we don't need to provide our own replacements for these functions. // Martin ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] [PATCH 12/15] crt: msvcrt.def.in: Add symbols introduced in Windows Vista I386 and X64
On Mon, 1 Apr 2024, Pali Rohár wrote: --- mingw-w64-crt/lib-common/msvcrt.def.in | 136 - 1 file changed, 88 insertions(+), 48 deletions(-) diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index 818d5149b156..71a6efcde3c9 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -369,12 +369,14 @@ _XcptFilter F_ARM_ANY(__AdjustPointer) F_NON_I386(__C_specific_handler) __CppXcptFilter +F_X86_ANY(__CxxCallUnwindDelDtor) F_I386(__CxxCallUnwindDtor) F_I386(__CxxCallUnwindVecDtor) F_I386(__CxxDetectRethrow) F_I386(__CxxExceptionFilter) F_X86_ANY(__CxxFrameHandler) -F_ARM_ANY(__CxxFrameHandler3) +__CxxFrameHandler2 +__CxxFrameHandler3 F_I386(__CxxLongjmpUnwind@4) F_I386(__CxxQueryExceptionSize) F_I386(__CxxRegisterExceptionObject) @@ -403,10 +405,10 @@ __crtGetLocaleInfoW __crtGetStringTypeW __crtLCMapStringA __crtLCMapStringW -F_ARM_ANY(__daylight) +__daylight __dllonexit __doserrno -F_ARM_ANY(__dstbias) +__dstbias These two symbols, __daylight and __dstbias, probably should be marked DATA (based on their declaration in headers at least). // Martin ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] [PATCH 06/15] crt: msvcrt.def.in: Do not export symbol wcsnlen on I386 and X64
On Mon, 1 Apr 2024, Pali Rohár wrote: Symbol wcsnlen was first introduced in Windows Vista version of msvcrt.dll and mingw-w64 already provides replacement implementation in libmingwex. So always use the replacement implementation on I386 and X64 and do not export it. Also remove DATA keyword and use it in the same way as other wc* symbols like wcsrtombs. --- mingw-w64-crt/lib-common/msvcrt.def.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index af9405c45d41..126097187f69 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -1703,7 +1703,7 @@ wcsncmp wcsncpy wcsncpy_s ; We provide replacement implementation in libmingwex -wcsnlen DATA +F_ARM_ANY(wcsnlen) FWIW, this looks reasonable. The UCRT import libraries (ucrtbase.def.in and api-ms-win-crt-string-l1-1-0.def) have copied the ; We provide replacement implementation in libmingwex wcsnlen DATA pattern here (as this marking in msvcrt.def.in didn't say why we're replacing this function). With your rationale in mind, we could probably remove that marker and "DATA" attribute from those def files, to allow the real UCRT version to be used. We could also consider moving this function from libmingwex into the libmsvcr* import libraries instead, to reduce the amount of unnecessary statically linked functions in UCRT configurations. (In principle, we could also make it specific to the x86 versions of msvcr*, as we can rely on this being present on ARM.) To be clear - this isn't a blocker for this patch, it looks reasonable on its own, but we (any of us) probably should clear this up for UCRT at least. // Martin ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] [PATCH 04/15] crt: msvcrt.def.in: Export _Crt* symbols also on I386 and X64
On Mon, 1 Apr 2024, Pali Rohár wrote: They are present in msvcrt.dll since Windows Vista. --- mingw-w64-crt/lib-common/msvcrt.def.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index 460a1bab097b..5b2f4ddb2f08 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -299,7 +299,7 @@ __ExceptionPtrToBool ?what@exception@@UBAPBDXZ #endif -#ifdef DEF_ARM32 +#if defined(DEF_ARM32) || defined(DEF_I386) || defined(DEF_X64) I'd rather remove the ifdef altogether. If they're available on those three architectures, they're quite likely available on arm64 as well. And I just checked; the arm64 version of msvcrt.dll also does contain these symbols. The reason for this discrepancy to begin with, was that most of these def files have started from dumps of different versions of msvcrt.dll; the arm32 dump was made from a much newer version that the other ones. For arm64, we've not really done any bulk import from dumps at all. When arm64 became relevant, we instead unified the common similar bits from i386/x86_64/arm32 (leading to a shared file with these symbols only available for arm32, as that was what it looked like in the 3 separate dumps before that) and concluded that whatever is common/shared between them, also should exist similarly for arm64. // Martin ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] [PATCH 1/3] crt: msvcrt20.def.in: Document different msvcrt20.dll versions
On Mon, 1 Apr 2024, Pali Rohár wrote: The original msvcrt20.dll version from Visual C++ 2.0 does not contain some symbols, which are present in the version from Visual C++ 2.1 Upgrade. Also Win32s version of msvcrt20.dll from Visual C++ 2.0 does not contain all symbols as full version. Follow up Visual C++ 2.2 Upgrade version have not introduced any new symbol. Windows OS system versions of msvcrt20.dll contains same set of symbols as full version from Visual C++ 2.1 Upgrade. --- mingw-w64-crt/lib32/msvcrt20.def.in | 109 +++- 1 file changed, 57 insertions(+), 52 deletions(-) Thanks, these 3 patches seemed reasonable, so I pushed them. // Martin ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
Re: [Mingw-w64-public] [PATCH 1/3] crt: Add non-inline variant of UCRT _scprintf, _snprintf and _snscanf functions
On Sat, 30 Mar 2024, Pali Rohár wrote: On Monday 25 March 2024 13:59:49 LIU Hao wrote: 在 2024-03-24 23:17, Pali Rohár 写道: I see... The problem is that inline version of that function in stdio.h conflicts with non-inline version in ucrt__scprintf.c file. One option how to avoid this problem is to not include stdio.h into ucrt__scprintf.c file. Other option can be to remove inline version completely. Please propose an updated patch for that. In 'ucrt__snwprintf.c' there are some hacks around it. Thank you for help. In attachment is an updated version. I checked that it works on top of the current master branch (because original version of the change is 2 years old now) and that it works for cases when target application includes stdio.h header file and also when it does not include it. For changes like this, where we're adding non-inline functions for _scprintf, _snprintf and _snscanf, I would very much prefer if we'd also remove the inline form of these functions at the same time. Right now, in the current form, the non-inline version of these functions are almost dead code and untestable with normal, proper use of the headers. It'd only be possible to test it by compiling code with headers in non-UCRT mode and linking against an UCRT import library. So instead, I'd prefer to remove the inline form of these functions, for clarity and simplicity. Then all use of these functions in UCRT mode go through these non-inline functions, and we can be sure that they work as intended just by testing using these functions in any UCRT environment. // Martin ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
[Mingw-w64-public] [PATCH 5/5] crt: msvcrt.def.in: Fix aliases for time related symbols on X64
Windows XP x64 does not provide 32-bit time functions. Those are provided on X64 systems since Windows Vista x64. Main function symbols (those without suffixes) are 64-bit on all Windows x64 systems. So remove aliasing of X64 "time" symbol to "_time64" symbol as it is not needed. Symbol "_difftime64" was added in Windows Vista. So for compatibility with Windows XP x64, define "_difftime64" symbol as alias to "difftime". Both symbols have same functionality. And export _ctime32, _mktime32, _time32 and _wctime32 symbols also on X64 version of msvcrt.dll as they are available since Windows Vista for both I386 and X64. Note that they are not available on Windows XP x64, but there is no reason to not export them (because mingw-w64 crt does not provide any fallback replacement implementation). --- mingw-w64-crt/lib-common/msvcrt.def.in | 22 +++--- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index ffc2812b92ac..c3dc34745aef 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -952,7 +952,7 @@ swscanf system tan tanh ; if we implement tanh, we can set it to DATA only. -time F_NON_I386(== _time64) +time tmpfile tmpnam tolower @@ -1250,9 +1250,7 @@ _crtDbgFlag _cscanf_l _cscanf_s _cscanf_s_l -; _ctime32 replaced by below aliases -F_ARM_ANY(_ctime32) -F_I386(_ctime32 == ctime) +_ctime32 F_I386(== ctime) ; i386 _ctime32 replaced by alias ; _ctime32_s replaced by emu ; _ctime64_s replaced by emu _cwprintf_l @@ -1264,7 +1262,7 @@ _cwscanf_l _cwscanf_s _cwscanf_s_l _difftime32 F_I386(== difftime) ; i386 _difftime32 replaced by alias -_difftime64 +_difftime64 F_X64(== difftime) ; x64 _difftime64 replaced by alias _ecvt_s F_I386(_except_handler4_common) _expand_dbg @@ -1464,11 +1462,9 @@ _mbtowc_l _mbsnlen _mbstrnlen _memicmp_l -_mkgmtime32 +_mkgmtime32 F_I386(== _mkgmtime) ; i386 _mkgmtime32 replaced by alias ; _mktemp_s replaced by emu -; _mktime32 replaced by below aliases -F_I386(_mktime32 == mktime) -F_ARM_ANY(_mktime32) +_mktime32 F_I386(== mktime) ; i386 _mktime32 replaced by alias F_NON_I386(_msize_dbg) F_I386(_msize_debug) _printf_l @@ -1544,9 +1540,7 @@ _swprintf_s_l _swscanf_l _swscanf_s_l _tempnam_dbg -; _time32 replaced by below aliases -F_I386(_time32 == time) -F_ARM_ANY(_time32) +_time32 F_I386(== time) ; i386 _time32 replaced by alias _tolower_l _toupper_l _towlower_l @@ -1634,9 +1628,7 @@ _wcsupr_l _wcsupr_s _wcsupr_s_l _wcsxfrm_l -; _wctime32 replaced by below aliases -F_I386(_wctime32 == _wctime) -F_ARM_ANY(_wctime32) +_wctime32 F_I386(== _wctime) ; i386 _wctime32 replaced by alias ; _wctime32_s replaced by emu ; _wctime64_s replaced by emu _wctomb_l -- 2.20.1 ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
[Mingw-w64-public] [PATCH 4/5] crt: msvcrt.def.in: Move symbol tanhf to correct section
Symbol tanhf is available since Windows Vista x64. It is not available on any 32-bit x86 version. So move this symbol from ARM-only section into since-Vista section. --- mingw-w64-crt/lib-common/msvcrt.def.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index 1aff69eff437..ffc2812b92ac 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -1702,6 +1702,7 @@ strncpy_s strtok_s swprintf_s swscanf_s +F_ARM_ANY(tanhf) ; i386 tanhf provided by emu and x64 tanhf replaced by emu tmpfile_s tmpnam_s F_ARM_ANY(utime) ; i386 and x64 utime replaced by alias in msvcrt-common.def.in @@ -1777,7 +1778,6 @@ _libm_sse2_tan_precise ; TODO: move them to appropriate OS system version section (version in which they were introduced) F_ARM_ANY(_memcpy_strict_align) F_ARM_ANY(fabsf) ; i386 and x64 fabsf provided by emu -F_ARM_ANY(tanhf) ; i386 and x64 tanhf provided by emu ; This is end of the list of symbols available in the Windows OS system versions of msvcrt.dll ; -- 2.20.1 ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
[Mingw-w64-public] [PATCH 3/5] crt: msvcrt.def.in: Do not export symbol __CxxCallUnwindDelDtor on X64
Symbol __CxxCallUnwindDelDtor is not available in any X64 version of msvcrt.dll library. So do not export it on X64. --- mingw-w64-crt/lib-common/msvcrt.def.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index cf8b6507b913..1aff69eff437 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -1189,7 +1189,7 @@ _CrtSetReportHook _CrtSetReportHook2 _CrtSetReportMode #endif -F_X86_ANY(__CxxCallUnwindDelDtor) +F_I386(__CxxCallUnwindDelDtor) __CxxFrameHandler3 __daylight __dstbias -- 2.20.1 ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
[Mingw-w64-public] [PATCH 1/5] crt: msvcrt.def.in: Consistently use lowercase word "replaced"
--- mingw-w64-crt/lib-common/msvcrt.def.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index d03b79314c12..a6f6da184274 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -1219,7 +1219,7 @@ __libm_sse2_tanf __strncnt __wcserror_s __wcsncnt -; _access_s Replaced by emu +; _access_s replaced by emu _aligned_free_dbg _aligned_malloc_dbg _aligned_offset_malloc_dbg @@ -1607,8 +1607,8 @@ _vwprintf_l _vwprintf_p _vwprintf_p_l _vwprintf_s_l -; _waccess_s Replaced by emu -; _wasctime_s Replaced by emu +; _waccess_s replaced by emu +; _wasctime_s replaced by emu F_NON_I386(_wassert) ; i386 _wassert replaced by emu _wcscoll_l _wcsdup_dbg -- 2.20.1 ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
[Mingw-w64-public] [PATCH 2/5] crt: msvcrt.def.in: Do not export symbols unavailable on X64 since Vista
Symbols _getdllprocaddr, _heapadd, _heapused, _loaddll and _unloaddll are available also in Windows XP x64 but were removed in Windows Vista x64 and not present in any later Windows x64 version. So do not export these symbols for X64. --- mingw-w64-crt/lib-common/msvcrt.def.in | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index a6f6da184274..cf8b6507b913 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++ b/mingw-w64-crt/lib-common/msvcrt.def.in @@ -483,7 +483,7 @@ _getche _getcwd _getdcwd _getdiskfree -_getdllprocaddr +F_I386(_getdllprocaddr) ; _getdllprocaddr is available also in Windows XP x64, but was removed in Windows Vista x64 _getdrive F_X86_ANY(_getdrives) _getmaxstdio @@ -493,11 +493,11 @@ F_X86_ANY(_getsystime) _getw F_X86_ANY(_getws) F_I386(_global_unwind2) -F_X86_ANY(_heapadd) +F_I386(_heapadd) ; _heapadd is available also in Windows XP x64, but was removed in Windows Vista x64 _heapchk _heapmin F_X86_ANY(_heapset) -F_X86_ANY(_heapused) +F_I386(_heapused) ; _heapused is available also in Windows XP x64, but was removed in Windows Vista x64 _heapwalk _hypot _i64toa @@ -546,7 +546,7 @@ _j1 _jn _kbhit _lfind -F_X86_ANY(_loaddll) +F_I386(_loaddll) ; _loaddll is available also in Windows XP x64, but was removed in Windows Vista x64 F_I386(_local_unwind2) _lock _locking @@ -710,7 +710,7 @@ _ultow _umask _ungetch _unlink -F_X86_ANY(_unloaddll) +F_I386(_unloaddll) ; _unloaddll is available also in Windows XP x64, but was removed in Windows Vista x64 _unlock _utime _vsnprintf -- 2.20.1 ___ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public