[Mingw-w64-public] [PATCH 1/3] crt: msvcrt20.def.in: Document different msvcrt20.dll versions

2024-03-31 Thread Pali Rohár
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

[Mingw-w64-public] [PATCH 03/15] crt: msvcrt.def.in: Fix some I386 symbol names which miss @SIZE suffix

2024-03-31 Thread Pali Rohár
I386 symbols __CxxLongjmpUnwind, _adj_fdiv_m*, _adj_fdivr_m* and _seh_longjmp_unwind have @8 size suffix in all msvcrt.dll versions, including original MSVC 4.2, 5.0, 6.0 and also in Windows 98, ME and also in all NT versions (4.0, 2000, XP up to 10). Without @SIZE suffix are these symbols only

[Mingw-w64-public] [PATCH 02/15] crt: msvcrt.def.in: Add missing DATA for X64 C++ symbols

2024-03-31 Thread Pali Rohár
Checked with Windows XP x64 and also with Windows 10 x64 versions of msvcrt.dll. --- mingw-w64-crt/lib-common/msvcrt.def.in | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index

[Mingw-w64-public] [PATCH 05/15] crt: msvcrt.def.in: Do not export symbol $I10_OUTPUT on X64

2024-03-31 Thread Pali Rohár
It is available in Windows XP x64, but was removed in Windows Vista x64. So disable its usage for 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

[Mingw-w64-public] [PATCH 01/15] crt: msvcrt.def.in: Add I386 C++ symbols

2024-03-31 Thread Pali Rohár
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-public] [PATCH 04/15] crt: msvcrt.def.in: Export _Crt* symbols also on I386 and X64

2024-03-31 Thread Pali Rohár
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 ---

[Mingw-w64-public] [PATCH 2/3] crt: msvcrt40.def.in: Document different msvcrt40.dll versions

2024-03-31 Thread Pali Rohár
The original msvcrt40.dll version from Visual C++ 4.0 does not contain some symbols, which are present in the version from Visual C++ 4.1 Upgrade. Also Win32s version of msvcrt40.dll from Visual C++ 4.0 does not contain all symbols as full version. Follow up Visual C++ 4.2 Upgrade switches from

[Mingw-w64-public] [PATCH 3/3] crt: msvcrt40.def.in: Do not export symbols which are not present on Windows NT-based systems

2024-03-31 Thread Pali Rohár
Some symbols from original Microsoft Visual C++ 4.0 msvcrt40.dll library are not available in Windows NT-based OS systems versions. Disable these symbol exports as they are not usable on any recent system. --- mingw-w64-crt/lib32/msvcrt40.def.in | 23 --- 1 file changed, 12

[Mingw-w64-public] [PATCH 11/15] crt: msvcrt.def.in: Add C++ symbols introduced in Windows Vista I386 and X64

2024-03-31 Thread Pali Rohár
--- mingw-w64-crt/lib-common/msvcrt.def.in | 14 ++ 1 file changed, 14 insertions(+) diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index 3057afc2bb33..818d5149b156 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++

[Mingw-w64-public] [PATCH] crt: Use LoadLibraryA() in delayimp.c for char* type

2024-03-31 Thread Pali Rohár
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

[Mingw-w64-public] [PATCH 07/15] crt: msvcrt.def.in: Remove duplicate symbol alises for strlwr and wcslwr

2024-03-31 Thread Pali Rohár
These aliases are automatically added by including msvcrt-common.def.in file. --- mingw-w64-crt/lib-common/msvcrt.def.in | 2 -- 1 file changed, 2 deletions(-) diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index 126097187f69..5dc55e06b166 100644

[Mingw-w64-public] [PATCH 06/15] crt: msvcrt.def.in: Do not export symbol wcsnlen on I386 and X64

2024-03-31 Thread Pali Rohár
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*

[Mingw-w64-public] [PATCH 10/15] crt: msvcrt.def.in: Add C++ symbols introduced in Windows XP

2024-03-31 Thread Pali Rohár
--- mingw-w64-crt/lib-common/msvcrt.def.in | 8 1 file changed, 8 insertions(+) diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index 2bd70dd59182..3057afc2bb33 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++

[Mingw-w64-public] [PATCH 08/15] crt: msvcrt.def.in: Remove I386 symbols which are not available in any msvcrt.dll version

2024-03-31 Thread Pali Rohár
Symbols __buffer_overrun, __lc_clike, __security_error_handler, __set_buffer_overrun_handler, _CRT_RTC_INIT, _set_security_error_handler and _set_purecall_handler are not available in any examined I386 version of msvcrt.dll (up to Windows 10). Reason why there are defined in

[Mingw-w64-public] [PATCH 09/15] crt: msvcrt.def.in: Add C++ symbols introduced in Windows 2000

2024-03-31 Thread Pali Rohár
--- mingw-w64-crt/lib-common/msvcrt.def.in | 4 1 file changed, 4 insertions(+) diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index 3ed4b66c7281..2bd70dd59182 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++

[Mingw-w64-public] [PATCH 15/15] crt: msvcrt.def.in: Reorder symbols chronologically and add comments

2024-03-31 Thread Pali Rohár
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

[Mingw-w64-public] [PATCH 12/15] crt: msvcrt.def.in: Add symbols introduced in Windows Vista I386 and X64

2024-03-31 Thread Pali Rohár
--- 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 ---

[Mingw-w64-public] [PATCH 14/15] crt: msvcrt.def.in: Add symbols introduced in Windows 8.1 I386 and X64

2024-03-31 Thread Pali Rohár
--- mingw-w64-crt/lib-common/msvcrt.def.in | 50 -- 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in index 7e407891435d..cf29518e3314 100644 ---

[Mingw-w64-public] [PATCH 13/15] crt: msvcrt.def.in: Add symbols introduced in Windows 8 I386 and X64

2024-03-31 Thread Pali Rohár
--- 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 71a6efcde3c9..7e407891435d 100644 --- a/mingw-w64-crt/lib-common/msvcrt.def.in +++